mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-21 23:43:17 +01:00
old user and group admin, incl. lots of old phplib templates
This commit is contained in:
parent
b71baf7365
commit
9280eca83b
@ -60,15 +60,6 @@ class admin_hooks
|
||||
$file['Site Configuration'] = egw::link('/index.php','menuaction=admin.uiconfig.index&appname=admin');
|
||||
}
|
||||
|
||||
if (! $GLOBALS['egw']->acl->check('account_access',1,'admin'))
|
||||
{
|
||||
$file['User Accounts'] = array(
|
||||
'id' => '/accounts',
|
||||
'icon' => common::image('addressbook', 'accounts'),
|
||||
'link' => egw::link('/index.php','menuaction=admin.uiaccounts.list_users'),
|
||||
);
|
||||
}
|
||||
|
||||
if (! $GLOBALS['egw']->acl->check('account_access',16,'admin'))
|
||||
{
|
||||
$file['Bulk password reset'] = egw::link('/index.php','menuaction=admin.admin_passwordreset.index');
|
||||
|
@ -111,13 +111,6 @@ class admin_ui
|
||||
'add' => array(
|
||||
'group' => $group,
|
||||
)+$user_actions['add'],
|
||||
'edit' => array(
|
||||
'onExecute' => 'javaScript:app.admin.group',
|
||||
'caption' => 'Edit group',
|
||||
'enableId' => '^/groups/-\\d+',
|
||||
'url' => 'menuaction=admin.uiaccounts.edit_group&account_id=$id',
|
||||
'group' => 2,
|
||||
),
|
||||
'acl' => array(
|
||||
'onExecute' => 'javaScript:app.admin.group',
|
||||
'caption' => 'Access control',
|
||||
@ -422,10 +415,6 @@ if ($app == 'felamimail') continue; // disabled fmail for now, as it break whole
|
||||
$tree['item'][] = self::fix_userdata(array(
|
||||
'text' => $group['account_lid'],
|
||||
'id' => $root.'/'.$group['account_id'],
|
||||
'link' => egw::link('/index.php', array(
|
||||
'menuaction' => 'admin.uiaccounts.edit_group',
|
||||
'account_id' => $group['account_id'],
|
||||
)),
|
||||
));
|
||||
}
|
||||
}
|
||||
|
@ -1,501 +0,0 @@
|
||||
<?php
|
||||
/**************************************************************************\
|
||||
* 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$ */
|
||||
|
||||
class boaccounts
|
||||
{
|
||||
var $so;
|
||||
var $public_functions = array(
|
||||
'add_group' => True,
|
||||
'add_user' => True,
|
||||
'delete_group' => True,
|
||||
'delete_user' => True,
|
||||
'edit_group' => True,
|
||||
'edit_user' => True
|
||||
);
|
||||
|
||||
var $xml_functions = array();
|
||||
|
||||
var $soap_functions = array(
|
||||
'add_user' => array(
|
||||
'in' => array('int', 'struct'),
|
||||
'out' => array()
|
||||
)
|
||||
);
|
||||
|
||||
function delete_group($account_id='')
|
||||
{
|
||||
if(!$account_id || $GLOBALS['egw']->acl->check('group_access',32,'admin'))
|
||||
{
|
||||
return False;
|
||||
}
|
||||
|
||||
$account_id = (int)$account_id;
|
||||
|
||||
// delete all acl (and memberships) of group
|
||||
$GLOBALS['egw']->acl->delete_account($account_id);
|
||||
|
||||
// make this information also available in the hook
|
||||
$lid = $GLOBALS['egw']->accounts->id2name($account_id);
|
||||
|
||||
$GLOBALS['egw']->hooks->process($GLOBALS['hook_values'] = array(
|
||||
'account_id' => $account_id,
|
||||
'account_name' => $lid,
|
||||
'location' => 'deletegroup'
|
||||
),False,True); // called for every app now, not only enabled ones)
|
||||
|
||||
$GLOBALS['egw']->accounts->delete($account_id);
|
||||
|
||||
return True;
|
||||
}
|
||||
|
||||
function delete_user($account_id='',$new_owner='')
|
||||
{
|
||||
if(!$account_id || $GLOBALS['egw']->acl->check('account_access',32,'admin'))
|
||||
{
|
||||
return False;
|
||||
}
|
||||
|
||||
$accountid = (int)$account_id;
|
||||
$account_id = get_account_id($accountid);
|
||||
// make this information also available in the hook
|
||||
$lid = $GLOBALS['egw']->accounts->id2name($account_id);
|
||||
|
||||
$GLOBALS['hook_values'] = array(
|
||||
'account_id' => $account_id,
|
||||
'account_lid' => $lid,
|
||||
'new_owner' => (int)$new_owner,
|
||||
'location' => 'deleteaccount'
|
||||
);
|
||||
// first all other apps, then preferences and admin
|
||||
foreach(array_merge(array_diff(array_keys($GLOBALS['egw_info']['apps']),array('preferences','admin')),array('preferences','admin')) as $app)
|
||||
{
|
||||
$GLOBALS['egw']->hooks->single($GLOBALS['hook_values'],$app);
|
||||
}
|
||||
return True;
|
||||
}
|
||||
|
||||
function add_group($group_info)
|
||||
{
|
||||
if($GLOBALS['egw']->acl->check('group_access',4,'admin'))
|
||||
{
|
||||
return False;
|
||||
}
|
||||
|
||||
$errors = $this->validate_group($group_info);
|
||||
if(count($errors))
|
||||
{
|
||||
return $errors;
|
||||
}
|
||||
|
||||
$group =& CreateObject('phpgwapi.accounts',$group_info['account_id'],'g');
|
||||
$group->acct_type = 'g';
|
||||
$account_info = array(
|
||||
'account_type' => 'g',
|
||||
'account_lid' => $group_info['account_name'],
|
||||
'account_passwd' => '',
|
||||
'account_firstname' => $group_info['account_name'],
|
||||
'account_lastname' => 'Group',
|
||||
'account_status' => 'A',
|
||||
'account_expires' => -1,
|
||||
// 'account_file_space' => $account_file_space_number . "-" . $account_file_space_type,
|
||||
'account_email' => $group_info['account_email'],
|
||||
'account_members' => $group_info['account_user']
|
||||
);
|
||||
$group_info['account_id'] = $group->create($account_info);
|
||||
|
||||
// do the following only if we got an id - the create succeeded
|
||||
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']);
|
||||
while(list($app,$value) = each($group_info['account_apps']))
|
||||
{
|
||||
$apps->add($app);
|
||||
$new_apps[] = $app;
|
||||
}
|
||||
$apps->save_repository();
|
||||
|
||||
$GLOBALS['hook_values'] = $group_info;
|
||||
$GLOBALS['egw']->hooks->process($GLOBALS['hook_values']+array(
|
||||
'location' => 'addgroup'
|
||||
),False,True); // called for every app now, not only enabled ones)
|
||||
|
||||
return True;
|
||||
}
|
||||
|
||||
return False;
|
||||
}
|
||||
|
||||
function edit_group($group_info)
|
||||
{
|
||||
if($GLOBALS['egw']->acl->check('group_access',16,'admin'))
|
||||
{
|
||||
return False;
|
||||
}
|
||||
|
||||
$errors = $this->validate_group($group_info);
|
||||
if(count($errors))
|
||||
{
|
||||
return $errors;
|
||||
}
|
||||
|
||||
$group =& CreateObject('phpgwapi.accounts',$group_info['account_id'],'g');
|
||||
$old_group_info = $group->read_repository();
|
||||
|
||||
// Set group apps
|
||||
$apps =& CreateObject('phpgwapi.applications',$group_info['account_id']);
|
||||
$apps_before = $apps->read_account_specific();
|
||||
$apps->update_data(Array());
|
||||
$new_apps = Array();
|
||||
if(count($group_info['account_apps']))
|
||||
{
|
||||
reset($group_info['account_apps']);
|
||||
while(list($app,$value) = each($group_info['account_apps']))
|
||||
{
|
||||
$apps->add($app);
|
||||
if(!@$apps_before[$app] || @$apps_before == False)
|
||||
{
|
||||
$new_apps[] = $app;
|
||||
}
|
||||
}
|
||||
}
|
||||
$apps->save_repository();
|
||||
|
||||
$group->set_members($group_info['account_user'],$group_info['account_id']);
|
||||
|
||||
$GLOBALS['hook_values'] = $group_info;
|
||||
$GLOBALS['hook_values']['old_name'] = $group->id2name($group_info['account_id']);
|
||||
|
||||
// This is down here so we are sure to catch the acl changes
|
||||
// for LDAP to update the memberuid attribute
|
||||
$group->data['account_email'] = $group_info['account_email'];
|
||||
$group->data['account_lid'] = $group_info['account_name'];
|
||||
$group->save_repository();
|
||||
|
||||
$GLOBALS['egw']->hooks->process($GLOBALS['hook_values']+array(
|
||||
'location' => 'editgroup'
|
||||
),False,True); // called for every app now, not only enabled ones)
|
||||
|
||||
return True;
|
||||
}
|
||||
|
||||
/**
|
||||
* Process a user edit
|
||||
*
|
||||
* @param array $userData
|
||||
* @param int $required_account_access=16 can be set to 4 for add user
|
||||
* @return boolean|array with errors or true on success, false on acl failure
|
||||
*/
|
||||
function edit_user(&$userData, $required_account_access=16)
|
||||
{
|
||||
if($GLOBALS['egw']->acl->check('account_access',$required_account_access,'admin'))
|
||||
{
|
||||
return False;
|
||||
}
|
||||
//error_log(array2string($userData));
|
||||
$accountPrefix = '';
|
||||
if(isset($GLOBALS['egw_info']['server']['account_prefix']))
|
||||
{
|
||||
$accountPrefix = $GLOBALS['egw_info']['server']['account_prefix'];
|
||||
}
|
||||
if($accountPrefix && strpos($userData['account_lid'], $accountPrefix) !== 0)
|
||||
{
|
||||
$userData['account_lid'] = $accountPrefix . $userData['account_lid'];
|
||||
}
|
||||
|
||||
$errors = $this->validate_user($userData);
|
||||
|
||||
if(!$errors)
|
||||
{
|
||||
$new_user = !$userData['account_id'];
|
||||
$passwd = $userData['account_passwd'];
|
||||
$errors = $this->save_user($userData);
|
||||
$GLOBALS['hook_values'] = $userData + ($new_user ? array(
|
||||
'new_password' => $passwd,
|
||||
) : array());
|
||||
$GLOBALS['egw']->hooks->process($GLOBALS['hook_values']+array(
|
||||
'location' => $new_user ? 'addaccount' : 'editaccount',
|
||||
),False,True); // called for every app now, not only enabled ones)
|
||||
}
|
||||
//error_log(__METHOD__."(".array2string($userData).") returning ".array2string($errors ? $errors : true));
|
||||
return $errors ? $errors : true;
|
||||
}
|
||||
|
||||
function validate_group($group_info)
|
||||
{
|
||||
$errors = Array();
|
||||
|
||||
$group =& CreateObject('phpgwapi.accounts',$group_info['account_id'],'g');
|
||||
$group->read_repository();
|
||||
|
||||
if(!$group_info['account_name'])
|
||||
{
|
||||
$errors[] = lang('You must enter a group name.');
|
||||
}
|
||||
/* For LDAP */
|
||||
if(!$group_info['account_user'])
|
||||
{
|
||||
$errors[] = lang('You must select at least one group member.');
|
||||
}
|
||||
|
||||
if($group_info['account_name'] != $group->id2name($group_info['account_id']))
|
||||
{
|
||||
if($group->exists($group_info['account_name']))
|
||||
{
|
||||
$errors[] = lang('Sorry, that group name has already been taken.');
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
if(preg_match("/\D/", $account_file_space_number))
|
||||
{
|
||||
$errors[] = lang('File space must be an integer');
|
||||
}
|
||||
*/
|
||||
if(count($errors))
|
||||
{
|
||||
return $errors;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* checks if the userdata are valid
|
||||
*
|
||||
* @return array with errors or empty array if there are none
|
||||
*/
|
||||
function validate_user(&$_userData)
|
||||
{
|
||||
$errors = array();
|
||||
|
||||
if($GLOBALS['egw_info']['server']['account_repository'] == 'ldap' &&
|
||||
(!$_userData['account_lastname'] && !$_userData['lastname']))
|
||||
{
|
||||
$errors[] = lang('You must enter a lastname');
|
||||
}
|
||||
|
||||
if(!$_userData['account_lid'])
|
||||
{
|
||||
$errors[] = lang('You must enter a loginid');
|
||||
}
|
||||
|
||||
if(!in_array($_userData['account_primary_group'],$_userData['account_groups']))
|
||||
{
|
||||
$errors[] = lang('The groups must include the primary group');
|
||||
}
|
||||
// Check if an account already exists as system user, and if it does deny creation
|
||||
// (increase the totalerrors counter and the message thereof)
|
||||
if ($GLOBALS['egw_info']['server']['account_repository'] == 'ldap' &&
|
||||
!$GLOBALS['egw_info']['server']['ldap_allow_systemusernames'] && !$_userData['account_id'] &&
|
||||
function_exists('posix_getpwnam') && posix_getpwnam($_userData['account_lid']))
|
||||
{
|
||||
$errors[] = lang('There already is a system-user with this name. User\'s should not have the same name as a systemuser');
|
||||
}
|
||||
if($_userData['old_loginid'] != $_userData['account_lid'])
|
||||
{
|
||||
if($GLOBALS['egw']->accounts->exists($_userData['account_lid']))
|
||||
{
|
||||
if($GLOBALS['egw']->accounts->exists($_userData['account_lid']) && $GLOBALS['egw']->accounts->get_type($_userData['account_lid'])=='g')
|
||||
{
|
||||
$errors[] = lang('There already is a group with this name. Userid\'s can not have the same name as a groupid');
|
||||
}
|
||||
else
|
||||
{
|
||||
$errors[] = lang('That loginid has already been taken');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($_userData['account_passwd'] || $_userData['account_passwd_2'])
|
||||
{
|
||||
if($_userData['account_passwd'] != $_userData['account_passwd_2'])
|
||||
{
|
||||
$errors[] = lang('The two passwords are not the same');
|
||||
}
|
||||
}
|
||||
|
||||
if(!count($_userData['account_permissions']) && !count($_userData['account_groups']))
|
||||
{
|
||||
$errors[] = lang('You must add at least 1 permission or group to this account');
|
||||
}
|
||||
|
||||
if($_userData['account_expires_month'] || $_userData['account_expires_day'] || $_userData['account_expires_year'] || $_userData['account_expires_never'])
|
||||
{
|
||||
if($_userData['account_expires_never'])
|
||||
{
|
||||
$_userData['expires'] = -1;
|
||||
$_userData['account_expires'] = $_userData['expires'];
|
||||
}
|
||||
else
|
||||
{
|
||||
if(! checkdate($_userData['account_expires_month'],$_userData['account_expires_day'],$_userData['account_expires_year']))
|
||||
{
|
||||
$errors[] = lang('You have entered an invalid expiration date');
|
||||
}
|
||||
else
|
||||
{
|
||||
$_userData['expires'] = mktime(2,0,0,$_userData['account_expires_month'],$_userData['account_expires_day'],$_userData['account_expires_year']);
|
||||
$_userData['account_expires'] = $_userData['expires'];
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$_userData['expires'] = -1;
|
||||
$_userData['account_expires'] = $_userData['expires'];
|
||||
}
|
||||
|
||||
/*
|
||||
$check_account_file_space = explode('-', $_userData['file_space']);
|
||||
if(preg_match("/\D/", $check_account_file_space[0]))
|
||||
{
|
||||
$errors[] = lang('File space must be an integer');
|
||||
}
|
||||
*/
|
||||
|
||||
return $errors;
|
||||
}
|
||||
|
||||
/**
|
||||
* stores the userdata
|
||||
*
|
||||
* @param array &$_userData "account_id" got set for new accounts
|
||||
* @return array with error-messages
|
||||
*/
|
||||
function save_user(array &$_userData)
|
||||
{
|
||||
//error_log(__METHOD__."(".array2string($_userData).")");
|
||||
$errors = array();
|
||||
|
||||
// do NOT save password via accounts::save, as pw policy violation can happen and we cant/dont report that way
|
||||
$passwd = $_userData['account_passwd'];
|
||||
$new_account = !$_userData['account_id'];
|
||||
unset($_userData['account_passwd']);
|
||||
unset($_userData['account_passwd_2']);
|
||||
|
||||
if ($new_account && !$GLOBALS['egw']->accounts->save($_userData))
|
||||
{
|
||||
$errors[] = lang('Failed to save user!');
|
||||
return $errors;
|
||||
}
|
||||
|
||||
if ($passwd)
|
||||
{
|
||||
$_userData['account_passwd'] = $passwd;
|
||||
try {
|
||||
$auth = new auth();
|
||||
if ($auth->change_password('', $passwd, $_userData['account_id']))
|
||||
{
|
||||
if ($_userData['account_lastpwd_change']==0 || // AD requires to activate account AFTER setting pw
|
||||
$new_account && $_userData['account_status'] == 'A' && $GLOBALS['egw']->accounts->require_password_for_enable())
|
||||
{
|
||||
// change password sets the shadow_timestamp/account_lastpwd_change timestamp
|
||||
// so we need to reset that to 0 as Admin required the change of password upon next login
|
||||
$GLOBALS['egw']->accounts->save($_userData);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$errors[] = lang('Failed to change password.');
|
||||
}
|
||||
}
|
||||
catch(Exception $e) {
|
||||
$errors[] = $e->getMessage();
|
||||
}
|
||||
}
|
||||
$GLOBALS['egw']->accounts->set_memberships($_userData['account_groups'],$_userData['account_id']);
|
||||
|
||||
if (!$new_account && !$GLOBALS['egw']->accounts->save($_userData))
|
||||
{
|
||||
$errors[] = lang('Failed to save user!');
|
||||
return $errors;
|
||||
}
|
||||
|
||||
if ($_userData['account_lastpwd_change']==0)
|
||||
{
|
||||
if (!isset($auth)) $auth =& CreateObject('phpgwapi.auth');
|
||||
// we call that with NULL for 2nd Parameter as we are doing an admin action.
|
||||
$auth->setLastPwdChange($_userData['account_id'],NULL, $_userData['account_lastpwd_change']);
|
||||
}
|
||||
|
||||
$apps = new applications((int)$_userData['account_id']);
|
||||
if($_userData['account_permissions'])
|
||||
{
|
||||
foreach($_userData['account_permissions'] as $app => $enabled)
|
||||
{
|
||||
if($enabled)
|
||||
{
|
||||
$apps->add($app);
|
||||
}
|
||||
}
|
||||
}
|
||||
$apps->save_repository();
|
||||
|
||||
$acl = new acl($_userData['account_id']);
|
||||
if($_userData['anonymous'])
|
||||
{
|
||||
$acl->add_repository('phpgwapi','anonymous',$_userData['account_id'],1);
|
||||
}
|
||||
else
|
||||
{
|
||||
$acl->delete_repository('phpgwapi','anonymous',$_userData['account_id']);
|
||||
}
|
||||
if(!$_userData['changepassword'])
|
||||
{
|
||||
$GLOBALS['egw']->acl->add_repository('preferences','nopasswordchange',$_userData['account_id'],1);
|
||||
}
|
||||
else
|
||||
{
|
||||
$GLOBALS['egw']->acl->delete_repository('preferences','nopasswordchange',$_userData['account_id']);
|
||||
}
|
||||
$GLOBALS['egw']->session->delete_cache((int)$_userData['account_id']);
|
||||
|
||||
//error_log(__METHOD__."(".array2string($_userData).") returning ".array2string($errors));
|
||||
return $errors;
|
||||
}
|
||||
|
||||
function load_group_managers($account_id)
|
||||
{
|
||||
$temp_user = $GLOBALS['egw']->acl->get_ids_for_location($account_id,EGW_ACL_GROUP_MANAGERS,'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_apps($account_id)
|
||||
{
|
||||
$apps =& CreateObject('phpgwapi.applications',(int)$account_id);
|
||||
$app_list = $apps->read_account_specific();
|
||||
$account_apps = Array();
|
||||
while(list($key,$app) = each($app_list))
|
||||
{
|
||||
$account_apps[$app['name']] = True;
|
||||
}
|
||||
@reset($account_apps);
|
||||
return $account_apps;
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -64,7 +64,7 @@
|
||||
$this->template->set_var('app_name',$GLOBALS['egw_info']['apps'][$app]['title']);
|
||||
$this->template->set_var('a_name',$appname);
|
||||
$this->template->set_var('app_icon',$icon);
|
||||
|
||||
|
||||
if ($icon)
|
||||
{
|
||||
$this->template->fp('rows','app_row',True);
|
||||
@ -73,7 +73,7 @@
|
||||
{
|
||||
$this->template->fp('rows','app_row_noicon',True);
|
||||
}
|
||||
|
||||
|
||||
if (is_array($locations))
|
||||
{
|
||||
foreach($locations as $loc => $value)
|
||||
@ -84,18 +84,18 @@
|
||||
'acl_app' => $app,
|
||||
'account_id' => $this->account_id
|
||||
);
|
||||
|
||||
|
||||
$this->template->set_var('link_location',$GLOBALS['egw']->link('/index.php',$link_values));
|
||||
$this->template->set_var('lang_location',lang($value['name']));
|
||||
$this->template->fp('rows','link_row',True);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$this->template->parse('rows','spacer_row',True);
|
||||
}
|
||||
}
|
||||
$this->template->set_var(array(
|
||||
'cancel_action' => $GLOBALS['egw']->link('/index.php','menuaction=admin.uiaccounts.list_users'),
|
||||
'cancel_action' => $GLOBALS['egw']->link('/admin/index.php'),
|
||||
'lang_cancel' => lang('Cancel')
|
||||
));
|
||||
$this->template->pfp('out','list');
|
||||
|
@ -1,138 +0,0 @@
|
||||
<?php
|
||||
/**************************************************************************\
|
||||
* eGroupWare - 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$ */
|
||||
|
||||
class uimenuclass
|
||||
{
|
||||
var $t;
|
||||
var $rowColor = Array();
|
||||
|
||||
function uimenuclass()
|
||||
{
|
||||
$this->t =& CreateObject('phpgwapi.Template',$GLOBALS['egw']->common->get_tpl_dir('admin'));
|
||||
|
||||
$this->t->set_file(array('menurow' => 'menurow.tpl'));
|
||||
$this->t->set_block('menurow','menu_links','menu_links');
|
||||
$this->t->set_block('menurow','link_row','link_row');
|
||||
|
||||
$this->rowColor[0] = $GLOBALS['egw_info']['theme']['row_on'];
|
||||
$this->rowColor[1] = $GLOBALS['egw_info']['theme']['row_off'];
|
||||
}
|
||||
|
||||
function section_item($pref_link='',$pref_text='', $class='',$options='')
|
||||
{
|
||||
$this->t->set_var('row_link',$pref_link);
|
||||
$this->t->set_var('row_text',$pref_text);
|
||||
$this->t->set_var('class',$class);
|
||||
$this->t->set_var('row_options',$options);
|
||||
$this->t->parse('all_rows','link_row',True);
|
||||
}
|
||||
|
||||
// $file must be in the following format:
|
||||
// $file = array(
|
||||
// 'Login History' => array('/index.php','menuaction=admin.uiaccess_history.list')
|
||||
// );
|
||||
// This allows extra data to be sent along
|
||||
function display_section($_menuData, $_account_id)
|
||||
{
|
||||
$i=0;
|
||||
|
||||
// reset the value of all_rows
|
||||
$this->t->set_var('all_rows','');
|
||||
|
||||
while(list($key,$value) = each($_menuData))
|
||||
{
|
||||
if (!empty($value['extradata']))
|
||||
{
|
||||
$link = egw::link($value['url'],'account_id=' . $_account_id . '&' . $value['extradata']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$link = egw::link($value['url'],'account_id=' . get_var('account_id',array('GET','POST')));
|
||||
}
|
||||
$this->section_item($link,lang($value['description']),($i%2) ? "row_on": "row_off",$value['options']);
|
||||
$i++;
|
||||
}
|
||||
|
||||
if(strpos($_menuData[0]['extradata'],'user'))
|
||||
{
|
||||
$destination = 'users';
|
||||
}
|
||||
else
|
||||
{
|
||||
$destination = 'groups';
|
||||
}
|
||||
$this->t->set_var('link_done',$GLOBALS['egw']->link('/index.php','menuaction=admin.uiaccounts.list_'.$destination));
|
||||
$this->t->set_var('lang_done',lang('Back'));
|
||||
|
||||
$this->t->set_var('row_on',$this->rowColor[0]);
|
||||
|
||||
$this->t->parse('out','menu_links');
|
||||
|
||||
return $this->t->get('out','menu_links');
|
||||
}
|
||||
|
||||
// create the html code for the menu
|
||||
function createHTMLCode($_hookname, $_account_id=null)
|
||||
{
|
||||
$hook = array('location' => $_hookname);
|
||||
if (!$_account_id) $_account_id = get_var('account_id',array('GET','POST'));
|
||||
if ($_account_id) $hook['account_id'] = $_account_id;
|
||||
|
||||
switch ($_hookname)
|
||||
{
|
||||
case 'edit_user':
|
||||
$GLOBALS['menuData'][] = array(
|
||||
'description' => 'User Data',
|
||||
'url' => '/index.php',
|
||||
'extradata' => 'menuaction=admin.uiaccounts.edit_user'
|
||||
);
|
||||
break;
|
||||
case 'view_user':
|
||||
$GLOBALS['menuData'][] = array(
|
||||
'description' => 'User Data',
|
||||
'url' => '/index.php',
|
||||
'extradata' => 'menuaction=admin.uiaccounts.view_user'
|
||||
);
|
||||
break;
|
||||
case 'edit_group':
|
||||
$GLOBALS['menuData'][] = array(
|
||||
'description' => 'Edit Group',
|
||||
'url' => '/index.php',
|
||||
'extradata' => 'menuaction=admin.uiaccounts.edit_group'
|
||||
);
|
||||
break;
|
||||
case 'group_manager':
|
||||
$GLOBALS['menuData'][] = array(
|
||||
'description' => 'Group Manager',
|
||||
'url' => '/index.php',
|
||||
'extradata' => 'menuaction=admin.uiaccounts.group_manager'
|
||||
);
|
||||
break;
|
||||
}
|
||||
//_debug_array($hook);
|
||||
$GLOBALS['egw']->hooks->process($hook);
|
||||
if (count($GLOBALS['menuData']) >= 1)
|
||||
{
|
||||
$result = $this->display_section($GLOBALS['menuData'], $_account_id);
|
||||
//clear $menuData
|
||||
$GLOBALS['menuData'] = '';
|
||||
return $result;
|
||||
}
|
||||
else
|
||||
{
|
||||
// clear $menuData
|
||||
$GLOBALS['menuData'] = '';
|
||||
return '';
|
||||
}
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
<?php
|
||||
$GLOBALS['pref']->change('common','maxmatchs','15');
|
||||
$GLOBALS['pref']->change('common','theme','default');
|
||||
$GLOBALS['pref']->change('common','tz_offset',0);
|
||||
$GLOBALS['pref']->change('common','dateformat','m/d/Y');
|
||||
$GLOBALS['pref']->change('common','timeformat',12);
|
||||
$GLOBALS['pref']->change('common','lang','en');
|
||||
?>
|
@ -33,7 +33,6 @@ $setup_info['admin']['description'] = 'EGroupware administration application';
|
||||
/* The hooks this app includes, needed for hooks registration */
|
||||
$setup_info['admin']['hooks'] = array(
|
||||
'acl_manager',
|
||||
'add_def_pref',
|
||||
'after_navbar',
|
||||
'config_validate',
|
||||
'deleteaccount',
|
||||
|
@ -1,151 +0,0 @@
|
||||
<!-- BEGIN form -->
|
||||
{error_messages}
|
||||
<script>
|
||||
var email_set=0;
|
||||
function check_account_email(id)
|
||||
{
|
||||
account = document.getElementById('account').value;
|
||||
firstname = document.getElementById('firstname').value;
|
||||
lastname = document.getElementById('lastname').value;
|
||||
email = document.getElementById('email').value;
|
||||
|
||||
if (!email || email_set || id == 'account')
|
||||
{
|
||||
xajax_doXMLHTTP('admin.uiaccounts.ajax_check_account_email',firstname,lastname,account,{account_id},email_set ? '' : email,id);
|
||||
email_set = !email || email_set;
|
||||
}
|
||||
}
|
||||
function check_password(id)
|
||||
{
|
||||
password = document.getElementById('password').value;
|
||||
password2 = document.getElementById('password2').value;
|
||||
|
||||
if (password && (password2 || id == 'password2') && password != password2)
|
||||
{
|
||||
alert('{lang_passwds_unequal}');
|
||||
document.getElementById('password2').value = '';
|
||||
document.getElementById('password').select();
|
||||
document.getElementById('password').focus();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
</script>
|
||||
<form method="POST" action="{form_action}">
|
||||
<div align="center">
|
||||
<table border="0" width="95%">
|
||||
<tr>
|
||||
<td valign="top">
|
||||
{rows}
|
||||
</td>
|
||||
<td valign="top">
|
||||
|
||||
<table border=0 width=100%>
|
||||
<tr class="th">
|
||||
<td colspan="4"><b>{lang_action}</b></td>
|
||||
</tr>
|
||||
|
||||
<tr class="row_on">
|
||||
<td width="25%">{lang_loginid}</td>
|
||||
<td width="25%">{account_lid} </td>
|
||||
|
||||
<td width="25%">{lang_account_active}:</td>
|
||||
<td width="25%">{account_status}</td>
|
||||
</tr>
|
||||
|
||||
<tr class="row_off">
|
||||
<td>{lang_firstname}</td>
|
||||
<td>{account_firstname} </td>
|
||||
<td>{lang_lastname}</td>
|
||||
<td>{account_lastname} </td>
|
||||
</tr>
|
||||
|
||||
{password_fields}
|
||||
<!-- BEGIN ldap_extra -->
|
||||
<tr class="row_off">
|
||||
<td>{lang_homedir}</td>
|
||||
<td>{homedirectory} </td>
|
||||
<td>{lang_shell}</td>
|
||||
<td>{loginshell} </td>
|
||||
</tr>
|
||||
<!-- END ldap_extra -->
|
||||
<tr class="row_on">
|
||||
<td>{lang_mustchangepassword}</td>
|
||||
<td>{mustchangepassword}</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr class="row_off">
|
||||
<td>{lang_changepassword}</td>
|
||||
<td>{changepassword}</td>
|
||||
<td>{lang_anonymous}</td>
|
||||
<td>{anonymous}</td>
|
||||
</tr>
|
||||
|
||||
<tr class="row_on">
|
||||
<td>{lang_expires}</td>
|
||||
<td>{input_expires} <label style="white-space: nowrap;">{never_expires} {lang_never}</label></td>
|
||||
<td>{lang_email}</td>
|
||||
<td>{account_email}</td>
|
||||
</tr>
|
||||
|
||||
<tr class="row_off">
|
||||
<td>{lang_groups}</td>
|
||||
<td>{groups_select} </td>
|
||||
<td>{lang_primary_group}</td>
|
||||
<td>{primary_group_select} </td>
|
||||
</tr>
|
||||
|
||||
<tr class="th">
|
||||
<td>{lang_app}</td>
|
||||
<td>{lang_acl}</td>
|
||||
<td>{lang_app}</td>
|
||||
<td>{lang_acl}</td>
|
||||
</tr>
|
||||
|
||||
{permissions_list}
|
||||
|
||||
{form_buttons}
|
||||
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</form>
|
||||
<!-- END form -->
|
||||
|
||||
<!-- BEGIN form_passwordinfo -->
|
||||
<tr class="row_on">
|
||||
<td>{lang_password}</td>
|
||||
<td><input id="password" onchange="check_password(this.id);" type="password" name="account_passwd" value="{account_passwd}" autocomplete="off"></td>
|
||||
<td>{lang_reenter_password}</td>
|
||||
<td><input id="password2" onblur="check_password(this.id);" type="password" name="account_passwd_2" value="{account_passwd_2}" autocomplete="off"></td>
|
||||
</tr>
|
||||
<!-- END form_passwordinfo -->
|
||||
|
||||
<!-- BEGIN form_buttons_ -->
|
||||
<tr class="row_off">
|
||||
<td colspan="4" align="right">
|
||||
<input type="submit" name="submit" value="{lang_button}">
|
||||
<input type="submit" name="cancel" value="{lang_cancel}" onclick="{cancel_action}; return false;">
|
||||
</td>
|
||||
</tr>
|
||||
<!-- END form_buttons_ -->
|
||||
|
||||
<!-- BEGIN form_logininfo -->
|
||||
<tr class="row_on">
|
||||
<td>{lang_lastlogin}</td>
|
||||
<td>{account_lastlogin}</td>
|
||||
|
||||
<td>{lang_lastloginfrom}</td>
|
||||
<td>{account_lastloginfrom}</td>
|
||||
</tr>
|
||||
<!-- END form_logininfo -->
|
||||
|
||||
<!-- BEGIN link_row -->
|
||||
<tr bgcolor="{tr_color}">
|
||||
<td> <a href="{row_link}">{row_text}</a></td>
|
||||
</tr>
|
||||
<!-- END link_row -->
|
@ -1,80 +0,0 @@
|
||||
<!-- $Id$ -->
|
||||
<div align="center">
|
||||
<table border="0" width="80%">
|
||||
<tr>
|
||||
<td align="right" colspan="5">
|
||||
<form method="POST" action="{accounts_url}">
|
||||
<table width="100%"><tr>
|
||||
<td>{lang_group} {group}</td>
|
||||
<td align="right">
|
||||
{query_type}
|
||||
<input type="text" name="query" value="{query}">
|
||||
<input type="submit" name="search" value="{lang_search}">
|
||||
</td>
|
||||
</tr></table>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="5">
|
||||
<table width="100%"><tr>
|
||||
<!-- BEGIN letter_search -->
|
||||
<td class="{class}" onclick="location.href='{link}';">{letter}</td>
|
||||
<!-- END letter_search -->
|
||||
</tr></table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
{left_next_matchs}
|
||||
<td align="center">{lang_showing}</td>
|
||||
{right_next_matchs}
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div align="center">
|
||||
<table border="0" width="80%" class="egwGridView_grid">
|
||||
<tr class="th">
|
||||
<td width="20%">{lang_loginid}</td>
|
||||
<td width="20%">{lang_lastname}</td>
|
||||
<td width="20%">{lang_firstname}</td>
|
||||
<td>{lang_email}</td>
|
||||
<td>{lang_account_active}</td>
|
||||
<td class="narrow_column">{lang_edit}</td>
|
||||
<td class="narrow_column">{lang_delete}</td>
|
||||
<td class="narrow_column">{lang_view}</td>
|
||||
</tr>
|
||||
|
||||
<!-- BEGIN row -->
|
||||
<tr class="{class}">
|
||||
<td>{account_lid}</td>
|
||||
<td>{account_lastname}</td>
|
||||
<td>{account_firstname}</td>
|
||||
<td>{account_email}</td>
|
||||
<td>{account_status}</td>
|
||||
<td>{row_edit}</td>
|
||||
<td>{row_delete}</td>
|
||||
<td>{row_view}</td>
|
||||
</tr>
|
||||
<!-- END row -->
|
||||
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div align="center">
|
||||
<table border="0" width="80%">
|
||||
<tr>
|
||||
<td align="left">
|
||||
<form method="POST" action="{new_action}">
|
||||
{input_add}
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- BEGIN row_empty -->
|
||||
<tr>
|
||||
<td colspan="5" align="center">{message}</td>
|
||||
</tr>
|
||||
<!-- END row_empty -->
|
@ -1,57 +0,0 @@
|
||||
<!-- BEGIN list -->
|
||||
<b>{lang_header}</b>
|
||||
<hr><p>
|
||||
|
||||
<div align="center">
|
||||
<table border="0" width="70%">
|
||||
<tr>
|
||||
<td align="left">{left_next_matchs}</td>
|
||||
<td width="95%" align="center"> </td>
|
||||
<td align="right">{right_next_matchs}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div align="center">
|
||||
<table border="0" width="70%">
|
||||
<tr bgcolor="{th_bg}">
|
||||
<td>{lang_loginid}</td>
|
||||
<td>{lang_lastname}</td>
|
||||
<td>{lang_firstname}</td>
|
||||
<td>{lang_access}</td>
|
||||
</tr>
|
||||
|
||||
{rows}
|
||||
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<form method="POST" action="{actionurl}">
|
||||
<div align="center">
|
||||
<table border="0" width="70%">
|
||||
<tr>
|
||||
<td align="right">
|
||||
<form method="POST" action="{accounts_url}">
|
||||
<input name="query" value="{lang_search}">
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- END list -->
|
||||
|
||||
<!-- BEGIN row -->
|
||||
<tr bgcolor="{tr_color}">
|
||||
<td>{row_loginid}</td>
|
||||
<td>{row_lastname}</td>
|
||||
<td>{row_firstname}</td>
|
||||
<td class="narrow_column">{row_access}</td>
|
||||
</tr>
|
||||
<!-- END row -->
|
||||
|
||||
<!-- BEGIN row_empty -->
|
||||
<tr>
|
||||
<td colspan="5" align="center">{message}</td>
|
||||
</tr>
|
||||
<!-- END row_empty -->
|
@ -1,19 +0,0 @@
|
||||
<!-- BEGIN form -->
|
||||
<form method="POST" action="{form_action}">
|
||||
<input type="hidden" name="account_id" value="{account_id}">
|
||||
<center>
|
||||
<table border="0" width="85%">
|
||||
<tr>
|
||||
<td align="center">{lang_new_owner}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">{new_owner_select}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><input type="submit" name="cancel" value="{cancel}"> <input type="submit" name="delete_account" value="{delete}"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
</form>
|
||||
<!-- END form -->
|
||||
|
@ -1,35 +0,0 @@
|
||||
<!-- $Id$ -->
|
||||
|
||||
<!-- BEGIN form -->
|
||||
<br>
|
||||
<form method="POST" action="{action_url}">
|
||||
{hidden_vars}
|
||||
<table border="0" with="65%" cellpadding="2" cellspacing="2" align="center">
|
||||
<tr>
|
||||
<td align="center" colspan="2">
|
||||
<p><b>{cat_name}</b></p>
|
||||
{messages}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" colspan="2">{lang_subs} {subs}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<!-- BEGIN delete -->
|
||||
<td align="center">
|
||||
<input type="submit" name="confirm" value="{lang_yes}">
|
||||
</td>
|
||||
<td align="center">
|
||||
<input type="submit" name="cancel" value="{lang_no}">
|
||||
</td>
|
||||
<!-- END delete -->
|
||||
<!-- BEGIN done -->
|
||||
<td align="center">
|
||||
<input type="submit" name="cancel" value="{lang_ok}">
|
||||
</td>
|
||||
<!-- END done -->
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
<!-- END form -->
|
@ -1,20 +0,0 @@
|
||||
<!-- BEGIN form -->
|
||||
<p>
|
||||
<center>
|
||||
<form action="{form_action}" method="POST">
|
||||
{hidden_vars}
|
||||
<table align="center" border="0" width="55%" cols="2">
|
||||
{messages}
|
||||
<tr>
|
||||
<td width="50%" align="center">
|
||||
<input type="submit" name="no" value="{no}">
|
||||
</td>
|
||||
<td width="50%" align="center">
|
||||
<input type="submit" name="yes" value="{yes}">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</center>
|
||||
<!-- END form -->
|
||||
|
@ -1,6 +0,0 @@
|
||||
<!-- $Id$ -->
|
||||
<!-- BEGIN form_button -->
|
||||
<form action="{action_url_button}" method="post" name="{action_text_button}form">
|
||||
{action_extra_field} <input type="submit" value="{action_text_button}" {action_confirm_button}>
|
||||
</form>
|
||||
<!-- END form_button -->
|
@ -1,76 +0,0 @@
|
||||
{error}
|
||||
<table border="0" width="60%" align="center">
|
||||
<tr>
|
||||
<td valign="top">
|
||||
{rows}
|
||||
</td>
|
||||
<td valign="top">
|
||||
<table border=0 width=100%>
|
||||
<form action="{form_action}" method="POST" name="app_form">
|
||||
{hidden_vars}
|
||||
<tr>
|
||||
<td>{lang_group_name}</td>
|
||||
<td><input name="account_name" value="{group_name_value}" style="width: 300px;"></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{lang_include_user}</td>
|
||||
|
||||
<td>
|
||||
{accounts}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{lang_email}</td>
|
||||
<td>{email}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{lang_file_space}</td>
|
||||
<td>
|
||||
{account_file_space}{account_file_space_select}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{lang_permissions}</td>
|
||||
<td><table width="100%" border="0" cols="6">
|
||||
{permissions_list}
|
||||
</table></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2" align="center">
|
||||
<input type="submit" name="edit" value="{lang_submit_button}">
|
||||
</td>
|
||||
</tr>
|
||||
</form>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- BEGIN select -->
|
||||
|
||||
<select name="account_user[]" multiple size="{select_size}">
|
||||
{user_list}
|
||||
</select>
|
||||
|
||||
<!-- END select -->
|
||||
|
||||
<!-- BEGIN popwin -->
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<select name="account_user[]" multiple size="{select_size}">{user_list}</select>
|
||||
</td>
|
||||
<td valign="top">
|
||||
<input type="button" value="{lang_open_popup}" onClick="accounts_popup()">
|
||||
<input type="hidden" name="accountid" value="{accountid}">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- END popwin -->
|
@ -1,37 +0,0 @@
|
||||
<!-- BEGIN form -->
|
||||
{error_messages}
|
||||
|
||||
<center>
|
||||
<table border="0" width="70%">
|
||||
<tr>
|
||||
<td valign="top">
|
||||
{rows}
|
||||
</td>
|
||||
<td valign="top">
|
||||
|
||||
<table border="0" width="100%">
|
||||
<tr bgcolor="{th_bg}">
|
||||
<td><b>{lang_group}:</b></td>
|
||||
<td><b>{group_name}</b></td>
|
||||
</tr>
|
||||
|
||||
<form action="{form_action}" method="post">
|
||||
{hidden}
|
||||
<tr bgcolor="{tr_color1}">
|
||||
<td>{lang_select_managers}</td>
|
||||
<td>{group_members}</td>
|
||||
</tr>
|
||||
{form_buttons}
|
||||
</form>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
<!-- END form -->
|
||||
|
||||
<!-- BEGIN link_row -->
|
||||
<tr bgcolor="{tr_color}">
|
||||
<td> <a href="{row_link}">{row_text}</a></td>
|
||||
</tr>
|
||||
<!-- END link_row -->
|
@ -1,71 +0,0 @@
|
||||
<!-- BEGIN list -->
|
||||
<p>
|
||||
<table border="0" width="45%" align="center">
|
||||
<tr>
|
||||
<td colspan="5">
|
||||
<table width="100%"><tr>
|
||||
<!-- BEGIN letter_search -->
|
||||
<td class="{class}" onclick="location.href='{link}';">{letter}</td>
|
||||
<!-- END letter_search -->
|
||||
</tr></table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
{left_next_matchs}
|
||||
<td align="center">{lang_groups}</td>
|
||||
{right_next_matchs}
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table border="0" width="45%" align="center" class="egwGridView_grid">
|
||||
<tr class="th">
|
||||
<td>{sort_name}</td>
|
||||
<td>{header_edit}</td>
|
||||
<td>{header_delete}</td>
|
||||
</tr>
|
||||
|
||||
{rows}
|
||||
|
||||
</table>
|
||||
|
||||
<table border="0" width="45%" align="center">
|
||||
<tr>
|
||||
<td align="left">
|
||||
<form method="POST" action="{new_action}">
|
||||
{input_add}
|
||||
</form>
|
||||
</td>
|
||||
<td align="right">
|
||||
<!--
|
||||
<form method="POST" action="{search_action}">
|
||||
{input_search}
|
||||
</form>
|
||||
-->
|
||||
<form method="POST" action="{accounts_url}">
|
||||
<table width="100%"><tr>
|
||||
<td>{lang_group} {group}</td>
|
||||
<td align="right">
|
||||
{query_type}
|
||||
<input type="text" name="query" value="{query}">
|
||||
<input type="submit" name="search" value="{lang_search}">
|
||||
</td>
|
||||
</tr></table>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!-- END list -->
|
||||
|
||||
<!-- BEGIN row -->
|
||||
<tr class="{class}">
|
||||
<td>{group_name}</td>
|
||||
<td class="narrow_column">{edit_link}</td>
|
||||
<td class="narrow_column">{delete_link}</td>
|
||||
</tr>
|
||||
<!-- END row -->
|
||||
|
||||
<!-- BEGIN row_empty -->
|
||||
<tr>
|
||||
<td colspan="5" align="center">{message}</td>
|
||||
</tr>
|
||||
<!-- END row_empty -->
|
@ -1,63 +0,0 @@
|
||||
<!-- BEGIN list -->
|
||||
<style>
|
||||
<!--
|
||||
#prefIndex {
|
||||
}
|
||||
#divGenTime {
|
||||
clear: left;
|
||||
}
|
||||
.prefAppBox {
|
||||
width: 225px;
|
||||
min-height: 12em;
|
||||
border: 2px ridge gray;
|
||||
border-radius: 10px;
|
||||
margin: 5px;
|
||||
padding-left: 5px;
|
||||
float: left;
|
||||
box-shadow:8px 8px 8px #666;
|
||||
}
|
||||
|
||||
|
||||
.prefAppBox h3 {
|
||||
height: 32px;
|
||||
padding-left: 50px;
|
||||
padding-top: 10px;
|
||||
background-image: url(../phpgwapi/templates/default/images/nonav.png);
|
||||
background-repeat: no-repeat;
|
||||
background-position: left;
|
||||
background-size: 32px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.prefAppBox ul {
|
||||
margin: 0;
|
||||
padding-left: 20px;
|
||||
padding-top: 0;
|
||||
}
|
||||
-->
|
||||
</style>
|
||||
<div id="prefIndex">
|
||||
{rows}
|
||||
</div>
|
||||
<!-- END list -->
|
||||
|
||||
<!-- BEGIN app_row -->
|
||||
<div class="prefAppBox">
|
||||
<h3 style="background-image: url({app_icon})">{app_name}</h3>
|
||||
<ul>
|
||||
<!-- END app_row -->
|
||||
|
||||
<!-- BEGIN app_row_noicon -->
|
||||
<div class="prefAppBox">
|
||||
<h3>{app_name}</h3>
|
||||
<ul>
|
||||
<!-- END app_row_noicon -->
|
||||
|
||||
<!-- BEGIN link_row -->
|
||||
<li><a href="{pref_link}">{pref_text}</a></li>
|
||||
<!-- END link_row -->
|
||||
|
||||
<!-- BEGIN spacer_row -->
|
||||
</ul>
|
||||
</div>
|
||||
<!-- END spacer_row -->
|
@ -1,11 +0,0 @@
|
||||
<br>
|
||||
<table border="0" with="65%" align="center">
|
||||
<tr colspan="2">
|
||||
<td align="center">{lang_message}<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{link_no}</td>
|
||||
<td>{link_yes}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
@ -1,19 +0,0 @@
|
||||
<!-- BEGIN menu_links -->
|
||||
<table border="0" width="100%">
|
||||
<tr class="th">
|
||||
<td> </td>
|
||||
</tr>
|
||||
{all_rows}
|
||||
<tr>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="row_on"> <a href="{link_done}">{lang_done}</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<!-- END menu_links -->
|
||||
<!-- BEGIN link_row -->
|
||||
<tr class="{class}">
|
||||
<td> <a href="{row_link}" {row_options}>{row_text}</a></td>
|
||||
</tr>
|
||||
<!-- END link_row -->
|
@ -1,5 +0,0 @@
|
||||
<!-- BEGIN message_row -->
|
||||
<tr>
|
||||
<td colspan="2" align="center">{message_display}<td>
|
||||
</tr>
|
||||
<!-- END message_row -->
|
@ -1,68 +0,0 @@
|
||||
<!-- $Id$ -->
|
||||
<!-- BEGIN nntp_header -->
|
||||
<script>
|
||||
function check_all()
|
||||
{
|
||||
for (i=0; i<document.allow.elements.length; i++) {
|
||||
if (document.allow.elements[i].type == "checkbox") {
|
||||
if (document.allow.elements[i].checked) {
|
||||
document.allow.elements[i].checked = false;
|
||||
} else {
|
||||
document.allow.elements[i].checked = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<p><center>{title}<br>
|
||||
<table border="0" width="70%">
|
||||
<tr>
|
||||
<td width="40%">
|
||||
<div align="center">
|
||||
<form method="POST" action="{action_url}">
|
||||
{common_hidden_vars}
|
||||
<input type="text" name="query" value="{search_value}">
|
||||
<input type="submit" name="search" value="{search}">
|
||||
<input type="submit" name="next" value="{next}">
|
||||
</form>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>{nml}</tr>
|
||||
<tr>{nmr}</tr>
|
||||
</table>
|
||||
<form name="allow" action="{action_url}" method="POST">
|
||||
{common_hidden_vars}
|
||||
<table border="0" width="70%">
|
||||
<tr bgcolor="{th_bg}">
|
||||
<td align="center"><font size="2" face="{th_font}">{sort_con}</font></td>
|
||||
<td><font size="2" face="{th_font}">{sort_group}</font></td>
|
||||
<td align="center"><font size="2" face="{th_font}">{sort_active}</font></td>
|
||||
</tr>
|
||||
<!-- END nntp_header -->
|
||||
|
||||
{output}
|
||||
|
||||
<!-- BEGIN nntp_list -->
|
||||
|
||||
<tr bgcolor="{tr_color}">
|
||||
<td align="center"><font face="{th_font}">{con}</font></td>
|
||||
<td><font face="{th_font}">{group}</font></td>
|
||||
<td align="center"><font face="{th_font}">{active}</font></td>
|
||||
</tr>
|
||||
|
||||
<!-- END nntp_list -->
|
||||
|
||||
<!-- BEGIN nntp_footer -->
|
||||
|
||||
<tr bgcolor="{th_bg}">
|
||||
<td> </td>
|
||||
<td align="center"><input type="submit" name="submit" value="{lang_update}"></td>
|
||||
<td align=center>
|
||||
<a href="javascript:check_all()"><img src="{checkmark}" border="0" height="16" width="21"></a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</center>
|
||||
<!-- END nntp_footer -->
|
Loading…
Reference in New Issue
Block a user