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.  * $Header: /cvsroot/bitweaver/_bit_users/my_groups.php,v 1.10 2007/02/02 20:51:17 nickpalmer Exp $
  4.  *
  5.  * Copyright (c) 2004 bitweaver.org
  6.  * Copyright (c) 2003 tikwiki.org
  7.  * Copyright (c) 2002-2003, Luis Argerich, Garland Foster, Eduardo Polidor, et. al.
  8.  * All Rights Reserved. See copyright.txt for details and a complete list of authors.
  9.  * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details
  10.  *
  11.  * $Id: my_groups.php,v 1.10 2007/02/02 20:51:17 nickpalmer Exp $
  12.  * @package users
  13.  * @subpackage functions
  14.  */
  15.  
  16. /**
  17.  * required setup
  18.  */
  19. require_once'../bit_setup_inc.php' );
  20.  
  21. // PERMISSIONS: registered user required
  22. if !$gBitUser->isRegistered() ) {
  23.     $gBitSmarty->assign('msg'tra("You are not logged in"));
  24.     $gBitSystem->display'error.tpl' );
  25.     die;
  26. }
  27.  
  28. $successMsg NULL;
  29. $errorMsg NULL;
  30. if (empty$_REQUEST['errorMsg') ) {
  31.     $errorMsg[$_REQUEST['errorMsg'];
  32. }
  33.  
  34. // We need to scan for defaults
  35. global $gBitInstaller;
  36. $gBitInstaller &$gBitSystem;
  37. $gBitSystem->verifyInstalledPackages();
  38.  
  39. $mid 'bitpackage:users/my_groups_list.tpl';
  40.  
  41. if $gBitUser->hasPermission('p_users_create_personal_groups' ) ) {
  42.     if!empty$_REQUEST['group_id') ) {
  43.         $allPerms $gBitUser->getGroupPermissionsNULLNULLNULL!empty$_REQUEST['sort_mode'$_REQUEST['sort_mode'NULL );
  44.         // get grouplist separately from the $users stuff to avoid splitting of data due to pagination
  45.         $listHash array'sort_mode' => 'group_name_asc' );
  46.         $groupList $gBitUser->getAllGroups$listHash );
  47.     else {
  48.         // get grouplist separately from the $users stuff to avoid splitting of data due to pagination
  49.         $listHash array'sort_mode' => !empty$_REQUEST['sort_mode'$_REQUEST['sort_mode''group_name_asc' );
  50.         $groupList $gBitUser->getAllGroups$listHash );
  51.     }
  52.  
  53.     $gBitSmarty->assign'package',isset$_REQUEST['package'$_REQUEST['package''all' );
  54.  
  55.     if!empty$_REQUEST["cancel") ) {
  56.         header'Location: '.USERS_PKG_URL.'my_groups.php' );
  57.         die;
  58.     elseifisset($_REQUEST["save") ) {
  59.         ifempty($_REQUEST["name") ) {
  60.             $_REQUEST["name"$_REQUEST["olgroup"];
  61.         }
  62.         if$gBitUser->storeGroup$_REQUEST ) ) {
  63.             $successMsg "Group changes were saved sucessfully.";
  64.         else {
  65.             $errorMsg $gBitUser->mErrors['groups'];
  66.         }
  67.     elseif (isset($_REQUEST['allper'])) {
  68.         if ($_REQUEST['oper'== 'assign'{
  69.             $gBitUser->assign_level_permissions($_REQUEST['group_id']$_REQUEST['level']);
  70.         else {
  71.             $gBitUser->remove_level_permissions($_REQUEST['group_id']$_REQUEST['level']);
  72.         }
  73.     elseif (isset($_REQUEST["createlevel"])) {
  74.         $gBitUser->create_dummy_level($_REQUEST['level']);
  75.     elseif (isset($_REQUEST['updateperms'])) {
  76.  
  77.         $updatePerms $gBitUser->getgroupPermissions$_REQUEST['group_id');
  78.         foreach (array_keys($_REQUEST['level'])as $per{
  79.             if$allPerms[$per]['level'!= $_REQUEST['level'][$per{
  80.                 // we changed level. perm[] checkbox is not taken into account
  81.                 $gBitUser->change_permission_level($per$_REQUEST['level'][$per]);
  82.             }
  83.             ifisset($_REQUEST['perm'][$per]&& !isset($updatePerms[$per]) ) {
  84.                 // we have an unselected perm that is now selected
  85.                 $gBitUser->assignPermissionToGroup($per$_REQUEST['group_id']);
  86.             elseifempty($_REQUEST['perm'][$per]&& isset($updatePerms[$per]) ) {
  87.                 // we have a selected perm that is now UNselected
  88.                 $gBitUser->remove_permission_from_group($per$_REQUEST['group_id']);
  89.             }
  90.         }
  91.         // let's reload just to be safe.
  92.         $allPerms $gBitUser->getGroupPermissions();
  93.     elseif (isset($_REQUEST["action"])) {
  94.     // Process a form to remove a group
  95.         if$_REQUEST["action"== 'delete' {
  96.             if$gBitUser->getDefaultGroup$_REQUEST['group_id') ) {
  97.                 $errorMsg "You cannot remove this Group, as it is currently set as your 'Default' group";
  98.             else {
  99.                 $gBitUser->remove_group($_REQUEST['group_id']);
  100.                 $successMsg "The group ".$_REQUEST['group_id']." was deleted.";
  101.                 unset$_REQUEST['group_id');
  102.             }
  103.         elseif ($_REQUEST["action"== 'remove'{
  104.             $gBitUser->remove_permission_from_group$_REQUEST["permission"]$_REQUEST['group_id');
  105.             $successMsg "Permission Removed";
  106.         elseif$_REQUEST["action"== 'create' {
  107.             $mid 'bitpackage:users/my_group_edit.tpl';
  108.             $gBitSystem->setBrowserTitle'Create New Group' );
  109.         elseif ($_REQUEST["action"== 'assign'{
  110.             $gBitUser->assignPermissionToGroup($_REQUEST["perm"]$_REQUEST['group_id']);
  111.         }
  112.     elseif (!empty($_REQUEST['submitUserSearch'])) {
  113.         $searchParams array('find' => $_REQUEST['find']);
  114.         $gBitUser->getList($searchParams);
  115.         $foundUsers $searchParams['data'];
  116.         $gBitSmarty->assign_by_ref('foundUsers'$foundUsers);
  117.     elseif (!empty($_REQUEST['assignuser'])) {
  118.         if!empty($_REQUEST['group_id') ) {
  119.             // need some security here people!
  120.             $gBitUser->addUserToGroup$_REQUEST['assignuser']$_REQUEST['group_id');
  121.         }
  122.     //    $mid = 'bitpackage:users/my_group_edit.tpl';
  123.     }
  124.  
  125.     // get pagination url
  126. // get grouplist separately from the $users stuff to avoid splitting of data due to pagination
  127.     
  128.     $listHash array'sort_mode' => 'group_name_asc' );
  129.     $groupList $gBitUser->getAllUserGroups();
  130.  
  131.     ifempty$groupList ) ) {
  132.         $mid 'bitpackage:users/my_groups_list.tpl';
  133.     else {
  134.         $inc array();
  135.         ifempty$mid ) ) {
  136.             if!empty$_REQUEST['group_id') ) {
  137.                 // we don't want our own group listed when editing
  138.                 if!empty$groupList[$_REQUEST['group_id']] ) ) {
  139.                     unset$groupList[$_REQUEST['group_id']] );
  140.                 }
  141.                 $groupInfo $gBitUser->getGroupInfo$_REQUEST['group_id');
  142.                 $rs array();
  143.                 $gBitUser->getIncludedGroups$_REQUEST['group_id']$rs );
  144.                 foreacharray_keys$groupList as $groupId {
  145.                     $groupList["data"][$groupId]['included'= isset$rs[$groupId'y' 'n';
  146.                 }
  147.                 $levels $gBitUser->getPermissionLevels();
  148.                 $gBitSmarty->assign('levels'$levels);
  149.                 $groupUsers $gBitUser->get_group_users$_REQUEST['group_id');
  150.                 $gBitSmarty->assign_by_ref('groupUsers'$groupUsers);
  151.                 $gBitSmarty->assign_by_ref('groupInfo'$groupInfo);
  152.                 $gBitSmarty->assign_by_ref'allPerms'$allPerms );
  153.                 $gBitSystem->setBrowserTitle'Admininster Group: '.$groupInfo['group_name'].' '.(isset$_REQUEST['tab'$_REQUEST['tab''') );
  154.                 $mid 'bitpackage:users/my_group_edit.tpl';
  155.             else {
  156.                 $gBitSystem->setBrowserTitle'Edit User Groups' );
  157.                 $_REQUEST['group_id'0;
  158.                 $mid 'bitpackage:users/my_groups_list.tpl';
  159.             }
  160.         }
  161.         $gBitSmarty->assign('groups'$groupList);
  162.     }
  163.     $gBitSmarty->assign('successMsg',$successMsg);
  164.     $gBitSmarty->assign( (!empty$_REQUEST['tab'$_REQUEST['tab''edit').'TabSelect''tdefault' );
  165. }
  166.  
  167. if ( ( !empty$_REQUEST['add_public_group'|| !empty$_REQUEST['remove_public_group') ) && !empty$_REQUEST['public_group_id') ) {
  168.     $groupInfo $gBitUser->getGroupInfo$_REQUEST['public_group_id');
  169.     if empty($groupInfo|| $groupInfo['is_public'!= 'y' {
  170.         $errorMsg["You can't use this group";
  171.     elseif !empty$_REQUEST['add_public_group') ) {
  172.         $gBitUser->addUserToGroup$gBitUser->mUserId$_REQUEST['public_group_id');
  173.     elseif !empty$_REQUEST['remove_public_group') ) {
  174.         $gBitUser->removeUserFromGroup$gBitUser->mUserId$_REQUEST['public_group_id');
  175.     }
  176.     $gBitUser->loadPermissions();
  177.     if !empty$_REQUEST['add_public_group'&& !empty$groupInfo['after_registration_page') ) {
  178.         if $gBitUser->verifyId$groupInfo['after_registration_page') ) {
  179.             $url BIT_ROOT_URL."index.php?content_id=".$groupInfo['after_registration_page'];
  180.         elseifstrpos$groupInfo['after_registration_page']'/' === FALSE {
  181.             $url BitPage::getDisplayUrl$groupInfo['after_registration_page');
  182.         else {
  183.             $url $groupInfo['after_registration_page'];
  184.         }
  185.         header'Location: '.$url );
  186.         exit;
  187.     }
  188. }
  189. $systemGroups $gBitUser->getGroups$gBitUser->mUserIdTRUE );
  190. $gBitSmarty->assign_by_ref'systemGroups'$systemGroups);
  191. $listHash array'is_public'=>'y''sort_mode'=>array('is_default_asc' 'group_desc_asc') );
  192. $publicGroups $gBitUser->getAllGroups$listHash );    
  193. if $publicGroups['cant'{
  194.     foreach $systemGroups as $groupId=>$groupInfo {
  195.         foreach $publicGroups['data'as $key=>$publicGroup{
  196.             if $publicGroups['data'][$key]['group_id'== $groupId{
  197.                 if ($publicGroups['data'][$key]['is_default'!= 'y' {
  198.                     $systemGroups[$groupId]['public''y';
  199.                     $canRemovePublic 'y';
  200.                 }
  201.                 $publicGroups['data'][$key]['used''y';
  202.                 break;
  203.             }
  204.         }
  205.     }
  206.     foreach $publicGroups['data'as $groupInfo{
  207.         if empty($groupInfo['used'&& $groupInfo['is_default'!= 'y' {
  208.             $gBitSmarty->assign'canAddPublic' 'y');
  209.             break;
  210.         }
  211.     }
  212.     $gBitSmarty->assign_by_ref'publicGroups'$publicGroups['data');
  213.     if (isset($canRemovePublic)) {
  214.         $gBitSmarty->assign'canRemovePublic' 'y');
  215.     }
  216. }
  217.     
  218. $gBitSmarty->assign('errorMsg',$errorMsg);
  219.  
  220. // Display the template for group administration
  221. $gBitSystem->display$mid );
  222. ?>

Documentation generated on Thu, 15 Feb 2007 20:46:02 +0000 by phpDocumentor 1.3.0