当前位置: 首页>>代码示例>>PHP>>正文


PHP UserRole::setRoleKey方法代码示例

本文整理汇总了PHP中UserRole::setRoleKey方法的典型用法代码示例。如果您正苦于以下问题:PHP UserRole::setRoleKey方法的具体用法?PHP UserRole::setRoleKey怎么用?PHP UserRole::setRoleKey使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在UserRole的用法示例。


在下文中一共展示了UserRole::setRoleKey方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: saveData

 public function saveData($aUserData)
 {
     if ($this->iUserId === null) {
         $oUser = new User();
     } else {
         $oUser = UserQuery::create()->findPk($this->iUserId);
     }
     $this->validate($aUserData, $oUser);
     if (!Flash::noErrors()) {
         throw new ValidationException();
     }
     $oUser->setUsername($aUserData['username']);
     $oUser->setFirstName($aUserData['first_name']);
     $oUser->setLastName($aUserData['last_name']);
     $oUser->setEmail($aUserData['email']);
     $oUser->setLanguageId($aUserData['language_id']);
     $oUser->setTimezone($aUserData['timezone']);
     //Password
     if ($aUserData['force_password_reset']) {
         $oUser->forcePasswordReset();
     } else {
         if ($aUserData['password'] !== '') {
             $oUser->setPassword($aUserData['password']);
             $oUser->setPasswordRecoverHint(null);
         }
     }
     //This also means the user’s an admin (or has the role “users”) because non-admins can only edit themselves
     if (!$oUser->isSessionUser()) {
         //Only admins may give or take admin rights, having the role “users” does not suffice
         if (Session::user()->getIsAdmin()) {
             $oUser->setIsAdmin($aUserData['is_admin']);
         }
         //Admin & inactive flags
         $oUser->setIsBackendLoginEnabled($oUser->getIsAdmin() || $aUserData['is_admin_login_enabled'] || $aUserData['is_backend_login_enabled']);
         $oUser->setIsAdminLoginEnabled($oUser->getIsAdmin() || $aUserData['is_admin_login_enabled']);
         $oUser->setIsInactive($aUserData['is_inactive']);
         //Groups
         foreach ($oUser->getUserGroupsRelatedByUserId() as $oUserGroup) {
             $oUserGroup->delete();
         }
         $aRequestedGroups = isset($aUserData['group_ids']) ? $aUserData['group_ids'] : array();
         foreach ($aRequestedGroups as $iGroupId) {
             if ($iGroupId === false) {
                 continue;
             }
             $oUserGroup = new UserGroup();
             $oUserGroup->setGroupId($iGroupId);
             $oUser->addUserGroupRelatedByUserId($oUserGroup);
         }
         //Roles
         foreach ($oUser->getUserRolesRelatedByUserId() as $oUserRole) {
             $oUserRole->delete();
         }
         $aRequestedRoles = isset($aUserData['role_keys']) ? !is_array($aUserData['role_keys']) ? array($aUserData['role_keys']) : $aUserData['role_keys'] : array();
         foreach ($aRequestedRoles as $sRoleKey) {
             if ($sRoleKey === false) {
                 continue;
             }
             $oUserRole = new UserRole();
             $oUserRole->setRoleKey($sRoleKey);
             $oUser->addUserRoleRelatedByUserId($oUserRole);
         }
     } else {
         //Set the new session language for the currently logged-in user
         Session::getSession()->setLanguage($oUser->getLanguageId());
     }
     return $oUser->save();
 }
开发者ID:rapila,项目名称:cms-base,代码行数:68,代码来源:UserDetailWidgetModule.php


注:本文中的UserRole::setRoleKey方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。