ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilRegistrationRoleAccessLimitations.php
Go to the documentation of this file.
1<?php
2/*
3 +-----------------------------------------------------------------------------+
4 | ILIAS open source |
5 +-----------------------------------------------------------------------------+
6 | Copyright (c) 1998-2001 ILIAS open source, University of Cologne |
7 | |
8 | This program is free software; you can redistribute it and/or |
9 | modify it under the terms of the GNU General Public License |
10 | as published by the Free Software Foundation; either version 2 |
11 | of the License, or (at your option) any later version. |
12 | |
13 | This program is distributed in the hope that it will be useful, |
14 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | GNU General Public License for more details. |
17 | |
18 | You should have received a copy of the GNU General Public License |
19 | along with this program; if not, write to the Free Software |
20 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
21 +-----------------------------------------------------------------------------+
22*/
23
33define('IL_REG_ACCESS_LIMITATION_MISSING_MODE',1);
34define('IL_REG_ACCESS_LIMITATION_OUT_OF_DATE',2);
35
37{
38 var $access_limits = array();
39
41 {
42 global $ilDB;
43
44 $this->db =& $ilDB;
45 $this->__read();
46 }
47
48 // Private
49 function __read()
50 {
51 global $ilias;
52
53 $query = "SELECT * FROM reg_access_limit ";
54 $res = $this->db->query($query);
55
56 $this->access_limitations = array();
57 while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
58 {
59 $this->access_limitations[$row->role_id]['id'] = $row->role_id;
60 $this->access_limitations[$row->role_id]['absolute'] = $row->limit_absolute;
61 $this->access_limitations[$row->role_id]['relative_d'] = $row->limit_relative_d;
62 $this->access_limitations[$row->role_id]['relative_m'] = $row->limit_relative_m;
63 $this->access_limitations[$row->role_id]['relative_y'] = $row->limit_relative_y;
64 $this->access_limitations[$row->role_id]['mode'] = $row->limit_mode;
65 }
66
67 return true;
68 }
69
70 function save()
71 {
72 global $ilias, $ilDB;
73
74 foreach($this->access_limitations as $key => $data)
75 {
76 $limit_value = "";
77
78 // Delete old entry
79 $query = "DELETE FROM reg_access_limit ".
80 "WHERE role_id = ".$ilDB->quote($key,'integer');
81 $res = $ilDB->manipulate($query);
82
83
84 $query = "INSERT INTO reg_access_limit (role_id,limit_mode,limit_absolute,".
85 "limit_relative_d,limit_relative_m,limit_relative_y) ".
86 "VALUES( ".
87 $ilDB->quote($key,'integer').", ".
88 $ilDB->quote($data['mode'] ,'text').", ".
89 $ilDB->quote($data['absolute']).", ".
90 $ilDB->quote($data['relative_d']).", ".
91 $ilDB->quote($data['relative_m']).", ".
92 $ilDB->quote($data['relative_y'])." ".
93 ")";
94 $res = $ilDB->manipulate($query);
95 }
96
97 return true;
98 }
99
100 function validate()
101 {
102 foreach ($this->access_limitations as $data)
103 {
104 if ($data['mode'] == "null")
105 {
107 }
108
109 if ($data['mode'] == 'absolute' and $data['absolute'] < time())
110 {
112 }
113
114 if ($data['mode'] == 'relative' and ($data['relative_d'] < 1 and $data['relative_m'] < 1 and $data['relative_y'] < 1))
115 {
117 }
118 }
119
120 return 0;
121 }
122
123 function getMode($a_role_id)
124 {
125 return $this->access_limitations[$a_role_id] ? $this->access_limitations[$a_role_id]['mode'] : 'null';
126 }
127
128 function setMode($a_mode,$a_role_id)
129 {
130 $this->access_limitations[$a_role_id]['mode'] = $a_mode;
131 }
132
133 function getAbsolute($a_role_id)
134 {
135 return $this->access_limitations[$a_role_id] ? $this->access_limitations[$a_role_id]['absolute'] : time();
136 }
137
138 function setAbsolute($a_arr,$a_role_id)
139 {
140 $this->access_limitations[$a_role_id]['absolute'] = mktime(23,59,59,$a_arr['m'],$a_arr['d'],$a_arr['y']);
141 }
142
143 function getRelative($a_role_id,$a_type)
144 {
145 return $this->access_limitations[$a_role_id] ? $this->access_limitations[$a_role_id]['relative_'.$a_type] : 0;
146 }
147
148 function setRelative($a_arr,$a_role_id)
149 {
150 $this->access_limitations[$a_role_id]['relative_d'] = $a_arr['d'];
151 $this->access_limitations[$a_role_id]['relative_m'] = $a_arr['m'];
152 $this->access_limitations[$a_role_id]['relative_y'] = $a_arr['y'];
153 }
154}
155?>
const DB_FETCHMODE_OBJECT
Definition: class.ilDB.php:11
$data
const IL_REG_ACCESS_LIMITATION_MISSING_MODE
Class class.ilRegistrationAccessLimitation.
global $ilDB