Zeile 6 | Zeile 6 |
---|
* Website: http://www.mybboard.com * License: http://www.mybboard.com/eula.html *
|
* Website: http://www.mybboard.com * License: http://www.mybboard.com/eula.html *
|
* $Id: adminfunctions.php 2454 2006-11-28 17:30:16Z CraKteR $
| * $Id: adminfunctions.php 2693 2007-02-03 06:23:22Z Tikitiki $
|
*/
$cssselectors = array(
| */
$cssselectors = array(
|
Zeile 1152 | Zeile 1152 |
---|
function getadminpermissions($get_uid="", $get_gid="") { global $db, $mybb;
|
function getadminpermissions($get_uid="", $get_gid="") { global $db, $mybb;
|
|
|
// Set UID and GID if none $uid = $get_uid; $gid = $get_gid;
|
// Set UID and GID if none $uid = $get_uid; $gid = $get_gid;
|
| $gid_array = array();
|
if($uid === "") { $uid = $mybb->user['uid']; }
|
if($uid === "") { $uid = $mybb->user['uid']; }
|
|
|
if(!$gid) {
|
if(!$gid) {
|
$gid = $mybb->usergroup['gid'];
| // Prepare user's groups since the group isn't specified $gid_array[] = (-1) * intval($mybb->user['usergroup']); $additional_groups = explode(',', $mybb->user['additionalgroups']); // Make sure gids are negative foreach($additional_groups as $g) { $gid_array[] = (-1) * abs($g); } } else { // Group is specified // Make sure gid is negative $gid = (-1) * abs($gid);
|
}
|
}
|
// Make sure gid is negative $gid = (-1) * abs($gid);
| |
// What are we trying to find? if($get_gid && !$get_uid)
|
// What are we trying to find? if($get_gid && !$get_uid)
|
{
| { // A group only
|
$options = array( "order_by" => "uid", "order_dir" => "ASC", "limit" => "1"
|
$options = array( "order_by" => "uid", "order_dir" => "ASC", "limit" => "1"
|
);
| );
|
|
|
// A group only
| |
$query = $db->simple_select(TABLE_PREFIX."adminoptions", "*", "(uid='$gid' OR uid='0') AND permsset != ''", $options); $perms = $db->fetch_array($query); return $perms; } else {
|
$query = $db->simple_select(TABLE_PREFIX."adminoptions", "*", "(uid='$gid' OR uid='0') AND permsset != ''", $options); $perms = $db->fetch_array($query); return $perms; } else {
|
| // A user and/or group
|
$options = array( "order_by" => "uid", "order_dir" => "DESC" );
|
$options = array( "order_by" => "uid", "order_dir" => "DESC" );
|
// A user and/or group $query = $db->simple_select(TABLE_PREFIX."adminoptions", "*", "(uid='$uid' OR uid='0' OR uid='$gid') AND permsset != ''", $options);
| // Prepare user's groups into SQL format $group_sql = ''; foreach($gid_array as $gid) { $group_sql .= " OR uid='{$gid}'"; } $perms_group = array(); $query = $db->simple_select(TABLE_PREFIX."adminoptions", "*", "(uid='{$uid}'{$group_sql}) AND permsset != ''", $options);
|
while($perm = $db->fetch_array($query)) { // Sorting out which permission is which if($perm['uid'] > 0) { $perms_user = $perm;
|
while($perm = $db->fetch_array($query)) { // Sorting out which permission is which if($perm['uid'] > 0) { $perms_user = $perm;
|
| return $perms_user;
|
} elseif($perm['uid'] < 0) {
|
} elseif($perm['uid'] < 0) {
|
$perms_group = $perm;
| $perms_group[] = $perm;
|
} else { $perms_def = $perm;
|
} else { $perms_def = $perm;
|
| } } // Figure out group permissions...ugh. foreach($perms_group as $gperms) { if(!isset($final_group_perms)) { // Use this group as the base for admin group permissions $final_group_perms = $gperms; continue; } // Loop through each specific permission to find the highest permission foreach($gperms as $perm_name => $perm_value) { if($final_group_perms[$perm_name] != 'yes' && $perm_value == 'yes') { $final_group_perms[$perm_name] = 'yes'; }
|
} }
// Send specific user, or group permissions before default.
|
} }
// Send specific user, or group permissions before default.
|
if(isset($perms_user)) { return $perms_user; } elseif(isset($perms_group))
| // If user's permission are explicitly set, they've already been returned above. if(isset($final_group_perms))
|
{
|
{
|
return $perms_group;
| return $final_group_perms;
|
} else {
| } else {
|