users
[ class tree: users ] [ index: users ] [ all elements ]

Source for file my_groups.php

Documentation is available at my_groups.php

  1. <?php
  2. /**
  3.  * my groups
  4.  *
  5.  * @copyright (c) 2004-15 bitweaver.org
  6.  *
  7.  * @package users
  8.  * @subpackage functions
  9.  */
  10.  
  11. /**
  12.  * required setup
  13.  */
  14. require_once'../kernel/setup_inc.php' );
  15.  
  16. global $gBitUser$gBitSystem;
  17.  
  18. // PERMISSIONS: registered user required
  19. if !$gBitUser->isRegistered() ) {
  20.     $gBitSystem->fatalErrortra"You are not logged in." ));
  21. }
  22.  
  23. if!empty$_REQUEST["cancel") ) {
  24.     bit_redirectUSERS_PKG_URL.'my_groups.php' );
  25. }
  26.  
  27. if $gBitUser->hasPermission('p_users_create_personal_groups' ) ) {
  28.     if!empty$_REQUEST['group_id') ) {
  29.         $allPerms $gBitUser->getGroupPermissionsarray'sort_mode' => !empty$_REQUEST['sort_mode'$_REQUEST['sort_mode'NULL ));
  30.         // get grouplist separately from the $users stuff to avoid splitting of data due to pagination
  31.         $listHash array'sort_mode' => 'group_name_asc' );
  32.         $groupList $gBitUser->getAllGroups$listHash );
  33.     else {
  34.         // get grouplist separately from the $users stuff to avoid splitting of data due to pagination
  35.         $listHash array'sort_mode' => !empty$_REQUEST['sort_mode'$_REQUEST['sort_mode''group_name_asc' );
  36.         $groupList $gBitUser->getAllGroups$listHash );
  37.     }
  38.  
  39.     // Remember a package limit if it is set.
  40.     $gBitSmarty->assign'package',isset$_REQUEST['package'$_REQUEST['package''all' );
  41.  
  42.     // Save the join
  43.     ifisset($_REQUEST["save") ) {
  44.         ifempty($_REQUEST["name") ) {
  45.             $_REQUEST["name"$_REQUEST["olgroup"];
  46.         }
  47.         if$gBitUser->storeGroup$_REQUEST ) ) {
  48.             $successMsg tra("Group changes were saved sucessfully.");
  49.         else {
  50.             $errorMsg $gBitUser->mErrors['groups'];
  51.         }
  52.     // Update Permissions
  53.     elseif (isset($_REQUEST['updateperms'])) {
  54.         $listHash array'group_id' => $_REQUEST['group_id');
  55.         $updatePerms $gBitUser->getgroupPermissions$listHash );
  56.         foreach (array_keys($_REQUEST['perm']as $per{
  57.             ifisset($_REQUEST['perm'][$per]&& !isset($updatePerms[$per]) ) {
  58.                 // we have an unselected perm that is now selected
  59.                 $gBitUser->assignPermissionToGroup($per$_REQUEST['group_id']);
  60.             elseifempty($_REQUEST['perm'][$per]&& isset($updatePerms[$per]) ) {
  61.                 // we have a selected perm that is now UNselected
  62.                 $gBitUser->removePermissionFromGroup($per$_REQUEST['group_id']);
  63.             }
  64.         }
  65.         // let's reload just to be safe.
  66.         $allPerms $gBitUser->getGroupPermissions();
  67.     // Do some action
  68.     elseif (isset($_REQUEST["action"])) {
  69.         // Process a form to remove a group
  70.         if$_REQUEST["action"== 'delete' {
  71.             if$gBitUser->getDefaultGroup$_REQUEST['group_id') ) {
  72.                 $errorMsg tra("You cannot remove this group, as it is currently set as your 'Default' group");
  73.             else {
  74.                 $gBitUser->expungeGroup$_REQUEST['group_id');
  75.                 $successMsg tra("The group was deleted.");
  76.                 unset$_REQUEST['group_id');
  77.             }
  78.         // remove a permission from a group
  79.         elseif ($_REQUEST["action"== 'remove'{
  80.             $gBitUser->removePermissionFromGroup$_REQUEST["permission"]$_REQUEST['group_id');
  81.             $successMsg tra("Permission Removed");
  82.             $mid 'bitpackage:users/my_group_edit.tpl';
  83.         // Create a new group
  84.         elseif$_REQUEST["action"== 'create' {
  85.             $gBitSystem->setBrowserTitletra('Create New Group') );
  86.             $mid 'bitpackage:users/my_group_edit.tpl';
  87.         // Assign a permission to a group
  88.         elseif ($_REQUEST["action"== 'assign'{
  89.             $gBitUser->assignPermissionToGroup($_REQUEST["perm"]$_REQUEST['group_id']);
  90.             $successMsg tra("Permission Assigned");
  91.             $mid 'bitpackage:users/my_group_edit.tpl';
  92.         }
  93.     // Search for users to add
  94.     elseif (!empty($_REQUEST['submitUserSearch'])) {
  95.         $searchParams array('find' => $_REQUEST['find']);
  96.         $gBitUser->getList($searchParams);
  97.         $foundUsers $searchParams['data'];
  98.         $mid 'bitpackage:users/my_group_edit.tpl';
  99.         $gBitSmarty->assign_by_ref('foundUsers'$foundUsers);
  100.     elseif (!empty($_REQUEST['assignuser'])) {
  101.         if!empty($_REQUEST['group_id') ) {
  102.             if ($_REQUEST['group_id'!= -&& $groupList[$_REQUEST['group_id']]['user_id'== $gBitUser->mUserId{
  103.                 $gBitUser->addUserToGroup$_REQUEST['assignuser']$_REQUEST['group_id');
  104.             }
  105.             else {
  106.                 $errorMsg tra("You can not assign users to this group.");
  107.             }
  108.         }
  109.         $mid 'bitpackage:users/my_group_edit.tpl';
  110.     }
  111.  
  112.     // get pagination url
  113.     // get grouplist separately from the $users stuff to avoid splitting of data due to pagination
  114.     $listHash array'sort_mode' => 'group_name_asc' );
  115.     $groupList $gBitUser->getAllUserGroups();
  116.  
  117.     if!empty$_REQUEST['group_id') ) {
  118.         // we don't want our own group listed when editing
  119.         if!empty$groupList[$_REQUEST['group_id']] ) ) {
  120.             unset$groupList[$_REQUEST['group_id']] );
  121.         }
  122.         $groupInfo $gBitUser->getGroupInfo$_REQUEST['group_id');
  123.         $groupUsers $gBitUser->getGroupUsers$_REQUEST['group_id');
  124.         $gBitSmarty->assign_by_ref('groupUsers'$groupUsers);
  125.         $gBitSmarty->assign_by_ref('groupInfo'$groupInfo);
  126.         $gBitSmarty->assign_by_ref'allPerms'$allPerms );
  127.         $gBitSystem->setBrowserTitle'Admininster Group: '.$groupInfo['group_name'].' '.(isset$_REQUEST['tab'$_REQUEST['tab''') );
  128.         $mid 'bitpackage:users/my_group_edit.tpl';
  129.     }
  130.  
  131.     $gBitSmarty->assign('groups'$groupList);
  132.     //    $gBitSmarty->assign( (!empty( $_REQUEST['tab'] ) ? $_REQUEST['tab'] : 'edit').'TabSelect', 'tdefault' );
  133. }
  134.  
  135. /* join or leave a public group. */
  136. if ( ( !empty$_REQUEST['add_public_group'|| !empty$_REQUEST['remove_public_group') ) && !empty$_REQUEST['public_group_id') ) {
  137.     $groupInfo $gBitUser->getGroupInfo$_REQUEST['public_group_id');
  138.     if empty($groupInfo|| $groupInfo['is_public'!= 'y' {
  139.         if (empty($_REQUEST['add_public_group'])) {
  140.             $errorMsg[tra("You can't join this group.");
  141.         }
  142.         else {
  143.             $errorMsg[tra("You can't leave this group.");
  144.         }
  145.     elseif !empty$_REQUEST['add_public_group') ) {
  146.         $gBitUser->addUserToGroup$gBitUser->mUserId$_REQUEST['public_group_id');
  147.     elseif !empty$_REQUEST['remove_public_group') ) {
  148.         $gBitUser->removeUserFromGroup$gBitUser->mUserId$_REQUEST['public_group_id');
  149.     }
  150.     $gBitUser->loadPermissions();
  151.     if !empty$_REQUEST['add_public_group'&& !empty$groupInfo['after_registration_page') ) {
  152.         if $gBitUser->verifyId$groupInfo['after_registration_page') ) {
  153.             $url BIT_ROOT_URL."index.php?content_id=".$groupInfo['after_registration_page'];
  154.         elseifstrpos$groupInfo['after_registration_page']'/' === FALSE {
  155.             $url BitPage::getDisplayUrlFromHash$groupInfo['after_registration_page');
  156.         else {
  157.             $url $groupInfo['after_registration_page'];
  158.         }
  159.         bit_redirect$url );
  160.     }
  161. }
  162.  
  163. /* Load up public groups and check if the user can join or leave them */
  164. $systemGroups $gBitUser->getGroups$gBitUser->mUserIdTRUE );
  165. $gBitSmarty->assign_by_ref'systemGroups'$systemGroups);
  166. $listHash array(
  167.     'is_public'=>'y',
  168.     'sort_mode' => array'is_default_asc''group_desc_asc' ),
  169. );
  170. $publicGroups $gBitUser->getAllGroups$listHash );
  171. ifcount$publicGroups )) {
  172.     foreach $systemGroups as $groupId=>$groupInfo {
  173.         foreach $publicGroups as $key=>$publicGroup{
  174.             if $publicGroups[$key]['group_id'== $groupId{
  175.                 if ($publicGroups[$key]['is_default'!= 'y' {
  176.                     $systemGroups[$groupId]['public''y';
  177.                     $canRemovePublic 'y';
  178.                 }
  179.                 $publicGroups[$key]['used''y';
  180.                 break;
  181.             }
  182.         }
  183.     }
  184.     foreach $publicGroups as $groupInfo{
  185.         if empty($groupInfo['used'&& $groupInfo['is_default'!= 'y' {
  186.             $gBitSmarty->assign'canAddPublic' 'y');
  187.             break;
  188.         }
  189.     }
  190.     $gBitSmarty->assign_by_ref'publicGroups'$publicGroups );
  191.     if (isset($canRemovePublic)) {
  192.         $gBitSmarty->assign'canRemovePublic' 'y');
  193.     }
  194. }
  195.  
  196. // Remember error and success messages.
  197. if (!empty($errorMsg)) {
  198.     $gBitSmarty->assign('errorMsg',$errorMsg);
  199. }
  200. if (!empty($successMsg)) {
  201.     $gBitSmarty->assign('successMsg',$successMsg);
  202. }
  203.  
  204. // Default the template if we aren't doing an edit.
  205. if (empty($mid)) {
  206.     $mid 'bitpackage:users/my_groups_list.tpl';
  207. }
  208.  
  209. // Display the template for group administration
  210. $gBitSystem->display$mid NULLarray'display_mode' => 'display' ));
  211. ?>

Documentation generated on Wed, 29 Jul 2015 13:57:13 +0000 by phpDocumentor 1.5.0-lsces