11<?php
22namespace ProspectOne \UserModule \Service ;
33
4- use ProspectOne \UserModule \Entity \ Role ;
4+ use ProspectOne \UserModule \Interfaces \ RoleInterface ;
55use ProspectOne \UserModule \Interfaces \UserInterface ;
66use ProspectOne \UserModule \Model \UserModel ;
77use Zend \Crypt \Password \Bcrypt ;
1414 */
1515class UserManager
1616{
17- const ADMIN_ROLE_ID = 2 ;
17+ const ADMIN_ROLE_ID = 1 ;
1818 const ADMIN_EMAIL = 'admin@example.com ' ;
1919 const ADMIN_NAME = 'Admin ' ;
2020 const ADMIN_PASSWORD = 'Secur1ty ' ;
@@ -25,6 +25,11 @@ class UserManager
2525 */
2626 public $ userEntityClassName ;
2727
28+ /**
29+ * @var string
30+ */
31+ public $ roleEntityClassName ;
32+
2833 /**
2934 * Doctrine entity manager.
3035 * @var EntityManager
@@ -64,20 +69,30 @@ public function getUserModel(): UserModel
6469 {
6570 return $ this ->userModel ;
6671 }
72+
73+ /**
74+ * @return string
75+ */
76+ public function getRoleEntityClassName ()
77+ {
78+ return $ this ->roleEntityClassName ;
79+ }
6780
6881 /**
6982 * UserManager constructor.
7083 * @param EntityManager $entityManager
7184 * @param Bcrypt $bcrypt
7285 * @param string $userEntityClassName
86+ * @param string $roleEntityClassName
7387 * @param UserModel $userModel
7488 */
75- public function __construct (EntityManager $ entityManager , Bcrypt $ bcrypt , $ userEntityClassName , UserModel $ userModel )
89+ public function __construct (EntityManager $ entityManager , Bcrypt $ bcrypt , $ userEntityClassName , $ roleEntityClassName , UserModel $ userModel )
7690 {
7791 $ this ->entityManager = $ entityManager ;
7892 $ this ->bcrypt = $ bcrypt ;
7993 $ this ->userEntityClassName = $ userEntityClassName ;
8094 $ this ->userModel = $ userModel ;
95+ $ this ->roleEntityClassName = $ roleEntityClassName ;
8196 }
8297
8398 /**
@@ -100,8 +115,8 @@ public function addUser($data)
100115 $ user ->setFullName ($ data ['full_name ' ]);
101116
102117 // Get role object based on role Id from form
103- /** @var Role $role */
104- $ role = $ this ->entityManager ->find (Role::class , $ data ['role ' ]);
118+ /** @var RoleInterface $role */
119+ $ role = $ this ->entityManager ->find ($ this -> getRoleEntityClassName () , $ data ['role ' ]);
105120 // Set role to user
106121 $ user ->addRole ($ role );
107122
@@ -146,8 +161,8 @@ public function updateUser(UserInterface $user, $data)
146161 $ user ->setStatus ($ data ['status ' ]);
147162
148163 // Get role object based on role Id from form
149- /** @var Role $role */
150- $ role = $ this ->entityManager ->find (Role::class , $ data ['role ' ]);
164+ /** @var RoleInterface $role */
165+ $ role = $ this ->entityManager ->find ($ this -> getRoleEntityClassName () , $ data ['role ' ]);
151166 // Set role to user
152167 $ user ->addRole ($ role );
153168
@@ -168,14 +183,14 @@ public function createAdminUserIfNotExists()
168183 /** @var UserInterface $user */
169184 $ user = new $ this ->userEntityClassName ();
170185 $ user ->setEmail (self ::ADMIN_EMAIL );
171- $ user ->setFullName (self ::ADMIN_NAME );
186+ $ user ->setFullName (static ::ADMIN_NAME );
172187 $ passwordHash = $ this ->bcrypt ->create (self ::ADMIN_PASSWORD );
173188 $ user ->setPassword ($ passwordHash );
174189 $ user ->setStatus ($ user ->getStatusActive ());
175190 $ user ->setDateCreated (date ('Y-m-d H:i:s ' ));
176191 // Get role object based on role Id from form
177- /** @var Role $role */
178- $ role = $ this ->entityManager ->find (Role::class , self ::ADMIN_ROLE_ID );
192+ /** @var RoleInterface $role */
193+ $ role = $ this ->entityManager ->find ($ this -> getRoleEntityClassName () , self ::ADMIN_ROLE_ID );
179194 // Set role to user
180195 $ user ->addRole ($ role );
181196 $ this ->entityManager ->persist ($ user );
0 commit comments