function form($object) { pathos_lang_loadDictionary('modules', 'inboxmodule'); pathos_lang_loadDictionary('standard', 'core'); if (!defined('SYS_FORMS')) { require_once BASE . 'subsystems/forms.php'; } pathos_forms_initialize(); $form = new form(); $users = array(); $groups = array(); global $db, $user; if (!defined('SYS_USERS')) { require_once BASE . 'subsystems/users.php'; } if (pathos_permissions_check('contact_all', pathos_core_makeLocation('inboxmodule'))) { foreach (pathos_users_getAllUsers() as $u) { $users[$u->id] = $u->firstname . ' ' . $u->lastname . ' (' . $u->username . ')'; } } else { foreach (pathos_users_getGroupsForUser($user, 1, 0) as $g) { foreach (pathos_users_getUsersInGroup($g) as $u) { $users[$u->id] = $u->firstname . ' ' . $u->lastname . ' (' . $u->username . ')'; } } } // Process other uses who the current user has blocked, and remove them from the list // Process other users who have blocked the current user, and remove them from the list. foreach ($db->selectObjects('inbox_contactbanned', 'owner=' . $user->id . ' OR user_id=' . $user->id) as $blocked) { if ($blocked->user_id == $user->id) { // Blocked by someone else. Remove the owner (user who blocked us) unset($users[$blocked->owner]); } else { if ($blocked->owner == $user->id) { // We blocked the user, remove the blocked user_id unset($users[$blocked->user_id]); } } } uasort($users, 'strnatcmp'); $groups = array(); foreach ($db->selectObjects('inbox_contactlist', 'owner=' . $user->id) as $g) { $groups['list_' . $g->id] = $g->name . ' ' . TR_INBOXMODULE_PERSONALLIST; } if (pathos_permissions_check('contact_all', pathos_core_makeLocation('inboxmodule'))) { foreach (pathos_users_getAllGroups(1, 0) as $g) { $groups['group_' . $g->id] = $g->name . ' ' . TR_INBOXMODULE_SYSGROUP; } } else { foreach (pathos_users_getGroupsForUser($user, 1, 0) as $g) { $groups['group_' . $g->id] = $g->name . ' ' . TR_INBOXMODULE_SYSGROUP; } } uasort($groups, 'strnatcmp'); $recipient_caption = TR_INBOXMODULE_RECIPIENT; $group_recipient_caption = TR_INBOXMODULE_GROUPRECIPIENT; $btn = new buttongroupcontrol(TR_INBOXMODULE_SEND, '', TR_CORE_CANCEL); $object->group_recipient = array(); if ($object == null || !isset($object->recipient)) { $object->subject = ''; $object->body = ''; $object->recipient = array(); if (!count($users) && !count($groups)) { $btn->disabled = true; } } else { if (!defined('SYS_USERS')) { require_once BASE . 'subsystems/users.php'; } $u = pathos_users_getUserById($object->recipient); $form->register(null, '', new htmlcontrol(sprintf(TR_INBOXMODULE_REPLYTO, $u->firstname . ' ' . $u->lastname . ' (' . $u->username . ')'))); $form->meta('replyto', $object->recipient); $object->recipient = array(); unset($users[$u->id]); $recipient_caption = TR_INBOXMODULE_COPYTO; $group_recipient_caption = TR_INBOXMODULE_GROUPCOPYTO; } if (count($users)) { $form->register('recipients', $recipient_caption, new listbuildercontrol($object->recipient, $users)); } if (count($groups)) { $form->register('group_recipients', $group_recipient_caption, new listbuildercontrol($object->group_recipient, $groups)); } if (!count($groups) && !count($users)) { $form->register(null, '', new htmlcontrol('<div class="error">' . TR_INBOXMODULE_NOCONTACTSWARNING . '</div>')); } $form->register('subject', TR_INBOXMODULE_SUBJECT, new textcontrol($object->subject)); $form->register('body', TR_INBOXMODULE_MESSAGE, new htmleditorcontrol($object->body)); $form->register('submit', '', $btn); return $form; }
# Suite 330, # Boston, MA 02111-1307 USA # # $Id: umgr_membership.php,v 1.7 2005/04/18 15:33:34 filetreefrog Exp $ ################################################## // Part of the User Management category if (!defined('PATHOS')) { exit(''); } if (pathos_permissions_check('user_management', pathos_core_makeLocation('administrationmodule'))) { if (!defined('SYS_USERS')) { require_once BASE . 'subsystems/users.php'; } $u = pathos_users_getUserById($_GET['id']); if ($u) { $groups = pathos_users_getAllGroups(); $admin = array(); $membership = array(); foreach ($db->selectObjects('groupmembership', 'member_id=' . $u->id) as $m) { $membership[] = $m->group_id; if ($m->is_admin == 1) { $admin[] = $m->group_id; } } for ($i = 0; $i < count($groups); $i++) { if (in_array($groups[$i]->id, $membership)) { $groups[$i]->is_member = 1; if (in_array($groups[$i]->id, $admin)) { $groups[$i]->is_admin = 1; } else { $groups[$i]->is_admin = 0;
function form($object) { pathos_lang_loadDictionary('standard', 'core'); pathos_lang_loadDictionary('modules', 'formbuilder'); global $db; if (!defined('SYS_FORMS')) { require_once BASE . 'subsystems/forms.php'; } if (!defined('SYS_USERS')) { require_once BASE . 'subsystems/users.php'; } //global $user; pathos_forms_initialize(); $form = new form(); if (!isset($object->id)) { $object->name = ''; $object->description = ''; $object->is_email = 0; $object->is_saved = 1; $object->response = 'Your form has been submitted.'; $object->resetbtn = 'Reset'; $object->submitbtn = 'Submit'; $object->subject = 'Submitted form from site.'; } else { $form->meta('id', $object->id); } $form->register('name', TR_FORMBUILDER_NAME, new textcontrol($object->name)); $form->register('description', TR_FORMBUILDER_DESCRIPTION, new texteditorcontrol($object->description)); $form->register('response', TR_FORMBUILDER_RESPONSE, new htmleditorcontrol($object->response)); $form->register(null, '', new htmlcontrol('<br><br><b>' . TR_FORMBUILDER_BUTTONHEADER . '</b><br><hr><br>')); $form->register('submitbtn', TR_FORMBUILDER_SUBMITTEXT, new textcontrol($object->submitbtn)); $form->register('resetbtn', TR_FORMBUILDER_RESETTEXT, new textcontrol($object->resetbtn)); $form->register(null, '', new htmlcontrol('<br><br><b>' . TR_FORMBUILDER_EMAILHEADER . '</b><br><hr><br>')); $form->register('is_email', TR_FORMBUILDER_EMAILFORM, new checkboxcontrol($object->is_email, false)); $userlist = array(); $users = pathos_users_getAllUsers(); foreach ($users as $locuser) { $userlist[$locuser->id] = $locuser->username; } $defaults = array(); foreach ($db->selectObjects('formbuilder_address', 'form_id=' . $object->id . ' and user_id != 0') as $address) { $locuser = pathos_users_getUserById($address->user_id); $defaults[$locuser->id] = $locuser->username; } $form->register('users', TR_FORMBUILDER_USERS, new listbuildercontrol($defaults, $userlist)); $groups = pathos_users_getAllGroups(); $grouplist = array(); $defaults = array(); foreach ($groups as $group) { $grouplist[$group->id] = $group->name; } if ($grouplist != null) { foreach ($db->selectObjects('formbuilder_address', 'form_id=' . $object->id . ' and group_id != 0') as $address) { $group = pathos_users_getGroupById($address->group_id); $defaults[$group->id] = $group->name; } $form->register('groups', TR_FORMBUILDER_GROUPS, new listbuildercontrol($defaults, $grouplist)); } $defaults = array(); foreach ($db->selectObjects('formbuilder_address', 'form_id=' . $object->id . " and email != ''") as $address) { $defaults[$address->email] = $address->email; } $form->register('addresses', TR_FORMBUILDER_OTHERADDRESSES, new listbuildercontrol($defaults, null)); $form->register('subject', TR_FORMBUILDER_EMAILSUBJECT, new textcontrol($object->subject)); $form->register(null, '', new htmlcontrol('<br><br><b>' . TR_FORMBUILDER_DBHEADER . '</b><br><hr size="1"><br>')); $form->register('is_saved', TR_FORMBUILDER_SAVETODB, new checkboxcontrol($object->is_saved, false)); $form->register(null, '', new htmlcontrol('<br> ' . TR_FORMBUILDER_DATALOSSWARNING . '<br>')); if ($object->is_saved == 1) { $form->controls['is_saved']->disabled = true; $form->meta('is_saved', '1'); } $form->register(null, '', new htmlcontrol('<br><br><br>')); $form->register('submit', '', new buttongroupcontrol(TR_CORE_SAVE, '', TR_CORE_CANCEL)); return $form; }
$g->id = 0; $g->name = "Anonymous Users"; foreach ($perms as $perm => $name) { $var = "perms_{$perm}"; if (pathos_permissions_checkGroup($g, $perm, $loc, true)) { $g->{$var} = 1; } else { if (pathos_permissions_checkGroup($g, $perm, $loc)) { $g->{$var} = 2; } else { $g->{$var} = 0; } } } $users[] = $g; foreach (pathos_users_getAllGroups() as $g) { foreach ($perms as $perm => $name) { $var = "perms_{$perm}"; if (pathos_permissions_checkGroup($g, $perm, $loc, true)) { $g->{$var} = 1; } else { if (pathos_permissions_checkGroup($g, $perm, $loc)) { $g->{$var} = 2; } else { $g->{$var} = 0; } } } $users[] = $g; } $template->assign("have_users", 1);
function pathos_users_getGroupsForUser($u, $allow_exclusive = 1, $allow_inclusive = 1) { global $db; if ($u == null || !isset($u->id)) { // Don't have enough information to consult the membership tables. // Return an empty array. return array(); } // Holding array for the groups. $groups = array(); if ($u->is_admin == 1) { // For administrators, we synthesize group memberships - they effectively // belong to all groups. So, we call pathos_users_getAllGroups, and pass the // filtration criteria arguments (2 and 3) to it. return pathos_users_getAllGroups($allow_exclusive, $allow_inclusive); } foreach ($db->selectObjects('groupmembership', 'member_id=' . $u->id) as $m) { // Loop over the membership records for this user, and select the full // group object for each group. $o = $db->selectObject('group', 'id=' . $m->group_id); if ($o->inclusive == 1 && $allow_inclusive) { // The group is inclusive and the caller has asked us to allow inclusive groups. // Append the group object to the end of the holding array. $groups[] = $o; } if ($o->inclusive == 0 && $allow_exclusive) { // The group is exclusive and the caller has asked us to allow exclusive groups. // Append the group object to the end of the holding array. $groups[] = $o; } } // Return the list of group objects to the caller. return $groups; }