Go to the documentation of this file.00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00033 define('IL_REG_MISSING_DOMAIN',1);
00034 define('IL_REG_MISSING_ROLE',2);
00035
00036 class ilRegistrationRoleAssignments
00037 {
00038 var $assignments = array();
00039 var $default_role = 0;
00040
00041 function ilRegistrationRoleAssignments()
00042 {
00043 global $ilDB;
00044
00045 $this->db =& $ilDB;
00046 $this->__read();
00047 }
00048
00049 function getRoleByEmail($a_email)
00050 {
00051 global $ilObjDataCache;
00052
00053 foreach($this->assignments as $assignment)
00054 {
00055 if(!$assignment['domain'] or !$assignment['role'])
00056 {
00057 continue;
00058 }
00059 if(stristr($a_email,$assignment['domain']))
00060 {
00061
00062 if(!$ilObjDataCache->lookupType($assignment['role']))
00063 {
00064 continue;
00065 }
00066 return $assignment['role'];
00067 }
00068 }
00069
00070 return $this->getDefaultRole();
00071 }
00072
00073 function getAssignments()
00074 {
00075 return $this->assignments ? $this->assignments : array();
00076 }
00077
00078 function setDomain($a_id,$a_domain)
00079 {
00080 $this->assignments[$a_id]['domain'] = $a_domain;
00081 }
00082 function setRole($a_id,$a_role)
00083 {
00084 $this->assignments[$a_id]['role'] = $a_role;
00085 }
00086
00087 function getDefaultRole()
00088 {
00089 return $this->default_role;
00090 }
00091 function setDefaultRole($a_role_id)
00092 {
00093 $this->default_role = $a_role_id;
00094 }
00095
00096 function delete($a_id)
00097 {
00098 $query = "DELETE FROM reg_email_role_assignments ".
00099 "WHERE assignment_id = '".$a_id."'";
00100
00101 $this->db->query($query);
00102
00103 $this->__read();
00104 return true;
00105 }
00106
00107 function add()
00108 {
00109 $query = "INSERT INTO reg_email_role_assignments ".
00110 "SET domain = '', ".
00111 "role = ''";
00112
00113 $this->db->query($query);
00114
00115 $this->__read();
00116 return true;
00117 }
00118
00119 function save()
00120 {
00121 global $ilias;
00122
00123
00124 $ilias->setSetting('reg_default_role',$this->getDefaultRole());
00125
00126 foreach($this->assignments as $assignment)
00127 {
00128 $query = "UPDATE reg_email_role_assignments ".
00129 "SET domain = '".$assignment['domain']."', ".
00130 "role = '".$assignment['role']."' ".
00131 "WHERE assignment_id = '".$assignment['id']."'";
00132
00133 $this->db->query($query);
00134 }
00135 return true;
00136 }
00137
00138 function validate()
00139 {
00140 foreach($this->assignments as $assignment)
00141 {
00142 if(!strlen($assignment['domain']))
00143 {
00144 return IL_REG_MISSING_DOMAIN;
00145 }
00146 if(!$assignment['role'])
00147 {
00148 return IL_REG_MISSING_ROLE;
00149 }
00150 }
00151 if(!$this->getDefaultRole())
00152 {
00153 return IL_REG_MISSING_ROLE;
00154 }
00155 return 0;
00156 }
00157
00158
00159
00160
00161
00162 function __read()
00163 {
00164 global $ilias;
00165
00166 $query = "SELECT * FROM reg_email_role_assignments ";
00167 $res = $this->db->query($query);
00168
00169 $this->assignments = array();
00170 while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
00171 {
00172 $this->assignments[$row->assignment_id]['id'] = $row->assignment_id;
00173 $this->assignments[$row->assignment_id]['role'] = $row->role;
00174 $this->assignments[$row->assignment_id]['domain'] = $row->domain;
00175 }
00176
00177 $this->default_role = $ilias->getSetting('reg_default_role');
00178
00179 return true;
00180 }
00181 }
00182 ?>