egroupware_official/admin/inc/class.soaccounts.inc.php

98 lines
2.7 KiB
PHP
Raw Normal View History

<?php
/**************************************************************************\
2004-01-27 00:26:19 +01:00
* eGroupWare - account administration *
* http://www.egroupware.org *
* -------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU General Public License as published by the *
* Free Software Foundation; either version 2 of the License, or (at your *
* option) any later version. *
\**************************************************************************/
/* $Id$ */
2001-12-21 04:41:06 +01:00
class soaccounts
{
function soaccounts()
{
}
2001-10-10 17:10:15 +02:00
function add_user($userData)
{
$userData['account_expires'] = $userData['expires'];
//$userData['account_email'] = $userData['email'];
if($userData['email'] != "")
{
$userData['account_email'] = $userData['email'];
}
if (!($userData['account_id'] = $GLOBALS['egw']->accounts->create($userData)))
{
return false;
}
2005-10-14 19:03:16 +02:00
$apps =& CreateObject('phpgwapi.applications',$userData['account_id']);
2001-10-10 17:10:15 +02:00
$apps->read_installed_apps();
// Read Group Apps
if ($userData['account_groups'])
{
$apps->account_type = 'g';
reset($userData['account_groups']);
while($groups = each($userData['account_groups']))
{
$apps->account_id = $groups[0];
$old_app_groups = $apps->read_account_specific();
@reset($old_app_groups);
while($old_group_app = each($old_app_groups))
{
if (!$apps_after[$old_group_app[0]])
{
$apps_after[$old_group_app[0]] = $old_app_groups[$old_group_app[0]];
}
}
}
}
$apps->account_type = 'u';
$apps->account_id = $userData['account_id'];
$apps->data = Array(Array());
2001-10-10 17:10:15 +02:00
if ($userData['account_permissions'])
{
@reset($userData['account_permissions']);
while (list($app,$turned_on) = each($userData['account_permissions']))
{
if ($turned_on)
{
$apps->add($app);
if (!$apps_after[$app])
{
$apps_after[] = $app;
}
}
}
}
$apps->save_repository();
if ($userData['changepassword'])
{
2005-10-14 19:03:16 +02:00
$GLOBALS['egw']->acl->add_repository('preferences','changepassword',$userData['account_id'],1);
}
2001-10-10 17:10:15 +02:00
// Assign user to groups
if ($userData['account_groups'])
{
$c_acct_groups = count($userData['account_groups']);
for ($i=0;$i<$c_acct_groups;$i++)
{
2005-10-14 19:03:16 +02:00
$GLOBALS['egw']->acl->add_repository('phpgw_group',$userData['account_groups'][$i],$userData['account_id'],1);
2001-10-10 17:10:15 +02:00
}
}
$apps->account_apps = array(array());
$apps_after = array(array());
return $userData['account_id'];
}
}
?>