[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Phpgroupware-cvs] admin/inc/class.boaccounts.inc.php, 1.34
From: |
nomail |
Subject: |
[Phpgroupware-cvs] admin/inc/class.boaccounts.inc.php, 1.34 |
Date: |
Fri, 25 Jun 2004 10:21:59 +0200 |
Update of /admin/inc
Modified Files:
Branch:
class.boaccounts.inc.php
date: 2004/06/25 08:21:59; author: fipsfuchs; state: Exp; lines: +78 -80
Log Message:
refactoring of save_user
=====================================================================
Index: admin/inc/class.boaccounts.inc.php
diff -u admin/inc/class.boaccounts.inc.php:1.33
admin/inc/class.boaccounts.inc.php:1.34
--- admin/inc/class.boaccounts.inc.php:1.33 Wed Jun 23 14:59:45 2004
+++ admin/inc/class.boaccounts.inc.php Fri Jun 25 08:21:59 2004
@@ -372,6 +372,12 @@
$GLOBALS['phpgw']->db->unlock();
}
+ /**
+ * Saves a new user (account) or update an existing one
+ *
+ * @param array $values Account details
+ * @return null No return value
+ */
function save_user($values)
{
if (is_array($values))
@@ -387,17 +393,16 @@
$userData = array
(
- 'account_type' => 'u',
+ 'type' => 'u',
'account_lid' =>
$values['account_lid'],
- 'account_firstname' =>
$values['account_firstname'],
- 'account_lastname' =>
$values['account_lastname'],
- 'account_passwd' =>
$values['account_passwd'],
+ 'firstname' =>
$values['account_firstname'],
+ 'lastname' =>
$values['account_lastname'],
+ 'passwd' =>
$values['account_passwd'],
'status' =>
($values['account_status'] ? 'A' : ''),
- 'account_status' =>
($values['account_status'] ? 'A' : ''),
'old_loginid' =>
($values['old_loginid']?rawurldecode($GLOBALS['HTTP_GET_VARS']['old_loginid']):''),
- 'account_id' =>
($values['account_id']?$GLOBALS['HTTP_GET_VARS']['account_id']:0),
+ 'account_id' =>
$values['account_id'],
'account_passwd_2' =>
$values['account_passwd_2'],
- 'account_groups' =>
$values['account_groups'],
+ 'groups' =>
$values['account_groups'],
'account_permissions' =>
$values['account_permissions'],
'homedirectory' =>
$values['homedirectory'],
'loginshell' =>
$values['loginshell'],
@@ -405,15 +410,26 @@
'account_expires_day' =>
$values['account_expires_day'],
'account_expires_year' =>
$values['account_expires_year'],
'account_expires_never' =>
$values['expires'],
- 'expires'
=> $values['expires'],
- 'account_expires' =>
$values['expires']
+ 'expires' =>
$values['expires'],
/* 'file_space' =>
$GLOBALS['HTTP_POST_VARS']['account_file_space_number'] . "-" .
$GLOBALS['HTTP_POST_VARS']['account_file_space_type'] */
);
- if ($values['account_id'])
+ if ($values['account_id']) //user exists
{
$userData['account_id'] =
$values['account_id'];
- $this->update_user($userData);
+ $this->so->update_user($userData);
+
+ if ($userData['passwd'])
+ {
+ $auth =
CreateObject('phpgwapi.auth');
+
$auth->change_password($old_passwd,$userData['passwd'],$userData['account_id']);
+
$GLOBALS['hook_values']['account_id'] = $userData['account_id'];
+
$GLOBALS['hook_values']['old_passwd'] = $old_passwd;
+
$GLOBALS['hook_values']['new_passwd'] = $userData['account_passwd'];
+
$GLOBALS['phpgw']->hooks->process('changepassword');
+ }
+
+
$GLOBALS['phpgw']->session->delete_cache(intval($userData['id']));
/* check if would create a menu
// if we do, we can't return to the
users list, because
// there are also some other plugins
@@ -421,80 +437,19 @@
{
}*/
}
- else
+ else //new user
{
- $account_id =
$this->so->add_user($userData);
- $GLOBALS['hook_values']['account_lid']
= $userData['account_lid'];
- $GLOBALS['hook_values']['account_id']
= $account_id; //$userData['account_id'];
- $GLOBALS['hook_values']['new_passwd']
= $userData['account_passwd'];
+ $userData['account_id'] =
$this->so->add_user($userData);
+ $GLOBALS['hook_values']['account_lid']
= $userData['account_lid'];
+ $GLOBALS['hook_values']['account_id']
= $userData['account_id'];
+ $GLOBALS['hook_values']['new_passwd']
= $userData['passwd'];
$GLOBALS['phpgw']->hooks->process('addaccount');
}
+
$this->set_module_permissions($userData['account_id'],
$userData['account_permissions']);
+
$this->set_groups2account($userData['account_id'], $userData['groups']);
}
}
- /* stores the userdata */
- function update_user($userData)
- {
- $account =
CreateObject('phpgwapi.accounts',$userData['account_id'],'u');
- $account->update_data($userData);
- $account->save_repository();
- if ($userData['account_passwd'])
- {
- $auth = CreateObject('phpgwapi.auth');
-
$auth->change_password($old_passwd,$userData['account_passwd'],$userData['account_id']);
- $GLOBALS['hook_values']['account_id'] =
$userData['account_id'];
- $GLOBALS['hook_values']['old_passwd'] =
$old_passwd;
- $GLOBALS['hook_values']['new_passwd'] =
$userData['account_passwd'];
-
$GLOBALS['phpgw']->hooks->process('changepassword');
- }
-
- $apps =
CreateObject('phpgwapi.applications',array(intval($userData['account_id']),'u'));
-
- $apps->account_id = $userData['account_id'];
- if ($_userData['account_permissions'])
- {
- while($app =
each($userData['account_permissions']))
- {
- if($app[1])
- {
- $apps->add($app[0]);
- }
- }
- }
- $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']
."<br>";*/
- /* print "$key,".
$userData['account_groups'][1] ."<br>"; */
-
- if ($newGroups[$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']);
- }
- }
-
$GLOBALS['phpgw']->session->delete_cache(intval($userData['account_id']));
- }
-
function set_group_managers()
{
if($GLOBALS['phpgw']->acl->check('group_access',16,'admin') ||
$GLOBALS['HTTP_POST_VARS']['cancel'])
@@ -798,5 +753,48 @@
}
return $result;
}
+
+ function set_module_permissions($id, $modules)
+ {
+ if ($modules)
+ {
+ $apps = CreateObject('phpgwapi.applications',
intval($id));
+ while($app = each($modules))
+ {
+ if($app[1])
+ {
+ $apps->add($app[0]);
+ }
+ }
+ $apps->save_repository();
+ }
+ }
+
+ function set_groups2account($id, $groups)
+ {
+ $account = CreateObject('phpgwapi.accounts', $id, 'u');
+ $allGroups = $account->get_list('groups');
+ if ($groups)
+ {
+ while (list($key,$value) = each($groups))
+ {
+ $newGroups[$value] = $value;
+ }
+ }
+
+ $acl = CreateObject('phpgwapi.acl',$id);
+ while (list($key,$groupData) = each($allGroups))
+ {
+ if (in_array($groupData['account_id'],
$groups))
+ {
+
$acl->add_repository('phpgw_group',$groupData['account_id'], $id, 1);
+ }
+ else
+ {
+
$acl->delete_repository('phpgw_group',$groupData['account_id'],$id);
+ }
+ }
+ }
+
}
?>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Phpgroupware-cvs] admin/inc/class.boaccounts.inc.php, 1.34,
nomail <=