diff --git a/admin/inc/class.boaccounts.inc.php b/admin/inc/class.boaccounts.inc.php
index 7cefd9cb41..294f8960e7 100755
--- a/admin/inc/class.boaccounts.inc.php
+++ b/admin/inc/class.boaccounts.inc.php
@@ -109,16 +109,8 @@
$account_id = (int)$_POST['account_id'];
- $old_group_list = $GLOBALS['egw']->acl->get_ids_for_location($account_id,1,'phpgw_group');
-
- @reset($old_group_list);
- while($old_group_list && $id = each($old_group_list))
- {
- $GLOBALS['egw']->acl->delete_repository('phpgw_group',$account_id,(int)$id[1]);
- $GLOBALS['egw']->session->delete_cache((int)$id[1]);
- }
-
- $GLOBALS['egw']->acl->delete_repository('%%','run',$account_id);
+ // delete all acl (and memberships) of group
+ $GLOBALS['egw']->acl->delete_account($account_id);
if (! @rmdir($GLOBALS['egw_info']['server']['files_dir'].SEP.'groups'.SEP.$GLOBALS['egw']->accounts->id2name($account_id)))
{
@@ -191,15 +183,6 @@
return False;
}
- $temp_users = ($_POST['account_user']?$_POST['account_user']:Array());
- $account_user = Array();
- @reset($temp_users);
- while(list($key,$user_id) = each($temp_users))
- {
- $account_user[$user_id] = ' selected';
- }
- @reset($account_user);
-
$group_permissions = ($_POST['account_apps']?$_POST['account_apps']:Array());
$account_apps = Array();
@reset($group_permissions);
@@ -215,7 +198,7 @@
$group_info = Array(
'account_id' => ($_POST['account_id']?(int)$_POST['account_id']:0),
'account_name' => ($_POST['account_name']?$_POST['account_name']:''),
- 'account_user' => $account_user,
+ 'account_user' => $_POST['account_user'],
'account_apps' => $account_apps
);
@@ -237,6 +220,8 @@
// do the following only if we got an id - the create succided
if ($group_info['account_id'])
{
+ $group->set_members($group_info['account_user'],$group_info['account_id']);
+
$apps =& CreateObject('phpgwapi.applications',$group_info['account_id']);
$apps->update_data(Array());
reset($group_info['account_apps']);
@@ -247,38 +232,6 @@
}
$apps->save_repository();
- $acl =& CreateObject('phpgwapi.acl',$group_info['account_id']);
- $acl->read_repository();
-
- @reset($group_info['account_user']);
- while(list($user_id,$dummy) = each($group_info['account_user']))
- {
- if(!$dummy)
- {
- continue;
- }
- $acl->add_repository('phpgw_group',$group_info['account_id'],$user_id,1);
-
- $docommit = False;
- $GLOBALS['pref'] =& CreateObject('phpgwapi.preferences',$user_id);
- $t = $GLOBALS['pref']->read_repository();
- @reset($new_apps);
- while(is_array($new_apps) && list($app_key,$app_name) = each($new_apps))
- {
- if (!$t[($app_name=='admin'?'common':$app_name)])
- {
- $GLOBALS['egw']->hooks->single('add_def_pref', $app_name);
- $docommit = True;
- }
- }
- if ($docommit)
- {
- $GLOBALS['pref']->save_repository();
- }
- }
-
- $acl->save_repository();
-
$basedir = $GLOBALS['egw_info']['server']['files_dir'] . SEP . 'groups' . SEP;
$cd = 31;
umask(000);
@@ -397,15 +350,6 @@
return False;
}
- $temp_users = ($_POST['account_user']?$_POST['account_user']:Array());
- $account_user = Array();
- @reset($temp_users);
- while($temp_users && list($key,$user_id) = each($temp_users))
- {
- $account_user[$user_id] = ' selected';
- }
- @reset($account_user);
-
$group_permissions = ($_POST['account_apps']?$_POST['account_apps']:Array());
$account_apps = Array();
@reset($group_permissions);
@@ -421,10 +365,11 @@
$group_info = Array(
'account_id' => ($_POST['account_id']?(int)$_POST['account_id']:0),
'account_name' => ($_POST['account_name']?$_POST['account_name']:''),
- 'account_user' => $account_user,
+ 'account_user' => $_POST['account_user'],
'account_apps' => $account_apps
);
-
+_debug_array($_POST);
+_debug_array($group_info);
$this->validate_group($group_info);
$group =& CreateObject('phpgwapi.accounts',$group_info['account_id'],'g');
@@ -470,28 +415,7 @@
$cd = 33;
}
- // Set group acl
- $acl =& CreateObject('phpgwapi.acl',$group_info['account_id']);
- $old_group_list = $acl->get_ids_for_location($group_info['account_id'],1,'phpgw_group');
- if (is_array($old_group_list))
- {
- foreach($old_group_list as $key => $user_id)
- {
- $acl->delete_repository('phpgw_group',$group_info['account_id'],$user_id);
- }
- }
-
- if (is_array($group_info['account_user']))
- {
- foreach($group_info['account_user'] as $user_id => $dummy)
- {
- if(!$dummy)
- {
- continue;
- }
- $acl->add_repository('phpgw_group',$group_info['account_id'],$user_id,1);
- }
- }
+ $group->set_members($group_info['account_user'],$group_info['account_id']);
// This is down here so we are sure to catch the acl changes
// for LDAP to update the memberuid attribute
@@ -771,6 +695,9 @@
$account =& CreateObject('phpgwapi.accounts',$_userData['account_id'],'u');
$account->update_data($_userData);
$account->save_repository();
+
+ $account->set_memberships($_userData['account_groups'],$_userData['account_id']);
+
if ($_userData['account_passwd'])
{
$auth =& CreateObject('phpgwapi.auth');
@@ -797,35 +724,7 @@
}
$apps->save_repository();
- $account =& CreateObject('phpgwapi.accounts',$_userData['account_id'],'u');
- $allGroups = $account->get_list('groups');
-
- if ($_userData['account_groups'])
- {
- reset($_userData['account_groups']);
- while (list($key,$value) = each($_userData['account_groups']))
- {
- $newGroups[$value] = $value;
- }
- }
-
$acl =& CreateObject('phpgwapi.acl',$_userData['account_id']);
-
- reset($allGroups);
- while (list($key,$groupData) = each($allGroups))
- {
- /* print "$key,". $groupData['account_id'] ."
";*/
- /* print "$key,". $_userData['account_groups'][1] ."
"; */
-
- if ($newGroups[(string) $groupData['account_id']])
- {
- $acl->add_repository('phpgw_group',$groupData['account_id'],$_userData['account_id'],1);
- }
- else
- {
- $acl->delete_repository('phpgw_group',$groupData['account_id'],$_userData['account_id']);
- }
- }
if ($_userData['anonymous'])
{
$acl->add_repository('phpgwapi','anonymous',$_userData['account_id'],1);
@@ -845,26 +744,6 @@
$GLOBALS['egw']->session->delete_cache((int)$_userData['account_id']);
}
- function load_group_users($account_id)
- {
- $temp_user = $GLOBALS['egw']->acl->get_ids_for_location($account_id,1,'phpgw_group');
- if(!$temp_user)
- {
- return Array();
- }
- else
- {
- $group_user = $temp_user;
- }
- $account_user = Array();
- while (list($key,$user) = each($group_user))
- {
- $account_user[$user] = ' selected';
- }
- @reset($account_user);
- return $account_user;
- }
-
function load_group_managers($account_id)
{
$temp_user = $GLOBALS['egw']->acl->get_ids_for_location($account_id,EGW_ACL_GROUP_MANAGERS,'phpgw_group');
diff --git a/admin/inc/class.soaccounts.inc.php b/admin/inc/class.soaccounts.inc.php
index e0de32bc68..324ba47e33 100755
--- a/admin/inc/class.soaccounts.inc.php
+++ b/admin/inc/class.soaccounts.inc.php
@@ -20,7 +20,6 @@
function add_user($userData)
{
$userData['account_expires'] = $userData['expires'];
- //$userData['account_email'] = $userData['email'];
if($userData['email'] != "")
{
@@ -31,8 +30,11 @@
{
return false;
}
+ $GLOBALS['egw']->accounts->set_memberships($userData['account_groups'],$userData['account_id']);
+
$apps =& CreateObject('phpgwapi.applications',$userData['account_id']);
$apps->read_installed_apps();
+/* dont think this is still used -- RalfBecker 2006-06-03
// Read Group Apps
if ($userData['account_groups'])
{
@@ -52,7 +54,7 @@
}
}
}
-
+*/
$apps->account_type = 'u';
$apps->account_id = $userData['account_id'];
$apps->data = Array(Array());
@@ -65,10 +67,12 @@
if ($turned_on)
{
$apps->add($app);
+/* dont think this is still used -- RalfBecker 2006-06-03
if (!$apps_after[$app])
{
$apps_after[] = $app;
}
+*/
}
}
}
@@ -78,18 +82,9 @@
{
$GLOBALS['egw']->acl->add_repository('preferences','changepassword',$userData['account_id'],1);
}
- // Assign user to groups
- if ($userData['account_groups'])
- {
- $c_acct_groups = count($userData['account_groups']);
- for ($i=0;$i<$c_acct_groups;$i++)
- {
- $GLOBALS['egw']->acl->add_repository('phpgw_group',$userData['account_groups'][$i],$userData['account_id'],1);
- }
- }
$apps->account_apps = array(array());
- $apps_after = array(array());
+// $apps_after = array(array());
return $userData['account_id'];
}
diff --git a/admin/inc/class.uiaccounts.inc.php b/admin/inc/class.uiaccounts.inc.php
index 418a1b99e7..cbc2516ad7 100755
--- a/admin/inc/class.uiaccounts.inc.php
+++ b/admin/inc/class.uiaccounts.inc.php
@@ -498,9 +498,7 @@
$p->set_var('message_display',lang('Are you sure you want to delete this group ?'));
$p->parse('messages','message_row');
- $old_group_list = $GLOBALS['egw']->acl->get_ids_for_location((int)$_GET['account_id'],1,'phpgw_group');
-
- if($old_group_list)
+ if(($old_group_list = $GLOBALS['egw']->accounts->memberships((int)$_GET['account_id'],true)))
{
$group_name = $GLOBALS['egw']->accounts->id2name($_GET['account_id']);
@@ -640,7 +638,7 @@
$group_info = Array(
'account_id' => (int)$_GET['account_id'],
'account_name' => $GLOBALS['egw']->accounts->id2name($_GET['account_id']),
- 'account_user' => $this->bo->load_group_users($_GET['account_id']),
+ 'account_user' => $GLOBALS['egw']->accounts->members($_GET['account_id']),
'account_apps' => $this->bo->load_group_apps($_GET['account_id'])
);
@@ -1068,8 +1066,8 @@
{
$userData = Array();
$userData=$_userData;
- $userData['firstname'] = $userData['account_firstname'];
- $userData['lastname'] = $userData['account_lastname'];
+// $userData['firstname'] = $userData['account_firstname'];
+// $userData['lastname'] = $userData['account_lastname'];
@reset($userData['account_groups']);
while (list($key, $value) = @each($userData['account_groups']))
{