mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-29 11:23:54 +01:00
WIP allow to document admin actions, if EPL policy app is installed
This commit is contained in:
parent
024c8ce7fb
commit
250b56589c
@ -148,6 +148,7 @@ class admin_account
|
|||||||
'account_primary_group',
|
'account_primary_group',
|
||||||
'account_expires',
|
'account_expires',
|
||||||
'homedirectory', 'loginshell',
|
'homedirectory', 'loginshell',
|
||||||
|
'requested', 'requested_email', 'comment', // admin_cmd documentation (EPL)
|
||||||
) as $c_name => $a_name)
|
) as $c_name => $a_name)
|
||||||
{
|
{
|
||||||
if (is_int($c_name)) $c_name = $a_name;
|
if (is_int($c_name)) $c_name = $a_name;
|
||||||
|
@ -13,7 +13,36 @@ use EGroupware\Api;
|
|||||||
use EGroupware\Api\Acl;
|
use EGroupware\Api\Acl;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* admin comand base class
|
* Admin comand base class
|
||||||
|
*
|
||||||
|
* Admin commands should be used to implement and log (!) all actions admins carry
|
||||||
|
* out using the administrative rights (regular users cant do).
|
||||||
|
*
|
||||||
|
* They are stored in DB table egw_admin_queue which builds a persitent log
|
||||||
|
* of administrative actions cared out on an EGroupware installation.
|
||||||
|
* Commands can be marked deleted (canceled for scheduled commands),
|
||||||
|
* but they are never deleted for the table to implement a persistent log!
|
||||||
|
*
|
||||||
|
* All administrative actions are encapsulated in classes derived from this
|
||||||
|
* abstract base class implementing an exec method to carry out the command.
|
||||||
|
*
|
||||||
|
* @property-read int $created Creation timestamp
|
||||||
|
* @property-read int $creator Creator user-id
|
||||||
|
* @property-read string $creator_email rfc822 address ("Name <email@domain.com>") of creator
|
||||||
|
* @property-read int $modified Modification timestamp
|
||||||
|
* @property-read int|NULL $scheduled timestamp if command is not run immediatly,
|
||||||
|
* but scheduled to run automatic by the system at a later point in time
|
||||||
|
* @property-read int $modifier Modifier user-id
|
||||||
|
* @property-read string $modifier_email rfc822 address ("Name <email@domain.com>") of modifier
|
||||||
|
* @property int|NULL $requested User who requested the change (not current user!)
|
||||||
|
* @property string|NULL $requested_email rfc822 address ("Name <email@domain.com>") of requested
|
||||||
|
* @property string|NULL $comment comment, eg. reasoning why change was requested
|
||||||
|
* @property-read int|NULL $errno Numerical error-code or NULL on success
|
||||||
|
* @property-read string|NULL $error Error message or NULL on success
|
||||||
|
* @property-read int $id $id of command/row in egw_admin_queue table
|
||||||
|
* @property-read string $uid uuid of command (necessary if command is send to a remote system to execute)
|
||||||
|
* @property int|NULL $remote_id id of remote system, if command is not meant to run on local system
|
||||||
|
* foreign key into egw_admin_remote (table of remote systems administrated by this one)
|
||||||
*/
|
*/
|
||||||
abstract class admin_cmd
|
abstract class admin_cmd
|
||||||
{
|
{
|
||||||
@ -328,6 +357,12 @@ abstract class admin_cmd
|
|||||||
$vars['data'] = in_array($this->status, self::$require_pw_stati) ?
|
$vars['data'] = in_array($this->status, self::$require_pw_stati) ?
|
||||||
json_encode($this->data) : self::mask_passwords($this->data);
|
json_encode($this->data) : self::mask_passwords($this->data);
|
||||||
|
|
||||||
|
// skip EGroupware\\ prefix in new class-names, as value gets too long for column otherwise
|
||||||
|
if (strpos($this->type, 'EGroupware\\') === 0)
|
||||||
|
{
|
||||||
|
$vars['type'] = substr($this->type, 11);
|
||||||
|
}
|
||||||
|
|
||||||
admin_cmd::$sql->init($vars);
|
admin_cmd::$sql->init($vars);
|
||||||
if (admin_cmd::$sql->save() != 0)
|
if (admin_cmd::$sql->save() != 0)
|
||||||
{
|
{
|
||||||
|
@ -191,6 +191,29 @@ egw.extend('user', egw.MODULE_GLOBAL, function()
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set specified account-data of selected user in an other widget
|
||||||
|
*
|
||||||
|
* Used eg. in template as: onchange="egw.set_account_data(widget, 'target', 'account_email')"
|
||||||
|
*
|
||||||
|
* @param {et2_widget} _src_widget widget to select the user
|
||||||
|
* @param {string} _target_name name of widget to set the data
|
||||||
|
* @param {string} _field name of data to set eg. "account_email"
|
||||||
|
*/
|
||||||
|
set_account_data: function(_src_widget, _target_name, _field)
|
||||||
|
{
|
||||||
|
var user = _src_widget.get_value();
|
||||||
|
var target = _src_widget.getRoot().getWidgetById(_target_name);
|
||||||
|
|
||||||
|
if (user && target)
|
||||||
|
{
|
||||||
|
egw.accountData(user, _field, false, function(_data)
|
||||||
|
{
|
||||||
|
target.set_value(_data[user]);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Invalidate client-side account cache
|
* Invalidate client-side account cache
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user