tbrehm
2013-04-16 a0fd5ab7b5412985324e970573ca22a27b3a94d3
server/lib/classes/system.inc.php
@@ -575,6 +575,58 @@
   }
   
   /**
    * Get the group id from an group
    *
    */
   function getgid($group){
      global $app;
        if($this->is_group($group)){
          $group_datei = $this->server_conf['group_datei'];
         $groups = $app->file->no_comments($group_datei);
         $lines = explode("\n", $groups);
         if(is_array($lines)){
          foreach($lines as $line){
               if(trim($line) != ""){
                  list($f1, $f2, $f3, $f4) = explode(':', $line);
                  if($f1 == $group) return $f3;
               }
            }
         }
        } else {
          return false;
        }
   }
   /**
   * Return info about a group by name
   *
   */
   function posix_getgrnam($group) {
      if(!function_exists('posix_getgrnam')){
         $group_datei = $this->server_conf['group_datei'];
         $cmd = 'grep -m 1 "^'.$group.':" '.$group_datei;
         exec($cmd, $output, $return_var);
         if($return_var != 0 || !$output[0]) return false;
         list($f1, $f2, $f3, $f4) = explode(':', $output[0]);
         $f2 = trim($f2);
         $f3 = trim($f3);
         $f4 = trim($f4);
         if($f4 != ''){
            $members = explode(',', $f4);
         } else {
            $members = array();
         }
         $group_details = array(   'name' => $group,
                           'passwd' => $f2,
                           'members' => $members,
                           'gid' => $f3);
         return $group_details;
      } else {
         return posix_getgrnam($group);
      }
    }
   /**
    * Get all information from a user
    *
    */