} $q = $db->simple_select('users', 'uid,username,email,language', $sqlwhere); while ($recipient = $db->fetch_array($q)) { // First we check if the user's a super admin: if yes, we don't care about permissions $is_super_admin = is_super_admin($recipient['uid']); if (!$is_super_admin) { // Include admin functions if (!file_exists(MYBB_ROOT . $mybb->config['admin_dir'] . "/inc/functions.php")) { continue; } require_once MYBB_ROOT . $mybb->config['admin_dir'] . "/inc/functions.php"; // Verify if we have permissions to access user-users require_once MYBB_ROOT . $mybb->config['admin_dir'] . "/modules/user/module_meta.php"; if (function_exists("user_admin_permissions")) { // Get admin permissions $adminperms = get_admin_permissions($recipient['uid']); $permissions = user_admin_permissions(); if (array_key_exists('users', $permissions['permissions']) && $adminperms['user']['users'] != 1) { continue; // No permissions } } } // Load language if ($recipient['language'] != $mybb->user['language'] && $lang->language_exists($recipient['language'])) { $reset_lang = true; $lang->set_language($recipient['language']); $lang->load("member"); } $subject = $lang->sprintf($lang->newregistration_subject, $mybb->settings['bbname']); $message = $lang->sprintf($lang->newregistration_message, $recipient['username'], $mybb->settings['bbname'], $user['username']);
// Only worth checking if we are here because we have ACP permissions and the other condition fails if ($mybb->usergroup['cancp'] == 1 && !($mybb->user['ismoderator'] && $mybb->usergroup['canmodcp'] == 1 && $mybb->usergroup['canmanagereportedcontent'] == 1)) { // First we check if the user's a super admin: if yes, we don't care about permissions $can_access_moderationqueue = true; $is_super_admin = is_super_admin($recipient['uid']); if (!$is_super_admin) { // Include admin functions if (!file_exists(MYBB_ROOT . $mybb->config['admin_dir'] . "/inc/functions.php")) { $can_access_moderationqueue = false; } require_once MYBB_ROOT . $mybb->config['admin_dir'] . "/inc/functions.php"; // Verify if we have permissions to access forum-moderation_queue require_once MYBB_ROOT . $mybb->config['admin_dir'] . "/modules/forum/module_meta.php"; if (function_exists("forum_admin_permissions")) { // Get admin permissions $adminperms = get_admin_permissions($mybb->user['uid']); $permissions = forum_admin_permissions(); if (array_key_exists('moderation_queue', $permissions['permissions']) && $adminperms['forum']['moderation_queue'] != 1) { $can_access_moderationqueue = false; } } } } else { $can_access_moderationqueue = false; } if ($can_access_moderationqueue || $mybb->user['ismoderator'] && $mybb->usergroup['canmodcp'] == 1 && $mybb->usergroup['canmanagereportedcontent'] == 1) { // Read the reported content cache $reported = $cache->read('reportedcontent'); // 0 or more reported items currently exist if ($reported['unread'] > 0) { // We want to avoid one extra query for users that can moderate any forum
if (!empty($admin_options['cplanguage']) && file_exists(MYBB_ROOT . "inc/languages/" . $admin_options['cplanguage'] . "/admin/home_dashboard.lang.php")) { $cp_language = $admin_options['cplanguage']; $lang->set_language($cp_language, "admin"); $lang->load("global"); // Reload global language vars $lang->load("messages", true); } if (!empty($admin_options['cpstyle']) && file_exists(MYBB_ADMIN_DIR . "/styles/{$admin_options['cpstyle']}/main.css")) { $cp_style = $admin_options['cpstyle']; } // Update the session information in the DB if ($admin_session['sid']) { $db->update_query("adminsessions", array('lastactive' => TIME_NOW, 'ip' => $db->escape_binary(my_inet_pton(get_ip()))), "sid='" . $db->escape_string($admin_session['sid']) . "'"); } // Fetch administrator permissions $mybb->admin['permissions'] = get_admin_permissions($mybb->user['uid']); } // Include the layout generation class overrides for this style if (file_exists(MYBB_ADMIN_DIR . "/styles/{$cp_style}/style.php")) { require_once MYBB_ADMIN_DIR . "/styles/{$cp_style}/style.php"; } // Check if any of the layout generation classes we can override exist in the style file $classes = array("Page" => "DefaultPage", "SidebarItem" => "DefaultSidebarItem", "PopupMenu" => "DefaultPopupMenu", "Table" => "DefaultTable", "Form" => "DefaultForm", "FormContainer" => "DefaultFormContainer"); foreach ($classes as $style_name => $default_name) { // Style does not have this layout generation class, create it if (!class_exists($style_name)) { eval("class {$style_name} extends {$default_name} { }"); } } $page = new Page(); $page->style = $cp_style;
case "pgsql": case "sqlite": $query = $db->query("\n\t\t\t\t\tSELECT u.uid, u.username, g.cancp, g.gid\n\t\t\t\t\tFROM " . TABLE_PREFIX . "users u\n\t\t\t\t\tLEFT JOIN " . TABLE_PREFIX . "usergroups g ON (((','|| u.additionalgroups|| ',' LIKE '%,'|| g.gid|| ',%') OR u.usergroup = g.gid))\n\t\t\t\t\tWHERE u.uid='{$uid}'\n\t\t\t\t\tAND g.cancp=1\n\t\t\t\t\tLIMIT 1\n\t\t\t\t"); break; default: $query = $db->query("\n\t\t\t\tSELECT u.uid, u.username, g.cancp, g.gid\n\t\t\t\tFROM " . TABLE_PREFIX . "users u\n\t\t\t\tLEFT JOIN " . TABLE_PREFIX . "usergroups g ON (((CONCAT(',', u.additionalgroups, ',') LIKE CONCAT('%,', g.gid, ',%')) OR u.usergroup = g.gid))\n\t\t\t\tWHERE u.uid='{$uid}'\n\t\t\t\tAND g.cancp=1\n\t\t\t\tLIMIT 1\n\t\t\t"); } $admin = $db->fetch_array($query); $permission_data = get_admin_permissions($uid, $admin['gid']); $title = $admin['username']; $page->add_breadcrumb_item($lang->user_permissions, "index.php?module=user-admin_permissions"); } elseif ($uid < 0) { $gid = abs($uid); $query = $db->simple_select("usergroups", "title", "gid='{$gid}'"); $group = $db->fetch_array($query); $permission_data = get_admin_permissions("", $gid); $title = $group['title']; $page->add_breadcrumb_item($lang->group_permissions, "index.php?module=user-admin_permissions&action=group"); } else { $query = $db->simple_select("adminoptions", "permissions", "uid='0'"); $permission_data = my_unserialize($db->fetch_field($query, "permissions")); $page->add_breadcrumb_item($lang->default_permissions); $title = $lang->default; } if ($uid != 0) { $page->add_breadcrumb_item($lang->edit_permissions . ": {$title}"); } $page->output_header($lang->edit_permissions); if ($uid != 0) { $sub_tabs['edit_permissions'] = array('title' => $lang->edit_permissions, 'link' => "index.php?module=user-admin_permissions&action=edit&uid={$uid}", 'description' => $lang->edit_permissions_desc); $page->output_nav_tabs($sub_tabs, 'edit_permissions');