ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
ilRegistrationRoleAccessLimitations Class Reference

Class class.ilRegistrationAccessLimitation. More...

+ Collaboration diagram for ilRegistrationRoleAccessLimitations:

Public Member Functions

 __construct ()
 
 save ()
 
 validate ()
 
 getMode (int $a_role_id)
 
 setMode (string $a_mode, int $a_role_id)
 
 getAbsolute (int $a_role_id)
 
 setAbsolute (?string $date, int $a_role_id)
 
 getRelative (int $a_role_id, string $a_type)
 
 setRelative (?array $a_arr, int $a_role_id)
 
 resetAccessLimitations ()
 

Data Fields

const IL_REG_ACCESS_LIMITATION_MISSING_MODE = 1
 
const IL_REG_ACCESS_LIMITATION_OUT_OF_DATE = 2
 

Protected Attributes

ilDBInterface $db
 

Private Member Functions

 read ()
 

Private Attributes

array $access_limitations = []
 

Detailed Description

Class class.ilRegistrationAccessLimitation.

Author
Sascha Hofmann sasch.nosp@m.ahof.nosp@m.mann@.nosp@m.gmx..nosp@m.de

Definition at line 26 of file class.ilRegistrationRoleAccessLimitations.php.

Constructor & Destructor Documentation

◆ __construct()

ilRegistrationRoleAccessLimitations::__construct ( )

Definition at line 36 of file class.ilRegistrationRoleAccessLimitations.php.

References $DIC, and read().

37  {
38  global $DIC;
39 
40  $this->db = $DIC->database();
41  $this->read();
42  }
global $DIC
Definition: feed.php:28
+ Here is the call graph for this function:

Member Function Documentation

◆ getAbsolute()

ilRegistrationRoleAccessLimitations::getAbsolute ( int  $a_role_id)

Definition at line 109 of file class.ilRegistrationRoleAccessLimitations.php.

109  : int
110  {
111  return $this->access_limitations[$a_role_id]['absolute'] ?? time();
112  }

◆ getMode()

ilRegistrationRoleAccessLimitations::getMode ( int  $a_role_id)

Definition at line 99 of file class.ilRegistrationRoleAccessLimitations.php.

99  : string
100  {
101  return isset($this->access_limitations[$a_role_id]) ? $this->access_limitations[$a_role_id]['mode'] : 'null';
102  }

◆ getRelative()

ilRegistrationRoleAccessLimitations::getRelative ( int  $a_role_id,
string  $a_type 
)

Definition at line 124 of file class.ilRegistrationRoleAccessLimitations.php.

124  : int
125  {
126  return $this->access_limitations[$a_role_id]['relative_' . $a_type] ?? 0;
127  }

◆ read()

ilRegistrationRoleAccessLimitations::read ( )
private

Definition at line 44 of file class.ilRegistrationRoleAccessLimitations.php.

References $query, $res, ilDBConstants\FETCHMODE_OBJECT, and ILIAS\Repository\int().

Referenced by __construct().

44  : void
45  {
46  $query = "SELECT * FROM reg_access_limit ";
47  $res = $this->db->query($query);
48 
49  $this->access_limitations = [];
50  while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
51  $role_id = (int) $row->role_id;
52  $this->access_limitations[$role_id]['id'] = $role_id;
53  $this->access_limitations[$role_id]['absolute'] = is_null($row->limit_absolute) ? null : (int) $row->limit_absolute;
54  $this->access_limitations[$role_id]['relative_d'] = is_null($row->limit_relative_d) ? null : (int) $row->limit_relative_d;
55  $this->access_limitations[$role_id]['relative_m'] = is_null($row->limit_relative_m) ? null : (int) $row->limit_relative_m;
56  $this->access_limitations[$role_id]['mode'] = (string) $row->limit_mode;
57  }
58  }
$res
Definition: ltiservices.php:69
$query
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ resetAccessLimitations()

ilRegistrationRoleAccessLimitations::resetAccessLimitations ( )

Definition at line 143 of file class.ilRegistrationRoleAccessLimitations.php.

143  : void
144  {
145  $this->access_limitations = [];
146  }

◆ save()

ilRegistrationRoleAccessLimitations::save ( )

Definition at line 60 of file class.ilRegistrationRoleAccessLimitations.php.

References $data, $query, ilDBConstants\T_INTEGER, and ilDBConstants\T_TEXT.

60  : bool
61  {
62  foreach ($this->access_limitations as $role_id => $data) {
63  $query = "DELETE FROM reg_access_limit " .
64  "WHERE role_id = " . $this->db->quote($role_id, 'integer');
65  $this->db->manipulate($query);
66 
67  $query = "INSERT INTO reg_access_limit (role_id,limit_mode,limit_absolute," .
68  "limit_relative_d,limit_relative_m) " .
69  "VALUES( " .
70  $this->db->quote($role_id, ilDBConstants::T_INTEGER) . ", " .
71  $this->db->quote($data['mode'], ilDBConstants::T_TEXT) . ", " .
72  $this->db->quote($data['absolute'] ?? null, ilDBConstants::T_INTEGER) . ", " .
73  $this->db->quote($data['relative_d'] ?? null, ilDBConstants::T_INTEGER) . ", " .
74  $this->db->quote($data['relative_m'] ?? null, ilDBConstants::T_INTEGER) . " " .
75  ")";
76  $this->db->manipulate($query);
77  }
78  return true;
79  }
$query

◆ setAbsolute()

ilRegistrationRoleAccessLimitations::setAbsolute ( ?string  $date,
int  $a_role_id 
)

Definition at line 114 of file class.ilRegistrationRoleAccessLimitations.php.

114  : void
115  {
116  if (!is_null($date)) {
117  $unix_date = strtotime($date);
118  if ($unix_date) {
119  $this->access_limitations[$a_role_id]['absolute'] = $unix_date;
120  }
121  }
122  }

◆ setMode()

ilRegistrationRoleAccessLimitations::setMode ( string  $a_mode,
int  $a_role_id 
)

Definition at line 104 of file class.ilRegistrationRoleAccessLimitations.php.

104  : void
105  {
106  $this->access_limitations[$a_role_id]['mode'] = $a_mode;
107  }

◆ setRelative()

ilRegistrationRoleAccessLimitations::setRelative ( ?array  $a_arr,
int  $a_role_id 
)
Parameters
array{ddint|string, MM: int|string}|null $a_arr

Definition at line 132 of file class.ilRegistrationRoleAccessLimitations.php.

References ILIAS\Repository\int().

132  : void
133  {
134  if (null === $a_arr) {
135  $this->access_limitations[$a_role_id]['relative_d'] = null;
136  $this->access_limitations[$a_role_id]['relative_m'] = null;
137  } else {
138  $this->access_limitations[$a_role_id]['relative_d'] = (int) $a_arr['dd'];
139  $this->access_limitations[$a_role_id]['relative_m'] = (int) $a_arr['MM'];
140  }
141  }
+ Here is the call graph for this function:

◆ validate()

ilRegistrationRoleAccessLimitations::validate ( )

Definition at line 81 of file class.ilRegistrationRoleAccessLimitations.php.

References $data.

81  : int
82  {
83  foreach ($this->access_limitations as $data) {
84  if ($data['mode'] === 'null') {
85  return self::IL_REG_ACCESS_LIMITATION_MISSING_MODE;
86  }
87 
88  if ($data['mode'] === 'absolute' && $data['absolute'] < time()) {
89  return self::IL_REG_ACCESS_LIMITATION_OUT_OF_DATE;
90  }
91 
92  if ($data['mode'] === 'relative' && ($data['relative_d'] < 1 && $data['relative_m'] < 1)) {
93  return self::IL_REG_ACCESS_LIMITATION_OUT_OF_DATE;
94  }
95  }
96  return 0;
97  }

Field Documentation

◆ $access_limitations

array ilRegistrationRoleAccessLimitations::$access_limitations = []
private

◆ $db

ilDBInterface ilRegistrationRoleAccessLimitations::$db
protected

◆ IL_REG_ACCESS_LIMITATION_MISSING_MODE

const ilRegistrationRoleAccessLimitations::IL_REG_ACCESS_LIMITATION_MISSING_MODE = 1

◆ IL_REG_ACCESS_LIMITATION_OUT_OF_DATE

const ilRegistrationRoleAccessLimitations::IL_REG_ACCESS_LIMITATION_OUT_OF_DATE = 2

The documentation for this class was generated from the following file: