mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-03-13 15:08:33 +01:00
freebussy ACL added into calender. Now if you only give that right, you will see, that the time is blocked without a read right of user or group. But will see everything as private
This commit is contained in:
parent
8cd899c36c
commit
78ce775f17
@ -24,6 +24,7 @@ define('WEEK_s',7*DAY_s);
|
||||
* Used be the addressbook.
|
||||
*/
|
||||
define('EGW_ACL_READ_FOR_PARTICIPANTS',EGW_ACL_CUSTOM_1);
|
||||
define('EGW_ACL_FREEBUSY',EGW_ACL_CUSTOM_2);
|
||||
|
||||
/**
|
||||
* Required (!) include, as we use the MCAL_* constants, BEFORE instanciating (and therefore autoloading) the class
|
||||
@ -303,7 +304,7 @@ class calendar_bo
|
||||
$users = array();
|
||||
foreach($params['users'] as $user)
|
||||
{
|
||||
if ($params['ignore_acl'] || $this->check_perms(EGW_ACL_READ|EGW_ACL_READ_FOR_PARTICIPANTS,0,$user))
|
||||
if ($params['ignore_acl'] || $this->check_perms(EGW_ACL_READ|EGW_ACL_READ_FOR_PARTICIPANTS|EGW_ACL_FREEBUSY,0,$user))
|
||||
{
|
||||
if ($user && !in_array($user,$users)) // already added?
|
||||
{
|
||||
@ -327,7 +328,7 @@ class calendar_bo
|
||||
{
|
||||
// use only members which gave the user a read-grant
|
||||
if (!in_array($member['account_id'],$users) &&
|
||||
($params['ignore_acl'] || $this->check_perms(EGW_ACL_READ,0,$member['account_id'])))
|
||||
($params['ignore_acl'] || $this->check_perms(EGW_ACL_READ|EGW_ACL_FREEBUSY,0,$member['account_id'])))
|
||||
{
|
||||
$users[] = $member['account_id'];
|
||||
}
|
||||
@ -977,7 +978,6 @@ class calendar_bo
|
||||
if ($other && !is_numeric($other))
|
||||
{
|
||||
$resource = $this->resource_info($other);
|
||||
|
||||
return $needed & $resource['rights'];
|
||||
}
|
||||
if (is_int($event) && $event == 0)
|
||||
@ -1003,7 +1003,6 @@ class calendar_bo
|
||||
}
|
||||
$user = $GLOBALS['egw_info']['user']['account_id'];
|
||||
$grants = $this->grants[$owner];
|
||||
|
||||
if (is_array($event) && $needed == EGW_ACL_READ)
|
||||
{
|
||||
// Check if the $user is one of the participants or has a read-grant from one of them
|
||||
@ -1016,7 +1015,7 @@ class calendar_bo
|
||||
if ($uid == $user || $uid < 0 && in_array($user,$GLOBALS['egw']->accounts->members($uid,true)))
|
||||
{
|
||||
// if we are a participant, we have an implicite READ and PRIVAT grant
|
||||
$grants |= EGW_ACL_READ | EGW_ACL_PRIVATE;
|
||||
$grants |= EGW_ACL_READ;
|
||||
break;
|
||||
}
|
||||
elseif ($this->grants[$uid] & EGW_ACL_READ)
|
||||
@ -1038,7 +1037,6 @@ class calendar_bo
|
||||
error_log(__METHOD__." no participants for event:".print_r($event,true));
|
||||
}
|
||||
}
|
||||
|
||||
if ($GLOBALS['egw']->accounts->get_type($owner) == 'g' && $needed == EGW_ACL_ADD)
|
||||
{
|
||||
$access = False; // a group can't be the owner of an event
|
||||
@ -1268,6 +1266,7 @@ class calendar_bo
|
||||
EGW_ACL_EDIT => 'ACL_EDIT',
|
||||
EGW_ACL_DELETE => 'ACL_DELETE',
|
||||
EGW_ACL_PRIVATE => 'ACL_PRIVATE',
|
||||
EGW_ACL_FREEBUSY => 'ACL_FREEBUSY',
|
||||
);
|
||||
for($i = 2; $i < func_num_args(); ++$i)
|
||||
{
|
||||
|
@ -188,13 +188,13 @@ class calendar_ui
|
||||
foreach($GLOBALS['egw']->accounts->member($owner) as $member)
|
||||
{
|
||||
$member = $member['account_id'];
|
||||
if (!$this->bo->check_perms(EGW_ACL_READ|EGW_ACL_READ_FOR_PARTICIPANTS,0,$member))
|
||||
if (!$this->bo->check_perms(EGW_ACL_READ|EGW_ACL_READ_FOR_PARTICIPANTS|EGW_ACL_FREEBUSY,0,$member))
|
||||
{
|
||||
$no_access_group[$member] = $this->bo->participant_name($member);
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif (!$this->bo->check_perms(EGW_ACL_READ|EGW_ACL_READ_FOR_PARTICIPANTS,0,$owner))
|
||||
elseif (!$this->bo->check_perms(EGW_ACL_READ|EGW_ACL_READ_FOR_PARTICIPANTS|EGW_ACL_FREEBUSY,0,$owner))
|
||||
{
|
||||
$no_access[$owner] = $this->bo->participant_name($owner);
|
||||
}
|
||||
|
@ -65,6 +65,7 @@ csv calendar de CSV
|
||||
csv-fieldname calendar de CSV-Feldname
|
||||
csv-filename calendar de CSV-Dateiname
|
||||
custom fields common de Benutzerdefinierte Felder
|
||||
custom_2 common de freebussy
|
||||
daily calendar de Täglich
|
||||
days calendar de Tage
|
||||
days of the week for a weekly repeated event calendar de Wochentage für wöchentlich wiederholten Termin
|
||||
@ -137,6 +138,7 @@ format of event updates calendar de Format der Benachrichtigungen
|
||||
forward half a month calendar de einen halben Monat weiter
|
||||
forward one month calendar de einen Monat weiter
|
||||
four days view calendar de Vier-Tagesansicht
|
||||
freebusy common de Frei/Belegt
|
||||
freebusy: unknow user '%1', wrong password or not availible to not loged in users !!! calendar de Belegtzeiten: Unbekannter Benutzername '%1', falsches Passwort oder nicht verfügbar für nicht angemeldete Benutzer !!!
|
||||
freetime search calendar de Terminsuche
|
||||
fri calendar de Fr
|
||||
|
@ -65,6 +65,7 @@ csv calendar en CSV
|
||||
csv-fieldname calendar en CSV-Fieldname
|
||||
csv-filename calendar en CSV-Filename
|
||||
custom fields common en Custom fields
|
||||
custom_2 common en freebussy
|
||||
daily calendar en Daily
|
||||
days calendar en days
|
||||
days of the week for a weekly repeated event calendar en Days of the week for a weekly repeated event
|
||||
@ -137,6 +138,7 @@ format of event updates calendar en Format of event updates
|
||||
forward half a month calendar en forward half a month
|
||||
forward one month calendar en forward one month
|
||||
four days view calendar en Four days view
|
||||
freebusy common en Free/Busy
|
||||
freebusy: unknow user '%1', wrong password or not availible to not loged in users !!! calendar en freebusy: Unknow user '%1', wrong password or not availible to not loged in users !!!
|
||||
freetime search calendar en Freetime Search
|
||||
fri calendar en Fri
|
||||
|
@ -1,6 +1,7 @@
|
||||
<!-- $Id$ -->
|
||||
<tr class="{row_class}">
|
||||
<td>{user}</td>
|
||||
<td align="center"><input type="checkbox" name="{custom_2}" value="Y"{custom_2_selected}></td>
|
||||
<td align="center"><input type="checkbox" name="{read}" value="Y"{read_selected}></td>
|
||||
<td align="center"><input type="checkbox" name="{add}" value="Y"{add_selected}></td>
|
||||
<td align="center"><input type="checkbox" name="{edit}" value="Y"{edit_selected}></td>
|
||||
|
@ -1,5 +1,6 @@
|
||||
<tr class="th">
|
||||
<td>{string}</td>
|
||||
<td align="center">{lang_freebusy}</td>
|
||||
<td align="center">{lang_read}</td>
|
||||
<td align="center">{lang_add}</td>
|
||||
<td align="center">{lang_edit}</td>
|
||||
|
Loading…
Reference in New Issue
Block a user