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 Zend \Crypt \Password \Bcrypt ;
77use Zend \Math \Rand ;
1313 */
1414class UserManager
1515{
16- const ADMIN_ROLE_ID = 2 ;
16+ const ADMIN_ROLE_ID = 1 ;
1717 const ADMIN_EMAIL = 'admin@example.com ' ;
1818 const ADMIN_NAME = 'Admin ' ;
1919 const ADMIN_PASSWORD = 'Secur1ty ' ;
@@ -24,6 +24,11 @@ class UserManager
2424 */
2525 public $ userEntityClassName ;
2626
27+ /**
28+ * @var string
29+ */
30+ public $ roleEntityClassName ;
31+
2732 /**
2833 * Doctrine entity manager.
2934 * @var EntityManager
@@ -51,17 +56,27 @@ public function getBcrypt(): Bcrypt
5156 return $ this ->bcrypt ;
5257 }
5358
59+ /**
60+ * @return string
61+ */
62+ public function getRoleEntityClassName ()
63+ {
64+ return $ this ->roleEntityClassName ;
65+ }
66+
5467 /**
5568 * UserManager constructor.
5669 * @param EntityManager $entityManager
5770 * @param Bcrypt $bcrypt
5871 * @param string $userEntityClassName
72+ * @param string $roleEntityClassName
5973 */
60- public function __construct (EntityManager $ entityManager , Bcrypt $ bcrypt , $ userEntityClassName )
74+ public function __construct (EntityManager $ entityManager , Bcrypt $ bcrypt , $ userEntityClassName, $ roleEntityClassName )
6175 {
6276 $ this ->entityManager = $ entityManager ;
6377 $ this ->bcrypt = $ bcrypt ;
6478 $ this ->userEntityClassName = $ userEntityClassName ;
79+ $ this ->roleEntityClassName = $ roleEntityClassName ;
6580 }
6681
6782 /**
@@ -84,8 +99,8 @@ public function addUser($data)
8499 $ user ->setFullName ($ data ['full_name ' ]);
85100
86101 // Get role object based on role Id from form
87- /** @var Role $role */
88- $ role = $ this ->entityManager ->find (Role::class , $ data ['role ' ]);
102+ /** @var RoleInterface $role */
103+ $ role = $ this ->entityManager ->find ($ this -> getRoleEntityClassName () , $ data ['role ' ]);
89104 // Set role to user
90105 $ user ->addRole ($ role );
91106
@@ -130,8 +145,8 @@ public function updateUser(UserInterface $user, $data)
130145 $ user ->setStatus ($ data ['status ' ]);
131146
132147 // Get role object based on role Id from form
133- /** @var Role $role */
134- $ role = $ this ->entityManager ->find (Role::class , $ data ['role ' ]);
148+ /** @var RoleInterface $role */
149+ $ role = $ this ->entityManager ->find ($ this -> getRoleEntityClassName () , $ data ['role ' ]);
135150 // Set role to user
136151 $ user ->addRole ($ role );
137152
@@ -152,14 +167,14 @@ public function createAdminUserIfNotExists()
152167 /** @var UserInterface $user */
153168 $ user = new $ this ->userEntityClassName ();
154169 $ user ->setEmail (self ::ADMIN_EMAIL );
155- $ user ->setFullName (self ::ADMIN_NAME );
170+ $ user ->setFullName (static ::ADMIN_NAME );
156171 $ passwordHash = $ this ->bcrypt ->create (self ::ADMIN_PASSWORD );
157172 $ user ->setPassword ($ passwordHash );
158173 $ user ->setStatus ($ user ->getStatusActive ());
159174 $ user ->setDateCreated (date ('Y-m-d H:i:s ' ));
160175 // Get role object based on role Id from form
161- /** @var Role $role */
162- $ role = $ this ->entityManager ->find (Role::class , self ::ADMIN_ROLE_ID );
176+ /** @var RoleInterface $role */
177+ $ role = $ this ->entityManager ->find ($ this -> getRoleEntityClassName () , self ::ADMIN_ROLE_ID );
163178 // Set role to user
164179 $ user ->addRole ($ role );
165180 $ this ->entityManager ->persist ($ user );
0 commit comments