/** * Returns whether the user is administrator * Adapted from adminfunctions.php::can_administer * Returns 1 if it has full admin privileges, -1 if it doesn't, or 0 if further controls are required. * @return int */ private function basicAdminControl() { // check if user is guest if ($this->userid < 1) { return -1; } // check if user has access to controlpanel $bf_ugp_adminpermissions = $this->datastore->get_value('bf_ugp_adminpermissions'); $admin_permissions = $this->permissionContext->getPermission('adminpermissions'); if (!($admin_permissions & $bf_ugp_adminpermissions['cancontrolpanel'])) { return -1; } // check if user is superadmin (defined in config.php) if ($this->userIsSuperAdmin) { return 1; } // it is not superadmin but still can have admin privileges return 0; }
/** * Checks usergroupid and membergroupids to see if the user has super moderator privileges * * @param integer Usergroupid * @param string Membergroupids (comma separated) * * @return boolean Returns true if user has super moderator privileges */ function is_supermod($usergroupid, $membergroupids) { $datastore = vB::getDatastore(); if (!empty($membergroupids)) { $membergroupids = explode(',', $membergroupids); } $bf_ugp_adminpermissions = $datastore->get_value('bf_ugp_adminpermissions'); $permissionContext = new vB_PermissionContext($datastore, $usergroupid, $membergroupids); $admin_permissions = $permissionContext->getPermission('adminpermissions'); return $admin_permissions & $bf_ugp_adminpermissions['ismoderator']; }