mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-22 06:30:59 +01:00
fix for bug reported by Patrick Fraley: status changes of responsible user do not get save, if that user has no write grant
This commit is contained in:
parent
b24f796eb2
commit
517865a274
@ -281,7 +281,18 @@
|
||||
|
||||
function write($values,$check_defaults=True,$touch_modified=True)
|
||||
{
|
||||
if ($values['info_id'] && !$this->check_access($values['info_id'],PHPGW_ACL_EDIT) ||
|
||||
foreach($values as $key => $val)
|
||||
{
|
||||
if ($key[0] != '#' && substr($key,0,5) != 'info_')
|
||||
{
|
||||
$values['info_'.$key] = $val;
|
||||
unset($values[$key]);
|
||||
}
|
||||
}
|
||||
$status_only = $values['info_id'] && $values['info_responsible'] == $this->user &&
|
||||
!$this->check_access($values['info_id'],PHPGW_ACL_EDIT); // responsible has implicit right to change status
|
||||
|
||||
if ($values['info_id'] && !$this->check_access($values['info_id'],PHPGW_ACL_EDIT) && !$status_only ||
|
||||
!$values['info_id'] && $values['info_id_parent'] && !$this->check_access($values['info_id_parent'],PHPGW_ACL_ADD))
|
||||
{
|
||||
if ($this->xmlrpc)
|
||||
@ -294,13 +305,20 @@
|
||||
{
|
||||
$values = $this->xmlrpc2data($values);
|
||||
}
|
||||
foreach($values as $key => $val)
|
||||
if ($status_only) // make sure only status gets writen
|
||||
{
|
||||
if ($key[0] != '#' && substr($key,0,5) != 'info_')
|
||||
$set_enddate = !$values['info_enddate'] && // set enddate of finished job, only if its not already set
|
||||
($values['info_status'] == 'done' || $values['info_status'] == 'billed');
|
||||
|
||||
$values = array(
|
||||
'info_id' => $values['info_id'],
|
||||
'info_status' => $values['info_status'],
|
||||
);
|
||||
if ($set_enddate)
|
||||
{
|
||||
$values['info_'.$key] = $val;
|
||||
unset($values[$key]);
|
||||
$values['info_enddate'] = time();
|
||||
}
|
||||
$check_defaults = False;
|
||||
}
|
||||
if ($check_defaults)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user