phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] api/interface/class.interface_xmlrpc.php, 1.1.2.22


From: nomail
Subject: [Phpgroupware-cvs] api/interface/class.interface_xmlrpc.php, 1.1.2.22
Date: Sun, 25 Jul 2004 18:20:08 +0200

Update of /api/interface
Modified Files:
        Branch: proposal-branch
          class.interface_xmlrpc.php

date: 2004/07/25 16:20:08;  author: dcech;  state: Exp;  lines: +42 -4

Log Message:
fixed passing login and session vars for xmlrpc interface
added xmlrpc_base64 type
changed ADODB fetch mode to ASSOC
cleaned up auth code in api_phpgw
modified check_op for speed
=====================================================================
Index: api/interface/class.interface_xmlrpc.php
diff -u api/interface/class.interface_xmlrpc.php:1.1.2.21 
api/interface/class.interface_xmlrpc.php:1.1.2.22
--- api/interface/class.interface_xmlrpc.php:1.1.2.21   Mon Jun 28 14:12:57 2004
+++ api/interface/class.interface_xmlrpc.php    Sun Jul 25 16:20:08 2004
@@ -66,9 +66,8 @@
 
                function good_login()
                {
-                       $newsid = $GLOBALS['phpgw']->session->sid();
-                       $result = "<?xml 
version=\"1.0\"?>\n<methodResponse>\n<params>\n<param>\n<value>\n<base64>".base64_encode($newsid)."</base64>\n</value>\n</param>\n</params>\n</methodResponse>";
-                       echo $this->output($result);
+                       $result = new 
xmlrpc_base64($GLOBALS['phpgw']->session->sid());
+                       echo $this->output($this->response($result));
                        exit;
                }
                
@@ -196,6 +195,20 @@
                        {
                                $this->inputs = 
$this->parse_param($request['params']['param']);
                        }
+                       
+                       // export login vars and session id
+                       if(isset($this->inputs['phpgw_user']))
+                       {
+                               $_GET['phpgw_user'] = 
$this->inputs['phpgw_user'];
+                       }
+                       if(isset($this->inputs['phpgw_pass']))
+                       {
+                               $_GET['phpgw_pass'] = 
$this->inputs['phpgw_pass'];
+                       }
+                       if(isset($this->inputs['sid']))
+                       {
+                               $_GET['sid'] = $this->inputs['sid'];
+                       }
                }
                
                function parse_param($param)
@@ -322,6 +335,11 @@
                                                break;
                                        }
                                case 'object': // objects or associative arrays
+                                       if (is_object($params) && 
get_class($params) == 'xmlrpc_base64')
+                                       {
+                                               return 
$this->add_vars($params->encode(),$level);
+                                       }
+                                       
                                        $result .= 
str_repeat($this->indent,$level+1)."<struct>\n";
                                        foreach ($params as $key => $val)
                                        {
@@ -488,3 +506,23 @@
                        return $error_result;
                }
        }
+       
+       class xmlrpc_base64
+       {
+               var $value;
+               
+               function xmlrpc_base64($value = '')
+               {
+                       $this->value = $value;
+               }
+               
+               function decode()
+               {
+                       return base64_decode($this->value);
+               }
+               
+               function encode()
+               {
+                       return base64_encode($this->value);
+               }
+       }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]