ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
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.

37 {
38 global $DIC;
39
40 $this->db = $DIC->database();
41 $this->read();
42 }
global $DIC
Definition: shib_login.php:26

References $DIC, and read().

+ 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.

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

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

Referenced by __construct().

+ 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.

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 }

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

◆ 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.

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 }

References ILIAS\Repository\int().

+ Here is the call graph for this function:

◆ validate()

ilRegistrationRoleAccessLimitations::validate ( )

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

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

References $data, IL_REG_ACCESS_LIMITATION_MISSING_MODE, and IL_REG_ACCESS_LIMITATION_OUT_OF_DATE.

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: