18 declare(strict_types=1);
    32                 'permission' => 
'read',
    38                 'permission' => 
'read',
    43                 'permission' => 
'write',
    44                 'lang_var' => 
'edit_content'    48                 'permission' => 
'write',
    49                 'lang_var' => 
'settings'    53                 'permission' => 
'unparticipate',
    54                 'lang_var' => 
'unparticipate'    61         return self::$using_code;
    67         $act = $obj->getLSActivation();
    68         $online = $act->getIsOnline();
    71             && ($act->getActivationStart() !== null ||
    72                 $act->getActivationEnd() !== null)
    75             $activation_start = $act->getActivationStart();
    76             if ($activation_start !== null) {
    77                 $after_activation_start = $ts_now >= $activation_start->getTimestamp();
    79                 $after_activation_start = 
true;
    81             $activation_end = $act->getActivationEnd();
    82             if ($activation_end !== null) {
    83                 $before_activation_end = $ts_now <= $activation_end->getTimestamp();
    85                 $before_activation_end = 
true;
    88             $online = ($after_activation_start && $before_activation_end);
    91         if ($act->getEffectiveOnlineStatus() === 
false && $online === 
true) {
    92             $obj->setEffectiveOnlineStatus(
true);
    93             $obj->announceLSOOnline();
    95         if ($act->getEffectiveOnlineStatus() === 
true && $online === 
false) {
    96             $obj->setEffectiveOnlineStatus(
false);
    97             $obj->announceLSOOffline();
   100         $new_status = ($online)
   101             ? $obj->getObjectProperties()->getPropertyIsOnline()->withOnline()
   102             : $obj->getObjectProperties()->getPropertyIsOnline()->withOffline();
   103         $obj->getObjectProperties()->storePropertyIsOnline($new_status);
   108     public function _checkAccess(
string $cmd, 
string $permission, 
int $ref_id, 
int $obj_id, ?
int $user_id = null): bool
   112         switch ($permission) {
   114                 $has_any_administrative_permission = 
false;
   115                 if (!is_null($user_id)) {
   116                     $has_any_administrative_permission = (
   117                         $rbacsystem->checkAccessOfUser($user_id, 
'write', $ref_id) ||
   118                         $rbacsystem->checkAccessOfUser($user_id, 
'edit_members', $ref_id) ||
   119                         $rbacsystem->checkAccessOfUser($user_id, 
'edit_learning_progress', $ref_id)
   125                 if ($is_offine && !$has_any_administrative_permission) {
   132                 if (is_null($user_id)) {
   135                 return $rbacsystem->checkAccessOfUser($user_id, $permission, $ref_id);
   145         $rbacsystem = $DIC[
'rbacsystem'];
   146         $il_access = $DIC[
'ilAccess'];
 const IL_NO_OBJECT_ACCESS
 
_checkAccess(string $cmd, string $permission, int $ref_id, int $obj_id, ?int $user_id=null)
 
static isOffline(int $ref_id)
 
static getInstanceByRefId(int $ref_id, bool $stop_on_error=true)
get an instance of an Ilias object by reference id