コード例 #1
0
ファイル: UserRole.php プロジェクト: rurkss/webapps-user-lib
 /**
  * @param integer $nUserId
  * @param integer $nRoleId
  * @return void
  */
 public function addRole($nUserId, $nRoleId)
 {
     $objUser = User_UserRole::Table()->createRow();
     $objUser->ucur_user_id = $nUserId;
     $objUser->ucur_role_id = $nRoleId;
     $objUser->save(false);
 }
コード例 #2
0
 public function editAction()
 {
     //add role if it is provided
     parent::editAction();
     if ($this->_hasParam('roles_list')) {
         $objUser = $this->view->object;
         // when the list of roles is submitted directly with user form
         $arrExistingRoles = array();
         foreach ($objUser->getRoles() as $objRole) {
             $arrExistingRoles[$objRole->getId()] = $objRole->getId();
         }
         $arrNewIds = array();
         $arrIds = explode(",", $this->_getParam('roles_list'));
         foreach ($arrIds as $nRoleId) {
             $nRoleId = trim($nRoleId);
             if ($nRoleId == '') {
                 continue;
             }
             $arrNewIds[$nRoleId] = $nRoleId;
             if (!isset($arrExistingRoles[$nRoleId])) {
                 // need to add a role
                 $objUserRole = User_UserRole::Table()->createRow();
                 $objUserRole->ucur_user_id = $objUser->getId();
                 $objUserRole->ucur_role_id = $nRoleId;
                 $objUserRole->save(false);
             }
         }
         // walking through existing roles, delete IDs
         foreach ($arrExistingRoles as $nRoleId) {
             if (!isset($arrNewIds[$nRoleId])) {
                 // this role has to be deleted
                 $objUserRole = User_UserRole::Table()->findRole($objUser->getId(), $nRoleId);
                 if (is_object($objUserRole)) {
                     $objUserRole->delete();
                 }
             }
         }
         $objUser->cleanCache();
         $this->view->object = $objUser;
     } else {
         if ($this->_hasParam('role') && $this->_getParam('role') != '') {
             $strRole = $this->_getParam('role');
             $objRole = User_Role::Table()->findByName($strRole);
             if (!is_object($objRole)) {
                 throw new App_Exception('Invalid User Role');
             }
             $objUser = $this->view->object;
             if (!$objUser->hasRole($strRole)) {
                 $objUserRole = User_UserRole::Table()->createRow();
                 $objUserRole->ucur_user_id = $objUser->getId();
                 $objUserRole->ucur_role_id = $objRole->getId();
                 $objUserRole->save(false);
                 $objUser->cleanCache();
             }
         }
     }
 }
コード例 #3
0
 public function setAction()
 {
     $nUser = $this->_getParam('ucac_id', 0);
     $nRole = $this->_getParam('ucr_id', 0);
     $nEnable = $this->_getBoolParam('enable', 1);
     $this->_model = User_UserRole::Table();
     $selectResult = $this->_model->select()->where('ucur_user_id = ?', $nUser)->where('ucur_role_id = ?', $nRole);
     $this->_object = $this->_model->fetchRow($selectResult);
     if (!is_object($this->_object)) {
         if ($nEnable) {
             $this->_object = $this->_model->createRow();
             $this->_object->ucur_user_id = $nUser;
             $this->_object->ucur_role_id = $nRole;
             $this->_object->save();
         }
     } else {
         if (!$nEnable) {
             $this->_object->delete();
             $this->_object = null;
         }
     }
     $this->view->object = $this->_object;
 }
コード例 #4
0
ファイル: Role.php プロジェクト: rurkss/webapps-user-lib
 /**
  * @return void
  */
 public function _delete()
 {
     if (!$this->isPredefined()) {
         //delete all user-roles with this role
         $selectRoles = User_UserRole::Table()->select()->where('ucur_role_id = ?', $this->getId());
         foreach (User_UserRole::Table()->fetchAll($selectRoles) as $objUserRole) {
             $objUserRole->delete();
         }
         //delete all access list for this resource
         $selectList = User_AccessList::Table()->select()->where('ucal_role_id = ? ', $this->getId());
         foreach (User_AccessList::Table()->fetchAll($selectList) as $objAccessList) {
             $objAccessList->delete();
         }
     }
 }
コード例 #5
0
ファイル: Update.php プロジェクト: rurkss/webapps-user-lib
 /**
  * @return void
  */
 protected function _addDefaultAccounts()
 {
     $cfgDefaultAccounts = App_Application::getInstance()->getConfig()->user->list;
     if (is_object($cfgDefaultAccounts)) {
         $cfgDefaultAccount = null;
         $tblRole = User_Role::Table();
         $tblUserRole = User_UserRole::Table();
         /** @var $cfgDefaultAccount User_Account */
         foreach ($cfgDefaultAccounts as $cfgDefaultAccount) {
             $objAccount = $this->_addDefaultAccount($cfgDefaultAccount->toArray());
             if (is_object($cfgDefaultAccount->roles)) {
                 // add roles for a user...
                 $arrRoles = $cfgDefaultAccount->roles;
                 foreach ($arrRoles as $strRoleName) {
                     $objRole = $tblRole->findByName($strRoleName);
                     if (is_object($objRole) && !is_object($tblUserRole->findRole($objAccount->getId(), $objRole->getId()))) {
                         $objUserRole = $tblUserRole->createRow();
                         $objUserRole->ucur_user_id = $objAccount->getId();
                         $objUserRole->ucur_role_id = $objRole->getId();
                         $objUserRole->save();
                     }
                 }
             }
         }
     }
 }
コード例 #6
0
ファイル: Account.php プロジェクト: rurkss/webapps-user-lib
 /**
  * @param string $strRole
  * @return void
  */
 public function removeRole($strRole)
 {
     $objRole = User_Role::Table()->findByName($strRole);
     if (!is_object($objRole)) {
         throw new App_Exception('Invalid user role ' . $strRole);
     }
     $nRoleId = $objRole->getId();
     $objUserRole = User_UserRole::Table()->findRole($this->getId(), $nRoleId);
     if (is_object($objUserRole)) {
         $objUserRole->delete();
         $this->cleanCache();
     }
 }
コード例 #7
0
ファイル: User.php プロジェクト: shanky0110/pimcore-custom
 /**
  *
  * @param string $permissionName
  * @return array
  */
 public function getPermission($permissionName)
 {
     if ($this->isAdmin()) {
         return true;
     }
     return parent::getPermission($permissionName);
 }