function assignUserToRole($aData) { /*find the system uid for this role */ require_once 'classes/model/Users.php'; $c = new Criteria(); $c->add(RolesPeer::ROL_UID, $aData['ROL_UID']); $result = RolesPeer::doSelectRS($c); $result->setFetchmode(ResultSet::FETCHMODE_ASSOC); $result->next(); $row = $result->getRow(); $sSystemId = $row['ROL_SYSTEM']; //updating the role into users table $oCriteria1 = new Criteria('workflow'); $oCriteria1->add(UsersPeer::USR_UID, $aData['USR_UID'], Criteria::EQUAL); $oCriteria2 = new Criteria('workflow'); $oCriteria2->add(UsersPeer::USR_ROLE, $row['ROL_CODE']); BasePeer::doUpdate($oCriteria1, $oCriteria2, Propel::getConnection('workflow')); //delete roles for the same System $c = new Criteria(); $c->addSelectColumn(UsersRolesPeer::USR_UID); $c->addSelectColumn(RolesPeer::ROL_UID); $c->addSelectColumn(RolesPeer::ROL_CODE); $c->addSelectColumn(RolesPeer::ROL_SYSTEM); $c->add(UsersRolesPeer::USR_UID, $aData['USR_UID']); $c->add(RolesPeer::ROL_SYSTEM, $sSystemId); $c->addJoin(RolesPeer::ROL_UID, UsersRolesPeer::ROL_UID); $result = RolesPeer::doSelectRS($c); $result->setFetchmode(ResultSet::FETCHMODE_ASSOC); $result->next(); while ($row = $result->getRow()) { $crit = new Criteria(); $crit->add(UsersRolesPeer::USR_UID, $row['USR_UID']); $crit->add(UsersRolesPeer::ROL_UID, $row['ROL_UID']); UsersRolesPeer::doDelete($crit); $result->next(); } //save the unique role for this system $oUsersRoles = new UsersRoles(); $oUsersRoles->setUsrUid($aData['USR_UID']); $oUsersRoles->setRolUid($aData['ROL_UID']); $oUsersRoles->save(); $rol = $this->load($aData['ROL_UID']); $oUsersRbac = new RbacUsers(); $user = $oUsersRbac->load($aData['USR_UID']); G::auditLog("AssignUserToRole", "Assign user " . $user['USR_USERNAME'] . " (" . $aData['USR_UID'] . ") to Role " . $rol['ROL_NAME'] . " (" . $aData['ROL_UID'] . ") "); }
function create($sUserUID = '', $sRolUID = '') { $oRole = new UsersRoles(); $oRole->setUsrUid($sUserUID); $oRole->setRolUid($sRolUID); $oRole->save(); }