Vanilla 1.1.5 is a product of Lussumo. More Information: Documentation, Community Support.
Help keep Vanilla free:
30 function GetRoleBuilder($GetUnauthenticated = '0') {
31 $s = $this->Context->ObjectFactory->NewContextObject($this->Context, 'SqlBuilder');
32 $s->SetMainTable('Role', 'r');
33 $s->AddSelect(array('Priority', 'RoleID', 'Name', 'Icon', 'Description', 'PERMISSION_SIGN_IN', 'PERMISSION_RECEIVE_APPLICATION_NOTIFICATION', 'PERMISSION_HTML_ALLOWED', 'Permissions', 'Unauthenticated'), 'r');
34 $s->AddWhere('r', 'Active', '', '1', '=');
35 if (!$GetUnauthenticated) $s->AddWhere('r', 'Unauthenticated', '', '0', '=');
36 return $s;
37 }
var $Priority;
$this->Priority = 0;
$this->Priority = ForceInt(@$DataSet['Priority'], 0);
36 if ($this->PostBackAction == 'ProcessRole' && $this->IsValidFormPostBack() && $this->Context->Session->UserID != $User->UserID && $this->Context->Session->User->Permission('PERMISSION_CHANGE_USER_ROLE')) {
37 $urh = $this->Context->ObjectFactory->NewObject($this->Context, 'UserRoleHistory');
38 $urh->GetPropertiesFromForm();
39 if ($UserManager->AssignRole($urh)) $Redirect = 1;
40 }
36 if ($this->PostBackAction == 'ProcessRole' && $this->IsValidFormPostBack() && $this->Context->Session->UserID != $User->UserID && $this->Context->Session->User->Permission('PERMISSION_CHANGE_USER_ROLE')) {
37 $urh = $this->Context->ObjectFactory->NewObject($this->Context, 'UserRoleHistory');
38 $urh->GetPropertiesFromForm();
$rm = $this->Context->ObjectFactory->NewContextObject($this->Context, 'RoleManager');
$UserRole = $rm->GetRoleById($this->Context->Session->User->RoleID);
$NewRole = $rm->GetRoleById(($urh->RoleID));
if ($NewRole->Priority > $UserRole->Priority) {
$this->Context->WarningCollector->Add('You cannot change a users role to a level higher than yours.');
} elseif ($UserManager->AssignRole($urh)) {
$Redirect = 1;
}
40 }

$rm = $this->Context->ObjectFactory->NewContextObject($this->Context, 'RoleManager');
$UserRole = $rm->GetRoleById($this->Context->Session->User->RoleID);
$NewRole = $rm->GetRoleById(($urh->RoleID));
$sOldRole = $UserManager->GetUserById($urh->UserID);
$OldRole = $rm->GetRoleById($sOldRole->RoleID);
if ($NewRole->Priority > $UserRole->Priority) {
$this->Context->WarningCollector->Add('You cannot change a users role to a level higher than yours.');
} elseif ($OldRole->Priority >= $UserRole->Priority) {
$this->Context->WarningCollector->Add('You cannot change the role of a user with a higher or equal level role than you.');
} elseif ($UserManager->AssignRole($urh)) {
$Redirect = 1;
}
function WoWGF_FixRoleList($form) {
$Context = $form -> Context;
$Other = $form -> User;
if(!$form -> IsPostBack) return;
$sql = "
SELECT `RoleID`
FROM `{$Context->Configuration['DATABASE_TABLE_PREFIX']}User`
WHERE `UserID`='{$Context->Session->UserID}'
";
$data = $Context -> Database -> Execute($sql, '', '', '');
$rid = mysql_result($data, 0, 'RoleID');
if($rid == 4) return; // Don't cripple the administrator's privileges
$sql = "
SELECT *
FROM `{$Context->Configuration['DATABASE_TABLE_PREFIX']}Role`
";
$data = $Context -> Database -> Execute($sql, '', '', '');
while($row = mysql_fetch_assoc($data)) $priorities[$row['RoleID']] = $row['Priority'];
if($priorities[$rid] <= $priorities[$Other -> RoleID]) {
Redirect(GetUrl($Context -> Configuration, '.'));
exit;
}
foreach($priorities as $roleID => $priority) {
if($priority >= $priorities[$rid]) $form -> RoleSelect -> RemoveOption($roleID);
}
}
$Context -> AddToDelegate('AccountRoleForm', 'Constructor', 'WoWGF_FixRoleList');
// Ensure the user is allowed to view this page (they must have at least one of the following permissions)
$RequiredPermissions = array('PERMISSION_CHECK_FOR_UPDATES',
'PERMISSION_APPROVE_APPLICANTS',
'PERMISSION_MANAGE_REGISTRATION',
'PERMISSION_ADD_ROLES',
'PERMISSION_EDIT_ROLES',
'PERMISSION_REMOVE_ROLES',
'PERMISSION_ADD_CATEGORIES',
'PERMISSION_EDIT_CATEGORIES',
'PERMISSION_REMOVE_CATEGORIES',
'PERMISSION_SORT_CATEGORIES',
'PERMISSION_CHANGE_APPLICATION_SETTINGS',
'PERMISSION_MANAGE_EXTENSIONS',
'PERMISSION_MANAGE_LANGUAGE',
'PERMISSION_MANAGE_STYLES',
'PERMISSION_MANAGE_THEMES');
1 to 36 of 36