Vergleich admin/adminfunctions.php - 1.2.2 - 1.2.6

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 6Zeile 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 1152Zeile 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
{