src/Entity/AccountAuthSettings.php line 21

Open in your IDE?
  1. <?php
  2. namespace MedBrief\MSR\Entity;
  3. use DH\Auditor\Provider\Doctrine\Auditing\Annotation as Audit;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use MedBrief\MSR\Repository\AccountAuthSettingsRepository;
  6. use Ramsey\Uuid\UuidInterface;
  7. /**
  8. * AccountAuthSettings
  9. *
  10. * @ORM\Table(name="AccountAuthSettings", uniqueConstraints={@ORM\UniqueConstraint(name="tenant", columns={"tenantId"})})
  11. *
  12. * @ORM\Entity(repositoryClass=AccountAuthSettingsRepository::class)
  13. *
  14. * @Audit\Auditable
  15. *
  16. * @Audit\Security(view={"ROLE_ALLOWED_TO_AUDIT"})
  17. */
  18. class AccountAuthSettings
  19. {
  20. /**
  21. * @var Account|null
  22. *
  23. * @ORM\OneToOne(targetEntity="MedBrief\MSR\Entity\Account")
  24. *
  25. * @ORM\JoinColumns({
  26. *
  27. * @ORM\JoinColumn(name="account_id", referencedColumnName="id", unique=true)
  28. * })
  29. */
  30. private $account;
  31. /**
  32. * @var null|string
  33. *
  34. * @ORM\Column(name="defaultUserRole", type="string", nullable=true)
  35. */
  36. private $defaultUserRole;
  37. /**
  38. * @var bool
  39. *
  40. * @ORM\Column(name="enabled", type="boolean", options={"default"=false})
  41. */
  42. private $enabled = false;
  43. /**
  44. * @var bool
  45. *
  46. * @ORM\Column(name="enforced", type="boolean", options={"default"=false})
  47. */
  48. private $enforced = false;
  49. /**
  50. * @var UuidInterface
  51. *
  52. * @ORM\Column(name="id", type="uuid")
  53. *
  54. * @ORM\Id
  55. *
  56. * @ORM\GeneratedValue(strategy="CUSTOM")
  57. *
  58. * @ORM\CustomIdGenerator(class="Ramsey\Uuid\Doctrine\UuidGenerator")
  59. */
  60. private $id;
  61. /**
  62. * @var bool
  63. *
  64. * @ORM\Column(name="provisioningEnabled", type="boolean", options={"default"=false})
  65. */
  66. private $provisioningEnabled = false;
  67. /**
  68. * Microsoft-specific. Determines which tenant is allowed access.
  69. *
  70. * @var string|null
  71. *
  72. * @ORM\Column(name="tenantId", type="string", nullable=true)
  73. */
  74. private $tenantId;
  75. /**
  76. * @return bool
  77. */
  78. public function isEnforced(): bool
  79. {
  80. return $this->enforced;
  81. }
  82. /**
  83. * @param bool $enforced
  84. *
  85. * @return AccountAuthSettings
  86. */
  87. public function setEnforced(bool $enforced): AccountAuthSettings
  88. {
  89. $this->enforced = $enforced;
  90. return $this;
  91. }
  92. /**
  93. * @return string[]
  94. */
  95. public static function getDefaultUserRoles(): array
  96. {
  97. return [
  98. 'Super Administrator' => 'ROLE_ACCOUNT_ID_SUPERADMINISTRATOR',
  99. 'Administrator' => 'ROLE_ACCOUNT_ID_ADMINISTRATOR',
  100. 'Account Project Manager' => 'ROLE_ACCOUNT_ID_PROJECTMANAGER',
  101. 'User' => 'ROLE_ACCOUNT_ID_USER',
  102. ];
  103. }
  104. /**
  105. * @return UuidInterface
  106. */
  107. public function getId()
  108. {
  109. return $this->id;
  110. }
  111. /**
  112. * @return bool
  113. */
  114. public function isEnabled(): bool
  115. {
  116. return $this->enabled;
  117. }
  118. /**
  119. * @param bool $enabled
  120. *
  121. * @return AccountAuthSettings
  122. */
  123. public function setEnabled(bool $enabled): AccountAuthSettings
  124. {
  125. $this->enabled = $enabled;
  126. return $this;
  127. }
  128. /**
  129. * @return string|null
  130. */
  131. public function getDefaultUserRole(): ?string
  132. {
  133. return $this->defaultUserRole;
  134. }
  135. /**
  136. * @param string|null $defaultUserRole
  137. *
  138. * @return AccountAuthSettings
  139. */
  140. public function setDefaultUserRole(?string $defaultUserRole): AccountAuthSettings
  141. {
  142. $this->defaultUserRole = $defaultUserRole;
  143. return $this;
  144. }
  145. /**
  146. * @return bool
  147. */
  148. public function isProvisioningEnabled(): bool
  149. {
  150. return $this->provisioningEnabled;
  151. }
  152. /**
  153. * @param bool $provisioningEnabled
  154. *
  155. * @return AccountAuthSettings
  156. */
  157. public function setProvisioningEnabled(bool $provisioningEnabled): AccountAuthSettings
  158. {
  159. $this->provisioningEnabled = $provisioningEnabled;
  160. return $this;
  161. }
  162. /**
  163. * @return string|null
  164. */
  165. public function getTenantId(): ?string
  166. {
  167. return $this->tenantId;
  168. }
  169. /**
  170. * @param string|null $tenantId
  171. *
  172. * @return AccountAuthSettings
  173. */
  174. public function setTenantId(?string $tenantId): AccountAuthSettings
  175. {
  176. $this->tenantId = $tenantId;
  177. return $this;
  178. }
  179. /**
  180. * @return Account|null
  181. */
  182. public function getAccount(): ?Account
  183. {
  184. return $this->account;
  185. }
  186. /**
  187. * @param Account|null $account
  188. *
  189. * @return AccountAuthSettings
  190. */
  191. public function setAccount(?Account $account): AccountAuthSettings
  192. {
  193. $this->account = $account;
  194. return $this;
  195. }
  196. /**
  197. * Convenience method for more semantic calls
  198. *
  199. * @return bool
  200. */
  201. public function allowsProvisioning(): bool
  202. {
  203. return $this->provisioningEnabled;
  204. }
  205. }