本文整理汇总了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();
}