forked from extern/egroupware
fixed bug, account_id param in constructor was not used
merged jengos changes from .16 too
This commit is contained in:
parent
39a55af60a
commit
e51acc6ad8
@ -62,12 +62,57 @@
|
|||||||
function acl($account_id = '')
|
function acl($account_id = '')
|
||||||
{
|
{
|
||||||
$this->db = $GLOBALS['phpgw']->db;
|
$this->db = $GLOBALS['phpgw']->db;
|
||||||
if($account_id != '')
|
if (!($this->account_id = intval($account_id)))
|
||||||
{
|
{
|
||||||
$this->account_id = get_account_id($account_id,$GLOBALS['phpgw_info']['user']['account_id']);
|
$this->account_id = get_account_id($account_id,$GLOBALS['phpgw_info']['user']['account_id']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function list_methods($_type='xmlrpc')
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
This handles introspection or discovery by the logged in client,
|
||||||
|
in which case the input might be an array. The server always calls
|
||||||
|
this function to fill the server dispatch map using a string.
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (is_array($_type))
|
||||||
|
{
|
||||||
|
$_type = $_type['type'] ? $_type['type'] : $_type[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
switch($_type)
|
||||||
|
{
|
||||||
|
case 'xmlrpc':
|
||||||
|
$xml_functions = array(
|
||||||
|
'read_repository' => array(
|
||||||
|
'function' => 'read_repository',
|
||||||
|
'signature' => array(array(xmlrpcStruct)),
|
||||||
|
'docstring' => lang('FIXME!')
|
||||||
|
),
|
||||||
|
'get_rights' => array(
|
||||||
|
'function' => 'get_rights',
|
||||||
|
'signature' => array(array(xmlrpcStruct,xmlrpcStruct)),
|
||||||
|
'docstring' => lang('FIXME!')
|
||||||
|
|
||||||
|
),
|
||||||
|
'list_methods' => array(
|
||||||
|
'function' => 'list_methods',
|
||||||
|
'signature' => array(array(xmlrpcStruct,xmlrpcString)),
|
||||||
|
'docstring' => lang('Read this list of methods.')
|
||||||
|
)
|
||||||
|
);
|
||||||
|
return $xml_functions;
|
||||||
|
break;
|
||||||
|
case 'soap':
|
||||||
|
return $this->soap_functions;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return array();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**************************************************************************\
|
/**************************************************************************\
|
||||||
* These are the standard $this->account_id specific functions *
|
* These are the standard $this->account_id specific functions *
|
||||||
\**************************************************************************/
|
\**************************************************************************/
|
||||||
@ -83,6 +128,13 @@
|
|||||||
*/
|
*/
|
||||||
function read_repository()
|
function read_repository()
|
||||||
{
|
{
|
||||||
|
// For some reason, calling this via XML-RPC doesn't call the constructor.
|
||||||
|
// Here is yet another work around(tm) (jengo)
|
||||||
|
if (! $this->account_id)
|
||||||
|
{
|
||||||
|
$this->acl();
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'select * from phpgw_acl where (acl_account in ('.$this->account_id.', 0';
|
$sql = 'select * from phpgw_acl where (acl_account in ('.$this->account_id.', 0';
|
||||||
|
|
||||||
$groups = $this->get_location_list_for_id('phpgw_group', 1, $this->account_id);
|
$groups = $this->get_location_list_for_id('phpgw_group', 1, $this->account_id);
|
||||||
@ -223,6 +275,14 @@
|
|||||||
*/
|
*/
|
||||||
function get_rights($location,$appname = False)
|
function get_rights($location,$appname = False)
|
||||||
{
|
{
|
||||||
|
// For XML-RPC, change this once its working correctly for passing parameters (jengo)
|
||||||
|
if (is_array($location))
|
||||||
|
{
|
||||||
|
$a = $location;
|
||||||
|
$location = $a['location'];
|
||||||
|
$appname = $a['appname'];
|
||||||
|
}
|
||||||
|
|
||||||
if (count($this->data) == 0)
|
if (count($this->data) == 0)
|
||||||
{
|
{
|
||||||
$this->read_repository();
|
$this->read_repository();
|
||||||
@ -251,6 +311,7 @@
|
|||||||
{
|
{
|
||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
|
|
||||||
$rights |= $this->data[$idx]['rights'];
|
$rights |= $this->data[$idx]['rights'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user