summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Kremmel <xing@synapse.plus.com>2007-06-17 12:42:48 +0000
committerMax Kremmel <xing@synapse.plus.com>2007-06-17 12:42:48 +0000
commit60624f03e2c20bdfd4d2972623270c2da65c90a0 (patch)
tree48a81f6ede6c3016ff8b88a5a5375c712f2b233e
parent2eb28d3b1220f4c248de7f13d93f1285cff99ea4 (diff)
downloadusers-60624f03e2c20bdfd4d2972623270c2da65c90a0.tar.gz
users-60624f03e2c20bdfd4d2972623270c2da65c90a0.tar.bz2
users-60624f03e2c20bdfd4d2972623270c2da65c90a0.zip
getGroupPermissions() now takes a parameter hash instead of the individual inputs.
-rw-r--r--BitPermUser.php66
-rw-r--r--admin/admin_levels.php6
-rw-r--r--admin/edit_group.php4
-rw-r--r--my_groups.php6
4 files changed, 45 insertions, 37 deletions
diff --git a/BitPermUser.php b/BitPermUser.php
index 6530d95..11ea40f 100644
--- a/BitPermUser.php
+++ b/BitPermUser.php
@@ -1,6 +1,6 @@
<?php
/**
- * $Header: /cvsroot/bitweaver/_bit_users/BitPermUser.php,v 1.57 2007/06/17 08:19:31 squareing Exp $
+ * $Header: /cvsroot/bitweaver/_bit_users/BitPermUser.php,v 1.58 2007/06/17 12:42:47 squareing Exp $
*
* Lib for user administration, groups and permissions
* This lib uses pear so the constructor requieres
@@ -11,7 +11,7 @@
* 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
*
- * $Id: BitPermUser.php,v 1.57 2007/06/17 08:19:31 squareing Exp $
+ * $Id: BitPermUser.php,v 1.58 2007/06/17 12:42:47 squareing Exp $
* @package users
*/
@@ -24,7 +24,7 @@ require_once( dirname( __FILE__ ).'/BitUser.php' );
* Class that holds all information for a given user
*
* @author spider <spider@steelsun.com>
- * @version $Revision: 1.57 $
+ * @version $Revision: 1.58 $
* @package users
* @subpackage BitPermUser
*/
@@ -242,7 +242,7 @@ class BitPermUser extends BitUser {
while( $row = $rs->fetchRow() ) {
$groupId = $row['group_id'];
$ret[$groupId] = $row;
- $ret[$groupId]['perms'] = $this->getGroupPermissions( $groupId );
+ $ret[$groupId]['perms'] = $this->getGroupPermissions( array( 'group_id' => $groupId ));
}
}
$query_cant = "select count(*) from `".BIT_DB_PREFIX."users_groups` $mid";
@@ -359,7 +359,11 @@ class BitPermUser extends BitUser {
$query = "select * from `".BIT_DB_PREFIX."users_groups` where `group_id`=?";
$result = $this->mDb->query($query, array($pGroupId));
$res = $result->fetchRow();
- $perms = $this->getGroupPermissions($pGroupId, NULL, NULL, 'up.perm_name_asc');
+ $listHash = array(
+ 'group_id' => $pGroupId,
+ 'sort_mode' => 'up.perm_name_asc',
+ );
+ $perms = $this->getGroupPermissions( $listHash );
$sql = "SELECT COUNT(*) FROM `".BIT_DB_PREFIX."users_groups_map` WHERE `group_id` = ?";
$res['num_members'] = $this->mDb->getOne($sql, array($pGroupId));
$res["perms"] = $perms;
@@ -550,58 +554,62 @@ class BitPermUser extends BitUser {
* @access public
* @return TRUE on success, FALSE on failure
*/
- function getGroupPermissions( $pGroupId=NULL, $pPackage = '', $find = '', $pSortMode = NULL ) {
+ //function getGroupPermissions( $pGroupId=NULL, $pPackage = '', $find = '', $pSortMode = NULL ) {
+ function getGroupPermissions( $pParamHash = NULL ) {
global $gBitSystem;
- $values = array();
- $mid = $selectSql = $fromSql = '';
+ $ret = $bindVars = array();
+ $whereSql = $selectSql = $fromSql = '';
- if( !empty( $pSortMode ) ) {
- $sortMode = $this->mDb->convertSortmode( $pSortMode );
+ if( !empty( $pParamHash['sort_mode'] )) {
+ $sortMode = $this->mDb->convertSortmode( $pParamHash['sort_mode'] );
} else {
$sortMode = 'up.`package`, up.`perm_name` ASC';
}
- if( $pPackage ) {
- $mid = ' WHERE `package`= ? ';
- $values[] = $pPackage;
+ if( $pParamHash['package'] ) {
+ $whereSql = ' WHERE `package`= ? ';
+ $bindVars[] = $pParamHash['package'];
}
- if( @$this->verifyId( $pGroupId ) ) {
+ if( @$this->verifyId( $pParamHash['group_id'] )) {
$selectSql = ', ugp.`perm_value` AS `hasPerm` ';
$fromSql = ' INNER JOIN `'.BIT_DB_PREFIX.'users_group_permissions` ugp ON ( ugp.`perm_name`=up.`perm_name` ) ';
- if( $mid ) {
- $mid .= " AND ugp.`group_id`=?";
+ if( $whereSql ) {
+ $whereSql .= " AND ugp.`group_id`=?";
} else {
- $mid .= " WHERE ugp.`group_id`=?";
+ $whereSql .= " WHERE ugp.`group_id`=?";
}
- $values[] = $pGroupId;
+
+ $bindVars[] = $pParamHash['group_id'];
}
- if( $find ) {
- if( $mid ) {
- $mid .= " AND `perm_name` like ?";
+ if( $pParamHash['find'] ) {
+ if( $whereSql ) {
+ $whereSql .= " AND `perm_name` like ?";
} else {
- $mid .= " WHERE `perm_name` like ?";
+ $whereSql .= " WHERE `perm_name` like ?";
}
- $values[] = '%'.$find.'%';
+ $bindVars[] = '%'.$pParamHash['find'].'%';
}
+
// the double up.`perm_name` is intentional - the first is for hash key, the second is for hash value
- $query = "SELECT up.`perm_name` AS `hash_key`, up.`perm_name`, up.`perm_desc`, up.`perm_level`, up.`package` $selectSql
- FROM `".BIT_DB_PREFIX."users_permissions` up $fromSql $mid
- ORDER BY $sortMode";
- $perms = $this->mDb->getAssoc( $query, $values );
+ $query = "
+ SELECT up.`perm_name` AS `hash_key`, up.`perm_name`, up.`perm_desc`, up.`perm_level`, up.`package` $selectSql
+ FROM `".BIT_DB_PREFIX."users_permissions` up $fromSql $whereSql
+ ORDER BY $sortMode";
+ $perms = $this->mDb->getAssoc( $query, $bindVars );
// weed out permissions of inactive packages
$ret = array();
foreach( $perms as $key => $perm ) {
- if( $gBitSystem->isPackageActive( $perm['package'] ) ) {
+ if( $gBitSystem->isPackageActive( $perm['package'] )) {
$ret[$key] = $perm;
}
}
+
return $ret;
}
-
function changePermissionLevel($perm, $level) {
$query = "update `".BIT_DB_PREFIX."users_permissions` set `perm_level` = ?
where `perm_name` = ?";
diff --git a/admin/admin_levels.php b/admin/admin_levels.php
index a8ff7b2..25fec89 100644
--- a/admin/admin_levels.php
+++ b/admin/admin_levels.php
@@ -1,12 +1,12 @@
<?php
/**
- * $Header: /cvsroot/bitweaver/_bit_users/admin/Attic/admin_levels.php,v 1.2 2007/06/16 14:41:23 squareing Exp $
+ * $Header: /cvsroot/bitweaver/_bit_users/admin/Attic/admin_levels.php,v 1.3 2007/06/17 12:42:48 squareing Exp $
* @package users
*/
require_once( '../../bit_setup_inc.php' );
$gBitSystem->verifyPermission( 'p_users_admin' );
-$allPerms = $gBitUser->getGroupPermissions( NULL, NULL, NULL, !empty( $_REQUEST['sort_mode'] ) ? $_REQUEST['sort_mode'] : NULL );
+$allPerms = $gBitUser->getGroupPermissions( array( 'sort_mode' => !empty( $_REQUEST['sort_mode'] ) ? $_REQUEST['sort_mode'] : NULL ));
if( !empty( $_REQUEST['allper'] )) {
if( $_REQUEST['oper'] == 'assign' ) {
@@ -27,7 +27,7 @@ if( !empty( $_REQUEST['allper'] )) {
}
}
// get up to date version of levels
- $allPerms = $gBitUser->getGroupPermissions( NULL, NULL, NULL, !empty( $_REQUEST['sort_mode'] ) ? $_REQUEST['sort_mode'] : NULL );
+ $allPerms = $gBitUser->getGroupPermissions( array( 'sort_mode' => !empty( $_REQUEST['sort_mode'] ) ? $_REQUEST['sort_mode'] : NULL ));
}
$gBitSmarty->assign_by_ref( 'allPerms', $allPerms );
diff --git a/admin/edit_group.php b/admin/edit_group.php
index eed0474..7353839 100644
--- a/admin/edit_group.php
+++ b/admin/edit_group.php
@@ -1,5 +1,5 @@
<?php
-// $Header: /cvsroot/bitweaver/_bit_users/admin/edit_group.php,v 1.24 2007/06/15 18:27:35 squareing Exp $
+// $Header: /cvsroot/bitweaver/_bit_users/admin/edit_group.php,v 1.25 2007/06/17 12:42:48 squareing 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.
@@ -24,7 +24,7 @@ if( count( $_GET ) > 2 || count( $_POST ) > 2 ) {
}
if( !empty( $_REQUEST['group_id'] ) ) {
- $allPerms = $gBitUser->getGroupPermissions( NULL, NULL, NULL, !empty( $_REQUEST['sort_mode'] ) ? $_REQUEST['sort_mode'] : NULL );
+ $allPerms = $gBitUser->getGroupPermissions( array( 'sort_mode' => !empty( $_REQUEST['sort_mode'] ) ? $_REQUEST['sort_mode'] : NULL ));
}
$gBitSmarty->assign( 'package',isset( $_REQUEST['package'] ) ? $_REQUEST['package'] : 'all' );
diff --git a/my_groups.php b/my_groups.php
index d60fea0..d7d4f0d 100644
--- a/my_groups.php
+++ b/my_groups.php
@@ -1,6 +1,6 @@
<?php
/**
- * $Header: /cvsroot/bitweaver/_bit_users/my_groups.php,v 1.13 2007/06/16 14:25:42 squareing Exp $
+ * $Header: /cvsroot/bitweaver/_bit_users/my_groups.php,v 1.14 2007/06/17 12:42:47 squareing Exp $
*
* Copyright (c) 2004 bitweaver.org
* Copyright (c) 2003 tikwiki.org
@@ -8,7 +8,7 @@
* 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
*
- * $Id: my_groups.php,v 1.13 2007/06/16 14:25:42 squareing Exp $
+ * $Id: my_groups.php,v 1.14 2007/06/17 12:42:47 squareing Exp $
* @package users
* @subpackage functions
*/
@@ -32,7 +32,7 @@ if( !empty( $_REQUEST["cancel"] ) ) {
if ( $gBitUser->hasPermission('p_users_create_personal_groups' ) ) {
if( !empty( $_REQUEST['group_id'] ) ) {
- $allPerms = $gBitUser->getGroupPermissions( NULL, NULL, NULL, !empty( $_REQUEST['sort_mode'] ) ? $_REQUEST['sort_mode'] : NULL );
+ $allPerms = $gBitUser->getGroupPermissions( array( 'sort_mode' => !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 );