From 2509ba1612fa96bb71b9a583cadc01edf941edeb Mon Sep 17 00:00:00 2001 From: davidcallizaya Date: Thu, 28 Sep 2017 14:14:06 -0400 Subject: [PATCH] HOR-3925 Fix CR observations --- gulliver/system/class.rbac.php | 25 +++++++++++++++++-------- workflow/engine/data/mysql/insert.sql | 2 +- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/gulliver/system/class.rbac.php b/gulliver/system/class.rbac.php index 8bddbc112..aa57625bd 100644 --- a/gulliver/system/class.rbac.php +++ b/gulliver/system/class.rbac.php @@ -406,6 +406,8 @@ class RBAC /** * Create if not exists GUEST user. * + * @param Roles $role + * @throws Exception */ private function verifyGuestUser(Roles $role) { @@ -427,7 +429,11 @@ class RBAC $arrayData["USR_STATUS"] = 0; $rbacUserExists = RbacUsersPeer::retrieveByPK(self::GUEST_USER_UID); - if (!$rbacUserExists) { + $isNotRbacUserGuest = !empty($rbacUserExists) + && $rbacUserExists instanceof RbacUsers + && $rbacUserExists->getUserRole($rbacUserExists->getUsrUid())['ROL_CODE'] + !== self::PROCESSMAKER_GUEST; + if (empty($rbacUserExists)) { $rbacUser = new RbacUsers(); $rbacUser->fromArray($arrayData, BasePeer::TYPE_FIELDNAME); $rbacUser->save(); @@ -446,15 +452,12 @@ class RBAC $user = new Users(); $user->create($arrayData); $this->assignRoleToUser($user->getUsrUid(), $strRole); - } elseif( - $rbacUserExists - && $rbacUserExists->getUserRole($rbacUserExists->getUsrUid())['ROL_CODE']!==self::PROCESSMAKER_GUEST - ) { + } elseif ($isNotRbacUserGuest) { $this->assignRoleToUser($rbacUserExists->getUsrUid(), $strRole); } } catch (Exception $exception) { throw new Exception( - "Can not create guest user: ".$exception->getMessage(), + "Can not create guest user: " . $exception->getMessage(), 0, $exception ); @@ -464,6 +467,9 @@ class RBAC /** * Create if not exists GUEST role. * + * @param type $permissions + * @return type + * @throws Exception */ private function verifyGuestRole($permissions) { @@ -471,7 +477,7 @@ class RBAC $criteria = new Criteria; $criteria->add(RolesPeer::ROL_CODE, self::PROCESSMAKER_GUEST); $roleExists = RolesPeer::doSelectOne($criteria); - if ($roleExists) { + if (!empty($roleExists)) { return $roleExists; } $aData = [ @@ -505,6 +511,8 @@ class RBAC /** * Create if not exists GUEST permissions. * + * @return type + * @throws Exception */ private function verifyGuestPermissions() { @@ -512,7 +520,7 @@ class RBAC $criteria = new Criteria(); $criteria->add(PermissionsPeer::PER_CODE, self::PM_GUEST_CASE); $perm = PermissionsPeer::doSelectOne($criteria); - if ($perm) { + if (!empty($perm)) { return [$perm]; } $permission = new Permissions(); @@ -538,6 +546,7 @@ class RBAC * Create if not exists GUEST role. * Create if not exists GUEST permissions. * + * @throws Exception */ private function verifyGuestUserRolePermission() { diff --git a/workflow/engine/data/mysql/insert.sql b/workflow/engine/data/mysql/insert.sql index eda4d65bc..e51d19fd4 100644 --- a/workflow/engine/data/mysql/insert.sql +++ b/workflow/engine/data/mysql/insert.sql @@ -1,6 +1,6 @@ INSERT INTO USERS (USR_UID,USR_USERNAME,USR_PASSWORD,USR_FIRSTNAME,USR_LASTNAME,USR_EMAIL,USR_DUE_DATE,USR_CREATE_DATE,USR_UPDATE_DATE,USR_STATUS,USR_COUNTRY,USR_CITY,USR_LOCATION,USR_ADDRESS,USR_PHONE,USR_FAX,USR_CELLULAR,USR_ZIP_CODE,DEP_UID,USR_POSITION,USR_RESUME,USR_BIRTHDAY,USR_ROLE,USR_REPORTS_TO,USR_REPLACED_BY ) VALUES ('00000000000000000000000000000001','admin','21232f297a57a5a743894a0e4a801fc3','Administrator',' ', 'admin@processmaker.com','2020-01-01','1999-11-30 00:00:00','2008-05-23 18:36:19','ACTIVE', 'US','FL','MMK','','', '1-305-402-0282','1-305-675-1400','','','Administrator', '','1999-02-25','PROCESSMAKER_ADMIN','',''), -('00000000000000000000000000000002','admin','674ba9750749d735ec9787d606170d78','Guest',' ', 'admin@processmaker.com','2200-01-01','2009-02-01 12:24:36','2009-02-01 12:24:36','INACTIVE', 'US','FL','MMK','','', '1-305-402-0282','1-305-675-1400','','','Guest', '','2009-02-01','PROCESSMAKER_GUEST','',''); +('00000000000000000000000000000002','guest','674ba9750749d735ec9787d606170d78','Guest',' ', 'guest@processmaker.com','2200-01-01','2009-02-01 12:24:36','2009-02-01 12:24:36','INACTIVE', 'US','FL','MMK','','', '1-305-402-0282','1-305-675-1400','','','Guest', '','2009-02-01','PROCESSMAKER_GUEST','',''); INSERT INTO CONTENT (CON_CATEGORY,CON_PARENT,CON_ID,CON_LANG,CON_VALUE) VALUES ('ROL_NAME','','00000000000000000000000000000002','en','System Administrator'),