moglia
2010-05-13 2744b2334b38046dc7b13458bb075ed1de838e81
interface/lib/classes/remoting_lib.inc.php
@@ -140,36 +140,37 @@
      //* Load the user profile
      function loadUserProfile($client_id = 0) {
         global $app,$conf;
         $client_id = intval($client_id);
         if($client_id == 0) {
            $this->sys_username       = 'admin';
            $this->sys_userid         = 1;
            $this->sys_default_group    = 1;
            $this->sys_groups         = 1;
            $this->sys_username         = 'admin';
            $this->sys_userid            = 1;
            $this->sys_default_group     = 1;
            $this->sys_groups            = 1;
            $_SESSION["s"]["user"]["typ"] = 'admin';
         } else {
            //* Load the client data
            $client = $app->db->queryOneRecord("SELECT username FROM client WHERE client_id = $client_id");
            if($client["username"] == '') {
               $this->errorMessage .= 'No client with ID $client_id found.';
               return false;
            }
            //* load system user
            $user = $app->db->queryOneRecord("SELECT * FROM sys_user WHERE username = '".$app->db->quote($client["username"])."'");
            //* load system user - try with sysuser and before with userid (workarrond)
            /*
            $user = $app->db->queryOneRecord("SELECT * FROM sys_user WHERE sysuser_id = $client_id");
            if(empty($user["userid"])) {
               $this->errorMessage .= 'No user with the username '.$client['username'].' found.';
               return false;
            }
            $this->sys_username       = $user['username'];
            $this->sys_userid         = $user['userid'];
            $this->sys_default_group    = $user['default_group'];
            $this->sys_groups          = $user['groups'];
                  $user = $app->db->queryOneRecord("SELECT * FROM sys_user WHERE userid = $client_id");
                  if(empty($user["userid"])) {
                        $this->errorMessage .= "No sysuser with the ID $client_id found.";
                        return false;
                  }
            }*/
            $user = $app->db->queryOneRecord("SELECT * FROM sys_user WHERE client_id = $client_id");
            $this->sys_username         = $user['username'];
            $this->sys_userid            = $user['userid'];
            $this->sys_default_group     = $user['default_group'];
            $this->sys_groups             = $user['groups'];
            $_SESSION["s"]["user"]["typ"] = $user['typ'];
         }
         return true;
      }
      return true;
       }
        /**
@@ -191,9 +192,16 @@
                                        $new_record[$key] = stripslashes($record[$key]);
                                break;
                                case 'DATE':
                                case 'DATETSTAMP':
                                        if($record[$key] > 0) {
                                                $new_record[$key] = date($this->dateformat,$record[$key]);
                                        }
                                break;
                        case 'DATE':
                                        if($record[$key] != '' && $record[$key] != '0000-00-00') {
                                    $tmp = explode('-',$record[$key]);
                                                $new_record[$key] = date($this->dateformat,mktime(0, 0, 0, $tmp[1]  , $tmp[2], $tmp[0]));
                                        }
                                break;
@@ -305,12 +313,22 @@
                                                $new_record[$key] = implode($field['separator'],$record[$key]);
                                        }
                                break;
                                case 'DATE':
                                case 'DATETSTAMP':
                                        if($record[$key] > 0) {
                                                list($tag,$monat,$jahr) = explode('.',$record[$key]);
                                                $new_record[$key] = mktime(0,0,0,$monat,$tag,$jahr);
                                        } else {
                                 $new_record[$key] = 0;
                              }
                                break;
                        case 'DATE':
                                        if($record[$key] != '' && $record[$key] != '0000-00-00') {
                                                list($tag,$monat,$jahr) = explode('.',$record[$key]);
                                                $new_record[$key] = $jahr.'-'.$monat.'-'.$tag;
                                    //$tmp = strptime($record[$key],$this->dateformat);
                                    //$new_record[$key] = ($tmp['tm_year']+1900).'-'.($tmp['tm_mon']+1).'-'.$tmp['tm_mday'];
                                        } else {
                                 $new_record[$key] = '0000-00-00';
                              }
                                break;
                                case 'INTEGER':
@@ -323,6 +341,18 @@
                                break;
                                case 'CURRENCY':
                                        $new_record[$key] = str_replace(",",".",$record[$key]);
                                break;
                                case 'DATETIME':
                                      if (is_array($record[$key]))
                                      {
                                         $filtered_values = array_map(create_function('$item','return (int)$item;'), $record[$key]);
                                         extract($filtered_values, EXTR_PREFIX_ALL, '_dt');
                                         if ($_dt_day != 0 && $_dt_month != 0 && $_dt_year != 0) {
                                            $new_record[$key] = date( 'Y-m-d H:i:s', mktime($_dt_hour, $_dt_minute, $_dt_second, $_dt_month, $_dt_day, $_dt_year) );
                                         }
                                      }
                                break;
                                }
@@ -373,7 +403,7 @@
                                        }
                                break;
                                case 'UNIQUE':
                                        if($this->action == 'NEW') {
                                        if($this->action == 'INSERT') {
                                                $num_rec = $app->db->queryOneRecord("SELECT count(*) as number FROM ".$escape.$this->formDef['db_table'].$escape. " WHERE $field_name = '".$app->db->quote($field_value)."'");
                                                if($num_rec["number"] > 0) {
                                                        $errmsg = $validator['errmsg'];
@@ -491,8 +521,10 @@
                                                        $sql_insert_key .= "`$key`, ";
                                                        if($field['encryption'] == 'CRYPT') {
                                                                $salt="$1$";
                                                $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
                                                for ($n=0;$n<8;$n++) {
                                                   $salt.=chr(mt_rand(64,126));
                                                   //$salt.=chr(mt_rand(64,126));
                                                   $salt.=$base64_alphabet[mt_rand(0,63)];
                                                }
                                                $salt.="$";
                                                // $salt = substr(md5(time()),0,2);
@@ -518,8 +550,10 @@
                                                if($field['formtype'] == 'PASSWORD') {
                                          if($field['encryption'] == 'CRYPT') {
                                                                $salt="$1$";
                                                $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
                                                for ($n=0;$n<8;$n++) {
                                                   $salt.=chr(mt_rand(64,126));
                                                   //$salt.=chr(mt_rand(64,126));
                                                   $salt.=$base64_alphabet[mt_rand(0,63)];
                                                }
                                                $salt.="$";
                                                // $salt = substr(md5(time()),0,2);
@@ -615,7 +649,7 @@
            }
            $sql_where = substr($sql_where,0,-5);
            $sql = "SELECT * FROM ".$escape.$this->formDef['db_table'].$escape." WHERE ".$sql_where;
               return $app->db->queryOneRecord($sql);
            return $app->db->queryAllRecords($sql);
         } else {
            $this->errorMessage = 'The ID must be either an integer or an array.';
            return array();
@@ -624,22 +658,39 @@
         
      }
      function dodaj_usera($params,$insert_id){
      function ispconfig_sysuser_add($params,$insert_id){
         global $app,$sql1;
         $username = $params["username"];
         $password = $params["password"];
         $username = $app->db->quote($params["username"]);
         $password = $app->db->quote($params["password"]);
         $modules = 'mail,sites,dns,tools';
         $startmodule = 'mail';
         $usertheme = $params["usertheme"];
         $usertheme = $app->db->quote($params["usertheme"]);
         $type = 'user';
         $active = 1;
         $language = $params["language"];
         $insert_id = intval($insert_id);
         $language = $app->db->quote($params["language"]);
         $groupid = $app->db->datalogInsert('sys_group', "(name,description,client_id) VALUES ('$username','','$insert_id')", 'groupid');
         $groups = $groupid;
         $sql1 = "INSERT INTO sys_user (username,passwort,modules,startmodule,app_theme,typ,active,language,groups,default_group,client_id)
         VALUES ('$username',md5('$password'),'$modules','$startmodule','$usertheme','$type','$active','$language',$groups,$groupid,$insert_id)";
         $app->db->query($sql1);
      }
      function ispconfig_sysuser_update($params,$client_id){
         global $app;
         $username = $app->db->quote($params["username"]);
         $password = $app->db->quote($params["password"]);
         $client_id = intval($client_id);
         $sql = "UPDATE sys_user set username = '$username', passwort = md5('$password') WHERE client_id = $client_id";
         $app->db->query($sql);
      }
      function ispconfig_sysuser_delete($client_id){
         global $app;
         $client_id = intval($client_id);
         $sql = "DELETE FROM sys_user WHERE client_id = $client_id";
         $app->db->query($sql);
      }
        function datalogSave($action,$primary_id, $record_old, $record_new) {
                global $app,$conf;