57                 $this->calendar_id = $a_calendar_id;
 
   74                 $query = 
"DELETE FROM cal_shared WHERE cal_id = ".$ilDB->quote($a_cal_id ,
'integer').
" ";
 
   91                 $query = 
"DELETE FROM cal_shared WHERE obj_id = ".$ilDB->quote($a_user_id ,
'integer').
" ";
 
  109                 global $ilDB,$rbacreview;
 
  111                 $query = 
'SELECT * FROM cal_shared '.
 
  112                         "WHERE cal_id = ".$ilDB->quote($a_calendar_id ,
'integer').
" ";
 
  116                         $obj_ids[
$row->obj_id] = 
$row->obj_type;
 
  118                 $assigned_roles = $rbacreview->assignedRoles($a_usr_id);
 
  119                 foreach($obj_ids as $id => $type)
 
  129                                 case self::TYPE_ROLE:
 
  130                                         if(in_array($id,$assigned_roles))
 
  150                 global $ilDB,
$ilUser,$rbacreview;
 
  154                         $a_usr_id = $ilUser->getId();
 
  157                 $query = 
"SELECT * FROM cal_shared ".
 
  158                         "WHERE obj_type = ".$ilDB->quote(self::TYPE_USR ,
'integer').
" ".
 
  159                         "AND obj_id = ".$ilDB->quote($a_usr_id ,
'integer').
" ".
 
  160                         "ORDER BY create_date";
 
  162                 $calendars = array();
 
  165                         $calendars[] = 
$row->cal_id; 
 
  172                 $assigned_roles = $rbacreview->assignedRoles($ilUser->getId());
 
  174                 $query = 
"SELECT * FROM cal_shared ".
 
  175                         "WHERE obj_type = ".$ilDB->quote(self::TYPE_ROLE ,
'integer').
" ".
 
  176                         "AND ".$ilDB->in(
'obj_id',$assigned_roles,
false ,
'integer');
 
  181                         if(in_array(
$row->cal_id,$calendars))
 
  221                 return $this->shared ? $this->shared : array();
 
  232                 return $this->shared_users ? $this->shared_users : array();
 
  243                 return $this->shared_roles ? $this->shared_roles : array();
 
  255                 return isset($this->shared[$a_obj_id]);
 
  264                 foreach((array) $this->shared as $info)
 
  266                         $GLOBALS[
'ilLog']->write(__METHOD__.
': Calendar info:' . print_r($info,
true));
 
  267                         $GLOBALS[
'ilLog']->write(__METHOD__.
': Current user:' . $a_user_id);
 
  268                         if(!$info[
'writable'])
 
  273                         switch($info[
'obj_type'])
 
  276                                         if($info[
'obj_id'] == $a_user_id)
 
  278                                                 $GLOBALS[
'ilLog']->write(__METHOD__.
': Shared calendar is writable.');
 
  283                                 case self::TYPE_ROLE:
 
  284                                         if(
$GLOBALS[
'rbacreview']->isAssigned($a_user_id,$info[
'obj_id']))
 
  286                                                 $GLOBALS[
'ilLog']->write(__METHOD__.
': Shared calendar is writable.');
 
  292                 $GLOBALS[
'ilLog']->write(__METHOD__.
': Shared calendar is not writable.');
 
  304         public function share($a_obj_id,$a_type, $a_writable = 
false)
 
  312                 $query = 
"INSERT INTO cal_shared (cal_id,obj_id,obj_type,create_date,writable) ".
 
  315                         $this->db->quote($a_obj_id ,
'integer').
", ".
 
  316                         $this->db->quote($a_type ,
'integer').
", ".
 
  318                         $this->db->quote((
int) $a_writable,
'integer').
' '.
 
  342                 $query = 
"DELETE FROM cal_shared WHERE cal_id = ".$this->db->quote($this->
getCalendarId() ,
'integer').
" ".
 
  343                         "AND obj_id = ".$this->db->quote($a_obj_id ,
'integer').
" ";
 
  346                 include_once(
'./Services/Calendar/classes/class.ilCalendarSharedStatus.php');
 
  364                 $this->shared = $this->shared_users = $this->shared_roles = array();
 
  366                 $query = 
"SELECT * FROM cal_shared WHERE cal_id = ".$this->db->quote($this->
getCalendarId() ,
'integer');
 
  370                         switch(
$row->obj_type)
 
  373                                         $this->shared_users[
$row->obj_id][
'obj_id'] = 
$row->obj_id;
 
  374                                         $this->shared_users[
$row->obj_id][
'obj_type'] = 
$row->obj_type;
 
  375                                         $this->shared_users[
$row->obj_id][
'create_date'] = 
$row->create_date;
 
  376                                         $this->shared_users[
$row->obj_id][
'writable'] = 
$row->writable;
 
  380                                 case self::TYPE_ROLE:
 
  381                                         $this->shared_roles[
$row->obj_id][
'obj_id'] = 
$row->obj_id;
 
  382                                         $this->shared_roles[
$row->obj_id][
'obj_type'] = 
$row->obj_type;
 
  383                                         $this->shared_roles[
$row->obj_id][
'create_date'] = 
$row->create_date;
 
  384                                         $this->shared_role[
$row->obj_id][
'writable'] = 
$row->writable;
 
  389                         $this->shared[
$row->obj_id][
'obj_id'] = 
$row->obj_id;
 
  390                         $this->shared[
$row->obj_id][
'obj_type'] = 
$row->obj_type;
 
  391                         $this->shared[
$row->obj_id][
'create_date'] = 
$row->create_date;
 
  392                         $this->shared[
$row->obj_id][
'writable'] = 
$row->writable;