summaryrefslogtreecommitdiff
path: root/my_groups.php
diff options
context:
space:
mode:
Diffstat (limited to 'my_groups.php')
-rw-r--r--my_groups.php151
1 files changed, 151 insertions, 0 deletions
diff --git a/my_groups.php b/my_groups.php
new file mode 100644
index 0000000..53e60d0
--- /dev/null
+++ b/my_groups.php
@@ -0,0 +1,151 @@
+<?php
+// $Header: /cvsroot/bitweaver/_bit_users/my_groups.php,v 1.1 2005/06/19 05:12:22 bitweaver Exp $
+// Copyright (c) 2002-2003, Luis Argerich, Garland Foster, Eduardo Polidor, et. al.
+// All Rights Reserved. See copyright.txt for details and a complete list of authors.
+// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.
+// Initialization
+require_once( '../bit_setup_inc.php' );
+
+
+// PERMISSIONS: registered user required
+if( !$gBitUser->isRegistered() ) {
+ $gBitSystem->fatalError( 'You must be logged in to edit your groups.' );
+}
+
+$successMsg = NULL;
+$errorMsg = NULL;
+
+// We need to scan for defaults
+global $gBitInstaller;
+$gBitInstaller = &$gBitSystem;
+$gBitSystem->verifyInstalledPackages();
+
+if( !empty( $_REQUEST['group_id'] ) ) {
+ $allPerms = $gBitUser->getGroupPermissions( NULL, NULL, NULL, !empty( $_REQUEST['sort_mode'] ) ? $_REQUEST['sort_mode'] : NULL );
+ // get grouplist separately from the $users stuff to avoid splitting of data due to pagination
+ $listHash = array( 'sort_mode' => 'group_name_asc' );
+ $groupList = $gBitUser->getAllGroups( $listHash );
+} else {
+ // get grouplist separately from the $users stuff to avoid splitting of data due to pagination
+ $listHash = array( 'sort_mode' => !empty( $_REQUEST['sort_mode'] ) ? $_REQUEST['sort_mode'] : 'group_name_asc' );
+ $groupList = $gBitUser->getAllGroups( $listHash );
+}
+
+$smarty->assign( 'package',isset( $_REQUEST['package'] ) ? $_REQUEST['package'] : 'all' );
+
+if( !empty( $_REQUEST["cancel"] ) ) {
+ header( 'Location: '.USERS_PKG_URL.'my_groups.php' );
+ die;
+} elseif( isset($_REQUEST["save"] ) ) {
+ if( empty($_REQUEST["name"] ) ) {
+ $_REQUEST["name"] = $_REQUEST["olgroup"];
+ }
+ if( $gBitUser->storeGroup( $_REQUEST ) ) {
+ $successMsg = "Group changes were saved sucessfully.";
+ } else {
+ $errorMsg = $gBitUser->mErrors['groups'];
+ }
+} elseif (isset($_REQUEST['allper'])) {
+ if ($_REQUEST['oper'] == 'assign') {
+ $gBitUser->assign_level_permissions($_REQUEST['group_id'], $_REQUEST['level']);
+ } else {
+ $gBitUser->remove_level_permissions($_REQUEST['group_id'], $_REQUEST['level']);
+ }
+} elseif (isset($_REQUEST["createlevel"])) {
+ $gBitUser->create_dummy_level($_REQUEST['level']);
+} elseif (isset($_REQUEST['updateperms'])) {
+
+ $updatePerms = $gBitUser->getgroupPermissions( $_REQUEST['group_id'] );
+ foreach (array_keys($_REQUEST['level'])as $per) {
+ if( $allPerms[$per]['level'] != $_REQUEST['level'][$per] ) {
+ // we changed level. perm[] checkbox is not taken into account
+ $gBitUser->change_permission_level($per, $_REQUEST['level'][$per]);
+ }
+ if( isset($_REQUEST['perm'][$per]) && !isset($updatePerms[$per]) ) {
+ // we have an unselected perm that is now selected
+ $gBitUser->assignPermissionToGroup($per, $_REQUEST['group_id']);
+ } elseif( empty($_REQUEST['perm'][$per]) && isset($updatePerms[$per]) ) {
+ // we have a selected perm that is now UNselected
+ $gBitUser->remove_permission_from_group($per, $_REQUEST['group_id']);
+ }
+ }
+ // let's reload just to be safe.
+ $allPerms = $gBitUser->getGroupPermissions();
+} elseif (isset($_REQUEST["action"])) {
+// Process a form to remove a group
+ if( $_REQUEST["action"] == 'delete' ) {
+ if( $gBitUser->getDefaultGroup( $_REQUEST['group_id'] ) ) {
+ $errorMsg = "You cannot remove this Group, as it is currently set as your 'Default' group";
+ } else {
+ $gBitUser->remove_group($_REQUEST['group_id']);
+ $successMsg = "The group ".$_REQUEST['group_id']." was deleted.";
+ unset( $_REQUEST['group_id'] );
+ }
+ } elseif ($_REQUEST["action"] == 'remove') {
+ $gBitUser->remove_permission_from_group( $_REQUEST["permission"], $_REQUEST['group_id'] );
+ $successMsg = "Permission Removed";
+ } elseif( $_REQUEST["action"] == 'create' ) {
+ $mid = 'bitpackage:users/my_group_edit.tpl';
+ $gBitSystem->setBrowserTitle( 'Create New Group' );
+ } elseif ($_REQUEST["action"] == 'assign') {
+ $gBitUser->assignPermissionToGroup($_REQUEST["perm"], $_REQUEST['group_id']);
+ }
+} elseif (!empty($_REQUEST['submitUserSearch'])) {
+ $searchParams = array('find' => $_REQUEST['find']);
+ $gBitUser->getList($searchParams);
+ $foundUsers = $searchParams['data'];
+ $smarty->assign_by_ref('foundUsers', $foundUsers);
+} elseif (!empty($_REQUEST['assignuser'])) {
+ if( !empty($_REQUEST['group_id'] ) ) {
+ // need some security here people!
+ $gBitUser->addUserToGroup( $_REQUEST['assignuser'], $_REQUEST['group_id'] );
+ }
+// $mid = 'bitpackage:users/my_group_edit.tpl';
+}
+
+// get pagination url
+// get grouplist separately from the $users stuff to avoid splitting of data due to pagination
+$listHash = array( 'sort_mode' => 'group_name_asc' );
+$groupList = $gBitUser->getAllUserGroups();
+
+if( empty( $groupList ) ) {
+ $mid = 'bitpackage:users/my_group_edit.tpl';
+} else {
+ $inc = array();
+ if( empty( $mid ) ) {
+ if( !empty( $_REQUEST['group_id'] ) ) {
+ // we don't want our own group listed when editing
+ if( !empty( $groupList[$_REQUEST['group_id']] ) ) {
+ unset( $groupList[$_REQUEST['group_id']] );
+ }
+ $groupInfo = $gBitUser->getGroupInfo( $_REQUEST['group_id'] );
+ $rs = array();
+ $gBitUser->getIncludedGroups( $_REQUEST['group_id'], $rs );
+ foreach( array_keys( $groupList ) as $groupId ) {
+ $groupList["data"][$groupId]['included'] = isset( $rs[$groupId] ) ? 'y' : 'n';
+ }
+ $levels = $gBitUser->get_permission_levels();
+ sort($levels);
+ $smarty->assign('levels', $levels);
+ $groupUsers = $gBitUser->get_group_users( $_REQUEST['group_id'] );
+ $smarty->assign_by_ref('groupUsers', $groupUsers);
+ $smarty->assign_by_ref('groupInfo', $groupInfo);
+ $smarty->assign_by_ref( 'allPerms', $allPerms );
+ $gBitSystem->setBrowserTitle( 'Admininster Group: '.$groupInfo['group_name'].' '.(isset( $_REQUEST['tab'] ) ? $_REQUEST['tab'] : '') );
+ $mid = 'bitpackage:users/my_group_edit.tpl';
+ } else {
+ $gBitSystem->setBrowserTitle( 'Edit User Groups' );
+ $_REQUEST['group_id'] = 0;
+ $mid = 'bitpackage:users/my_groups_list.tpl';
+ }
+ }
+ $smarty->assign('groups', $groupList);
+}
+$smarty->assign('successMsg',$successMsg);
+$smarty->assign('errorMsg',$errorMsg);
+$smarty->assign( (!empty( $_REQUEST['tab'] ) ? $_REQUEST['tab'] : 'edit').'TabSelect', 'tdefault' );
+
+
+// Display the template for group administration
+$gBitSystem->display( $mid );
+?>