source: contrib/Dms/inc/inc.ClassGroup.php @ 4362

Revision 4362, 5.1 KB checked in by afernandes, 13 years ago (diff)

Ticket #1416 - Disponibilizado módulo de recursos para a comunidade

  • Property svn:executable set to *
Line 
1<?php
2
3/**********************************************************************\
4|                 statische, Group-bezogene Funktionen                 |
5\**********************************************************************/
6
7
8function getGroup($id)
9{
10       
11        $name = $GLOBALS['phpgw']->accounts->id2name($id);
12//      echo" el grupo es".$name."   ".$id."<br>";
13        return new Group($id, $name, '');
14}
15
16
17function getAllGroups()
18{
19       
20        $phpgw_groups = $GLOBALS['phpgw']->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
31function 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
47class 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['phpgw']->accounts->member($this->_id);     
92                $phpgw_group_member = array();
93
94                if (is_array($members))
95                {
96                        foreach($members as $member)
97                        {
98                                if(!in_array($member['account_id'],$phpgw_group_member))
99                                {
100                                        $phpgw_group_member[] = $member['account_id'];
101                                }
102                        }
103                }
104
105
106                $this->_users = array();
107
108                foreach($phpgw_group_member as $phpgw_member)
109                {
110                        $user = getUser($phpgw_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               
147                //echo "usuariooooo".$user->getID()."<br>";
148               
149                if (isset($this->_users))
150                {
151                        foreach ($this->_users as $usr)
152                                if ($usr->getID() == $user->getID())
153                                        return true;
154                        return false;
155                }
156               
157               
158                $members = $GLOBALS['phpgw']->accounts->member((int)$this->_id);
159       
160                $phpgw_group_member = array();
161
162                if (is_array($members))
163                {
164                     /*   foreach($members as $member)
165                        {
166                                if(!in_array($member['account_id'],$phpgw_group_member))
167                                {
168                                        $phpgw_group_member[] = $member['account_id'];
169                                        //echo "grupomiembro".$member['account_id']."   ".$this->_id."<br>";
170                                }//else{
171                                        //echo "<br>arrreglo<br>".$member['account_id']."   ".$phpgw_group_member->id."<br>";
172                                //}
173                        }*/
174                }
175                                               
176                if(!in_array($user->getID(),$phpgw_group_member))
177                {
178                        return false;
179                }
180                else
181                {
182                        return true;
183                }
184
185        }
186       
187
188       
189
190        /**
191         * Entfernt die Gruppe aus dem System.
192         * Dies ist jedoch nicht mit einem Lï¿œschen des entsprechenden Eintrags aus phpgw_mydms_Groups geschehen - vielmehr
193         * muss dafï¿œr gesorgt werden, dass die Gruppe nirgendwo mehr auftaucht. D.h. auch die Tabellen phpgw_mydms_ACLs,
194         * phpgw_mydms_Notify und phpgw_mydms_GroupMembers mï¿œssen berï¿œcksichtigt werden.
195         */
196        function remove()
197        {
198                GLOBAl $db;
199               
200                $queryStr = "DELETE FROM phpgw_mydms_Groups WHERE id = " . $this->_id;
201                if (!$db->getResult($queryStr))
202                        return false;
203                $queryStr = "DELETE FROM phpgw_mydms_GroupMembers WHERE groupID = " . $this->_id;
204                if (!$db->getResult($queryStr))
205                        return false;
206                $queryStr = "DELETE FROM phpgw_mydms_ACLs WHERE groupID = " . $this->_id;
207                if (!$db->getResult($queryStr))
208                        return false;
209                $queryStr = "DELETE FROM phpgw_mydms_Notify WHERE groupID = " . $this->_id;
210                if (!$db->getResult($queryStr))
211                        return false;
212               
213                return true;
214        }
215}
216
217
218?>
Note: See TracBrowser for help on using the repository browser.