mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-22 06:30:59 +01:00
* Addressbook: visualize own account ACL for non-admin users by making all other fields readonly
fixes #9669 - Eigenes Profil ändern
This commit is contained in:
parent
be5dd22a48
commit
2903f1138e
@ -1967,13 +1967,13 @@ window.egw_LAB.wait(function() {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// type change
|
$view = !$this->check_perms(EGW_ACL_EDIT, $content);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$content = array();
|
$content = array();
|
||||||
$contact_id = $_GET['contact_id'] ? $_GET['contact_id'] : ((int)$_GET['account_id'] ? 'account:'.(int)$_GET['account_id'] : 0);
|
$contact_id = $_GET['contact_id'] ? $_GET['contact_id'] : ((int)$_GET['account_id'] ? 'account:'.(int)$_GET['account_id'] : 0);
|
||||||
$view = $_GET['view'];
|
$view = (boolean)$_GET['view'];
|
||||||
// new contact --> set some defaults
|
// new contact --> set some defaults
|
||||||
if ($contact_id && is_array($content = $this->read($contact_id)))
|
if ($contact_id && is_array($content = $this->read($contact_id)))
|
||||||
{
|
{
|
||||||
@ -2174,6 +2174,11 @@ window.egw_LAB.wait(function() {
|
|||||||
$readonlys['button[delete]'] = !$content['owner'] || !$this->check_perms(EGW_ACL_DELETE,$content);
|
$readonlys['button[delete]'] = !$content['owner'] || !$this->check_perms(EGW_ACL_DELETE,$content);
|
||||||
$readonlys['button[copy]'] = $readonlys['button[edit]'] = $readonlys['button[vcard]'] = true;
|
$readonlys['button[copy]'] = $readonlys['button[edit]'] = $readonlys['button[vcard]'] = true;
|
||||||
$readonlys['button[save]'] = $readonlys['button[apply]'] = $view;
|
$readonlys['button[save]'] = $readonlys['button[apply]'] = $view;
|
||||||
|
if ($view)
|
||||||
|
{
|
||||||
|
$readonlys['__ALL__'] = true;
|
||||||
|
$readonlys['button[cancel]'] = false;
|
||||||
|
}
|
||||||
|
|
||||||
$sel_options['fileas_type'] = $this->fileas_options($content);
|
$sel_options['fileas_type'] = $this->fileas_options($content);
|
||||||
$sel_options['adr_one_countrycode']['-custom-'] = lang('Custom');
|
$sel_options['adr_one_countrycode']['-custom-'] = lang('Custom');
|
||||||
@ -2194,7 +2199,18 @@ window.egw_LAB.wait(function() {
|
|||||||
{
|
{
|
||||||
$readonlys[$field] = true;
|
$readonlys[$field] = true;
|
||||||
}
|
}
|
||||||
if ($readonlys['n_fileas']) $readonlys['fileas_type'] = true;
|
// for editing own account, make all fields not allowed by own_account_acl readonly
|
||||||
|
if (!$this->is_admin() && !$content['owner'] && $content['account_id'] == $this->user && $this->own_account_acl && !$view)
|
||||||
|
{
|
||||||
|
$readonlys['__ALL__'] = true;
|
||||||
|
$readonlys['button[cancel]'] = false;
|
||||||
|
|
||||||
|
foreach($this->own_account_acl as $field)
|
||||||
|
{
|
||||||
|
$readonlys[$field] = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (isset($readonlys['n_fileas'])) $readonlys['fileas_type'] = $readonlys['n_fileas'];
|
||||||
// disable not needed tabs
|
// disable not needed tabs
|
||||||
$readonlys['tabs']['cats'] = !($content['cat_tab'] = $this->config['cat_tab']);
|
$readonlys['tabs']['cats'] = !($content['cat_tab'] = $this->config['cat_tab']);
|
||||||
$readonlys['tabs']['custom'] = !$this->customfields || $this->get_backend($content['id'],$content['owner']) == $this->so_accounts;
|
$readonlys['tabs']['custom'] = !$this->customfields || $this->get_backend($content['id'],$content['owner']) == $this->so_accounts;
|
||||||
|
Loading…
Reference in New Issue
Block a user