feat: make admin users hotel managers with configurable hotel code
This commit is contained in:
@@ -46,10 +46,13 @@ APP_BPN_USER=
|
|||||||
APP_BPN_PASSWORD=
|
APP_BPN_PASSWORD=
|
||||||
APP_BPN_ENDPOINT=
|
APP_BPN_ENDPOINT=
|
||||||
|
|
||||||
|
# This hotel code will be assigned to admin users together with ROLE_HOTEL_MANAGER
|
||||||
|
# in dev and staging environments for testing purposes
|
||||||
|
APP_BPN_DEFAULT_HOTEL_CODE=
|
||||||
APP_BPN_CRM_ID_ADMIN=1292
|
APP_BPN_CRM_ID_ADMIN=1292
|
||||||
APP_BPN_CRM_ID_MANAGER=1293
|
APP_BPN_CRM_ID_MANAGER=1293
|
||||||
APP_BPN_CRM_ID_HOUSE_MANAGER=9999
|
|
||||||
APP_BPN_CRM_ID_TEAMER=1070
|
APP_BPN_CRM_ID_TEAMER=1070
|
||||||
|
|
||||||
APP_DEFAULT_EMAIL_FROM=[email protected]
|
APP_DEFAULT_EMAIL_FROM=[email protected]
|
||||||
APP_DEFAULT_EMAIL_TO=[email protected]
|
APP_DEFAULT_EMAIL_TO=[email protected]
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ parameters:
|
|||||||
|
|
||||||
bpn_crm_id_admin: '%env(int:APP_BPN_CRM_ID_ADMIN)%'
|
bpn_crm_id_admin: '%env(int:APP_BPN_CRM_ID_ADMIN)%'
|
||||||
bpn_crm_id_manager: '%env(int:APP_BPN_CRM_ID_MANAGER)%'
|
bpn_crm_id_manager: '%env(int:APP_BPN_CRM_ID_MANAGER)%'
|
||||||
bpn_crm_id_house_manager: '%env(int:APP_BPN_CRM_ID_HOUSE_MANAGER)%'
|
|
||||||
bpn_crm_id_teamer: '%env(int:APP_BPN_CRM_ID_TEAMER)%'
|
bpn_crm_id_teamer: '%env(int:APP_BPN_CRM_ID_TEAMER)%'
|
||||||
|
bpn_default_hotel_code: '%env(default::APP_BPN_DEFAULT_HOTEL_CODE)%'
|
||||||
|
|
||||||
default_email_from: '%env(APP_DEFAULT_EMAIL_FROM)%'
|
default_email_from: '%env(APP_DEFAULT_EMAIL_FROM)%'
|
||||||
default_email_to: '%env(APP_DEFAULT_EMAIL_TO)%'
|
default_email_to: '%env(APP_DEFAULT_EMAIL_TO)%'
|
||||||
@@ -51,8 +51,8 @@ services:
|
|||||||
$options:
|
$options:
|
||||||
bpn_crm_id_admin: '%bpn_crm_id_admin%'
|
bpn_crm_id_admin: '%bpn_crm_id_admin%'
|
||||||
bpn_crm_id_manager: '%bpn_crm_id_manager%'
|
bpn_crm_id_manager: '%bpn_crm_id_manager%'
|
||||||
bpn_crm_id_house_manager: '%bpn_crm_id_house_manager%'
|
|
||||||
bpn_crm_id_teamer: '%bpn_crm_id_teamer%'
|
bpn_crm_id_teamer: '%bpn_crm_id_teamer%'
|
||||||
|
bpn_default_hotel_code: '%bpn_default_hotel_code%'
|
||||||
|
|
||||||
App\Twig\AppRuntime:
|
App\Twig\AppRuntime:
|
||||||
arguments:
|
arguments:
|
||||||
|
|||||||
@@ -171,6 +171,12 @@ class ResponseParser
|
|||||||
$groups[] = $group;
|
$groups[] = $group;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Apply additional role and hotel code for testing purposes when provided
|
||||||
|
if ($isAdmin && null !== $this->config['bpn_default_hotel_code']) {
|
||||||
|
$isHouseManager = true;
|
||||||
|
$hotelCode = $this->config['bpn_default_hotel_code'];
|
||||||
|
}
|
||||||
|
|
||||||
$response = new CrmAttributesResponse();
|
$response = new CrmAttributesResponse();
|
||||||
$response
|
$response
|
||||||
->setAttributeGroups($groups)
|
->setAttributeGroups($groups)
|
||||||
@@ -252,11 +258,14 @@ class ResponseParser
|
|||||||
private function resolveOptions(array $options): array
|
private function resolveOptions(array $options): array
|
||||||
{
|
{
|
||||||
$optionsResolver = new OptionsResolver();
|
$optionsResolver = new OptionsResolver();
|
||||||
$optionsResolver->setRequired(['bpn_crm_id_admin', 'bpn_crm_id_manager', 'bpn_crm_id_house_manager', 'bpn_crm_id_teamer']);
|
$optionsResolver->setRequired(['bpn_crm_id_admin', 'bpn_crm_id_manager', 'bpn_crm_id_teamer']);
|
||||||
|
$optionsResolver->setDefaults([
|
||||||
|
'bpn_default_hotel_code' => null,
|
||||||
|
]);
|
||||||
$optionsResolver->setAllowedTypes('bpn_crm_id_admin', 'int');
|
$optionsResolver->setAllowedTypes('bpn_crm_id_admin', 'int');
|
||||||
$optionsResolver->setAllowedTypes('bpn_crm_id_manager', 'int');
|
$optionsResolver->setAllowedTypes('bpn_crm_id_manager', 'int');
|
||||||
$optionsResolver->setAllowedTypes('bpn_crm_id_house_manager', 'int');
|
|
||||||
$optionsResolver->setAllowedTypes('bpn_crm_id_teamer', 'int');
|
$optionsResolver->setAllowedTypes('bpn_crm_id_teamer', 'int');
|
||||||
|
$optionsResolver->setAllowedTypes('bpn_default_hotel_code', ['string', 'null']);
|
||||||
|
|
||||||
return $optionsResolver->resolve($options);
|
return $optionsResolver->resolve($options);
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -42,10 +42,10 @@ class User implements UserInterface, TimestampableEntityInterface
|
|||||||
#[ORM\Column(nullable: true)]
|
#[ORM\Column(nullable: true)]
|
||||||
private ?\DateTimeImmutable $lastLoginAt = null;
|
private ?\DateTimeImmutable $lastLoginAt = null;
|
||||||
|
|
||||||
#[ORM\OneToOne(inversedBy: 'user', cascade: ['persist', 'remove'])]
|
#[ORM\OneToOne(inversedBy: 'user', cascade: ['all'])]
|
||||||
private ?Teamer $teamer = null;
|
private ?Teamer $teamer = null;
|
||||||
|
|
||||||
#[ORM\OneToOne(inversedBy: 'user', cascade: ['persist', 'remove'])]
|
#[ORM\OneToOne(inversedBy: 'user', cascade: ['all'])]
|
||||||
private ?Contact $contact = null;
|
private ?Contact $contact = null;
|
||||||
|
|
||||||
#[ORM\Column(length: 32, nullable: true)]
|
#[ORM\Column(length: 32, nullable: true)]
|
||||||
|
|||||||
Reference in New Issue
Block a user