[ Index ] |
|
Code source de eGroupWare 1.2.106-2 |
1 <?php 2 3 /**********************************************************************\ 4 | statische, Group-bezogene Funktionen | 5 \**********************************************************************/ 6 7 8 function getGroup($id) 9 { 10 11 $name = $GLOBALS['egw']->accounts->id2name($id); 12 13 return new Group($id, $name, ''); 14 } 15 16 17 function getAllGroups() 18 { 19 20 $phpgw_groups = $GLOBALS['egw']->accounts->get_list('groups'); 21 22 $groups = array(); 23 24 for ($i = 0; $i < count($phpgw_groups); $i++) 25 $groups[$i] = new Group($phpgw_groups[$i]["account_id"], $phpgw_groups[$i]["account_lid"], ''); 26 27 return $groups; 28 } 29 30 31 function addGroup($name, $comment) 32 { 33 GLOBAl $db; 34 35 $queryStr = "INSERT INTO phpgw_mydms_Groups (name, comment) VALUES ('".$name."', '" . $comment . "')"; 36 if (!$db->getResult($queryStr)) 37 return false; 38 39 return getGroup($db->getInsertID('phpgw_mydms_Groups','id')); 40 } 41 42 43 /**********************************************************************\ 44 | Group-Klasse | 45 \**********************************************************************/ 46 47 class Group 48 { 49 var $_id; 50 var $_name; 51 52 function Group($id, $name, $comment) 53 { 54 $this->_id = $id; 55 $this->_name = $name; 56 $this->_comment = $comment; 57 } 58 59 function getID() { return $this->_id; } 60 61 function getName() { return $this->_name; } 62 63 function setName($newName) 64 { 65 GLOBAL $db; 66 67 $queryStr = "UPDATE phpgw_mydms_Groups SET name = '" . $newName . "' WHERE id = " . $this->_id; 68 if (!$db->getResult($queryStr)) 69 return false; 70 71 $this->_name = $newName; 72 return true; 73 } 74 75 function getComment() { return $this->_comment; } 76 77 function setComment($newComment) 78 { 79 GLOBAL $db; 80 81 $queryStr = "UPDATE phpgw_mydms_Groups SET comment = '" . $newComment . "' WHERE id = " . $this->_id; 82 if (!$db->getResult($queryStr)) 83 return false; 84 85 $this->_comment = $newComment; 86 return true; 87 } 88 89 function getUsers() 90 { 91 $members = $GLOBALS['egw']->accounts->member($this->_id); 92 $egw_group_member = array(); 93 94 if (is_array($members)) 95 { 96 foreach($members as $member) 97 { 98 if(!in_array($member['account_id'],$egw_group_member)) 99 { 100 $egw_group_member[] = $member['account_id']; 101 } 102 } 103 } 104 105 106 $this->_users = array(); 107 108 foreach($egw_group_member as $egw_member) 109 { 110 $user = getUser($egw_member); 111 array_push($this->_users, $user); 112 } 113 114 return $this->_users; 115 } 116 117 function addUser($user) 118 { 119 GLOBAL $db; 120 121 $queryStr = "INSERT INTO phpgw_mydms_GroupMembers (groupID, userID) VALUES (".$this->_id.", ".$user->getID().")"; 122 $res = $db->getResult($queryStr); 123 if ($res) 124 return false; 125 126 unset($this->_users); 127 return true; 128 } 129 130 function removeUser($user) 131 { 132 GLOBAL $db; 133 134 $queryStr = "DELETE FROM phpgw_mydms_GroupMembers WHERE groupID = ".$this->_id." AND userID = ".$user->getID(); 135 $res = $db->getResult($queryStr); 136 if ($res) 137 return false; 138 139 unset($this->_users); 140 return true; 141 } 142 143 function isMember($user) 144 { 145 //Wenn die User bereits abgefragt wurden, geht's so schneller: 146 if (isset($this->_users)) 147 { 148 foreach ($this->_users as $usr) 149 if ($usr->getID() == $user->getID()) 150 return true; 151 return false; 152 } 153 154 155 $members = $GLOBALS['egw']->accounts->member((int)$this->_id); 156 $egw_group_member = array(); 157 158 if (is_array($members)) 159 { 160 foreach($members as $member) 161 { 162 if(!in_array($member['account_id'],$egw_group_member)) 163 { 164 $egw_group_member[] = $member['account_id']; 165 } 166 } 167 } 168 169 if(!in_array($user->getID(),$egw_group_member)) 170 { 171 return false; 172 } 173 else 174 { 175 return true; 176 } 177 178 } 179 180 /** 181 * Entfernt die Gruppe aus dem System. 182 * Dies ist jedoch nicht mit einem L�schen des entsprechenden Eintrags aus phpgw_mydms_Groups geschehen - vielmehr 183 * muss daf�r gesorgt werden, dass die Gruppe nirgendwo mehr auftaucht. D.h. auch die Tabellen phpgw_mydms_ACLs, 184 * phpgw_mydms_Notify und phpgw_mydms_GroupMembers m�ssen ber�cksichtigt werden. 185 */ 186 function remove() 187 { 188 GLOBAl $db; 189 190 $queryStr = "DELETE FROM phpgw_mydms_Groups WHERE id = " . $this->_id; 191 if (!$db->getResult($queryStr)) 192 return false; 193 $queryStr = "DELETE FROM phpgw_mydms_GroupMembers WHERE groupID = " . $this->_id; 194 if (!$db->getResult($queryStr)) 195 return false; 196 $queryStr = "DELETE FROM phpgw_mydms_ACLs WHERE groupID = " . $this->_id; 197 if (!$db->getResult($queryStr)) 198 return false; 199 $queryStr = "DELETE FROM phpgw_mydms_Notify WHERE groupID = " . $this->_id; 200 if (!$db->getResult($queryStr)) 201 return false; 202 203 return true; 204 } 205 } 206 207 208 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Feb 25 17:20:01 2007 | par Balluche grâce à PHPXref 0.7 |