Example #1
0
function phorum_joinable_groups()
{
    $PHORUM = $GLOBALS["PHORUM"];
    $joinablegroups = array();
    $groups = phorum_db_get_groups();
    $memberof = phorum_api_user_check_group_access(PHORUM_USER_GROUP_SUSPENDED, PHORUM_ACCESS_LIST);
    foreach ($groups as $group) {
        if (!isset($memberof[$group["group_id"]])) {
            if ($group["open"] == PHORUM_GROUP_OPEN) {
                $joinablegroups[] = array("group_id" => $group["group_id"], "name" => $group["name"]);
            } elseif ($group["open"] == PHORUM_GROUP_REQUIRE_APPROVAL) {
                $joinablegroups[] = array("group_id" => $group["group_id"], "name" => $group["name"] . " (*)");
            }
        }
    }
    return $joinablegroups;
}
Example #2
0
 $frm->show();
 echo "<br /><hr class=\"PhorumAdminHR\" /><br /><a name=\"groups\"></a>";
 $frm = new PhorumInputForm("", "post", "Update");
 $frm->hidden("user_id", $_REQUEST["user_id"]);
 $frm->hidden("module", "users");
 $frm->hidden("referrer", $referrer);
 $frm->hidden("section", "groups");
 $extra_opts = "";
 // if its an admin, let the user know that the admin will be able to act as a moderator no matter what
 if ($user["admin"]) {
     $row = $frm->addbreak("Edit Groups (Admins can act as a moderator of every group, regardless of these values)");
 } else {
     $row = $frm->addbreak("Edit Groups");
 }
 $groups = phorum_db_get_groups(0, TRUE);
 $usergroups = phorum_api_user_check_group_access(PHORUM_USER_GROUP_SUSPENDED, PHORUM_ACCESS_LIST, $_REQUEST["user_id"]);
 $arr = array("Add A Group...");
 foreach ($groups as $group_id => $group) {
     if (!isset($usergroups[$group_id])) {
         $arr[$group_id] = $group["name"];
     }
 }
 if (count($arr) > 1) {
     $frm->addrow("Add A Group", $frm->select_tag("new_group", $arr));
 }
 if (is_array($usergroups)) {
     $group_options = array("remove" => "< Remove User From Group >", PHORUM_USER_GROUP_SUSPENDED => "Suspended", PHORUM_USER_GROUP_UNAPPROVED => "Unapproved", PHORUM_USER_GROUP_APPROVED => "Approved", PHORUM_USER_GROUP_MODERATOR => "Group Moderator");
     foreach ($usergroups as $group_id => $group) {
         $group_perm = $group['user_status'];
         $group_info = phorum_db_get_groups($group_id);
         $frm->hidden("groups[{$group_id}]", "{$group_id}");
Example #3
0
/**
 * Retrieve the groups and their subscription statuses for a user.
 *
 * @param integer $user_id
 *     The user_id of the user for which to retrieve the groups.
 *
 * @return array
 *     An array of groups for the user. The keys are the group ids.
 *     The values are group information arrays.
 */
function phorum_api_user_get_groups($user_id)
{
    // Retrieve information for all the groups for the user.
    $groups = phorum_api_user_check_group_access(PHORUM_USER_GROUP_SUSPENDED, PHORUM_ACCESS_LIST, $user_id);
    return $groups;
}
Example #4
0
         $show_notify_for_pages = explode(",", $PHORUM["TMP"]["show_notify_for_pages"]);
     } else {
         $show_notify_for_pages = array('index', 'list', 'cc');
     }
     // Check for moderator notifications that have to be shown.
     if (in_array(phorum_page, $show_notify_for_pages) && !empty($PHORUM['enable_moderator_notifications'])) {
         $forummodlist = phorum_api_user_check_access(PHORUM_USER_ALLOW_MODERATE_MESSAGES, PHORUM_ACCESS_LIST);
         if (count($forummodlist) > 0) {
             $PHORUM["user"]["NOTICE"]["MESSAGES"] = $PHORUM['DB']->get_unapproved_list($forummodlist, TRUE, 0, TRUE) > 0;
             $PHORUM["DATA"]["URL"]["NOTICE"]["MESSAGES"] = phorum_api_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_UNAPPROVED);
         }
         if (phorum_api_user_check_access(PHORUM_USER_ALLOW_MODERATE_USERS)) {
             $PHORUM["user"]["NOTICE"]["USERS"] = count($PHORUM['DB']->user_get_unapproved()) > 0;
             $PHORUM["DATA"]["URL"]["NOTICE"]["USERS"] = phorum_api_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_USERS);
         }
         $groups = phorum_api_user_check_group_access(PHORUM_USER_GROUP_MODERATOR, PHORUM_ACCESS_LIST);
         if (count($groups) > 0) {
             $PHORUM["user"]["NOTICE"]["GROUPS"] = count($PHORUM['DB']->get_group_members(array_keys($groups), PHORUM_USER_GROUP_UNAPPROVED));
             $PHORUM["DATA"]["URL"]["NOTICE"]["GROUPS"] = phorum_api_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_GROUP_MODERATION);
         }
     }
     // A quick template variable for deciding whether or not to show
     // moderator notification.
     $PHORUM["user"]["NOTICE"]["SHOW"] = $PHORUM["user"]["NOTICE"]["MESSAGES"] || $PHORUM["user"]["NOTICE"]["USERS"] || $PHORUM["user"]["NOTICE"]["GROUPS"];
 }
 /*
  * [hook]
  *     common
  *
  * [description]
  *     This hook gives modules a chance to override Phorum variables
Example #5
0
$PHORUM['DATA']['URL']['CC4'] = phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_SIGNATURE);
$PHORUM['DATA']['URL']['CC5'] = phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_MAIL);
$PHORUM['DATA']['URL']['CC6'] = phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_BOARD);
$PHORUM['DATA']['URL']['CC7'] = phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_PASSWORD);
$PHORUM['DATA']['URL']['CC8'] = phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_UNAPPROVED);
$PHORUM['DATA']['URL']['CC9'] = phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_FILES);
$PHORUM['DATA']['URL']['CC10'] = phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_USERS);
$PHORUM['DATA']['URL']['CC14'] = phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_PRIVACY);
$PHORUM['DATA']['URL']['CC15'] = phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_GROUP_MODERATION);
$PHORUM['DATA']['URL']['CC16'] = phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_GROUP_MEMBERSHIP);
// Determine if the user files functionality is available.
$PHORUM["DATA"]["MYFILES"] = $PHORUM["file_uploads"] || $PHORUM["user"]["admin"];
// Determine if the user is a moderator.
$PHORUM["DATA"]["MESSAGE_MODERATOR"] = phorum_api_user_check_access(PHORUM_USER_ALLOW_MODERATE_MESSAGES, PHORUM_ACCESS_ANY);
$PHORUM["DATA"]["USER_MODERATOR"] = phorum_api_user_check_access(PHORUM_USER_ALLOW_MODERATE_USERS, PHORUM_ACCESS_ANY);
$PHORUM["DATA"]["GROUP_MODERATOR"] = phorum_api_user_check_group_access(PHORUM_USER_GROUP_MODERATOR, PHORUM_ACCESS_ANY);
$PHORUM["DATA"]["MODERATOR"] = $PHORUM["DATA"]["USER_MODERATOR"] + $PHORUM["DATA"]["MESSAGE_MODERATOR"] + $PHORUM["DATA"]["GROUP_MODERATOR"] > 0;
// If global email hiding is not enabled, then give the user a chance
// to choose for hiding himself.
$PHORUM['DATA']['SHOW_EMAIL_HIDE'] = empty($PHORUM['hide_email_addr']) ? 1 : 0;
// If pm email notifications are enabled, then give the user a chance
// to disable it.
$PHORUM['DATA']['SHOW_PM_EMAIL_NOTIFY'] = !empty($PHORUM["allow_pm_email_notify"]);
// The form action for the common form.
$PHORUM["DATA"]["URL"]["ACTION"] = phorum_get_url(PHORUM_CONTROLCENTER_ACTION_URL);
// fill the breadcrumbs-info
$PHORUM['DATA']['BREADCRUMBS'][] = array('URL' => $PHORUM['DATA']['URL']['REGISTERPROFILE'], 'TEXT' => $PHORUM['DATA']['LANG']['MyProfile'], 'TYPE' => 'control');
$user = $PHORUM['user'];
// Security messures.
unset($user["password"]);
unset($user["password_temp"]);