[ Index ]
 

Code source de eGroupWare 1.2.106-2

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/mydms/inc/ -> inc.ClassGroup.php (source)

   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  ?>


Généré le : Sun Feb 25 17:20:01 2007 par Balluche grâce à PHPXref 0.7