phpgroupware-cvs
[Top][All Lists]
Advanced

[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);
+                               }
+                       }
+               }
+
        }
 ?>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]