2011-02-14 07:03:50 +00:00
|
|
|
|
|
|
|
import hashlib
|
|
|
|
from sugarsoap_services import *
|
2011-02-17 07:21:42 +00:00
|
|
|
from sugarsoap_services_types import *;
|
2011-02-14 07:03:50 +00:00
|
|
|
|
2011-02-17 07:21:42 +00:00
|
|
|
import sys;
|
2011-02-14 07:03:50 +00:00
|
|
|
|
2011-02-17 07:21:42 +00:00
|
|
|
class LoginError(Exception): pass
|
2011-02-14 07:03:50 +00:00
|
|
|
|
2011-02-17 07:21:42 +00:00
|
|
|
def login(username, password):
|
|
|
|
loc = sugarsoapLocator();
|
|
|
|
|
|
|
|
portType = loc.getsugarsoapPortType();
|
|
|
|
request = loginRequest();
|
|
|
|
uauth = ns0.user_auth_Def(request);
|
|
|
|
request._user_auth = uauth;
|
|
|
|
|
|
|
|
uauth._user_name = username;
|
|
|
|
uauth._password = hashlib.md5(password).hexdigest();
|
|
|
|
uauth._version = '1.1';
|
|
|
|
|
|
|
|
response = portType.login(request);
|
|
|
|
if -1 == response._return._id:
|
|
|
|
raise LoginError(response._return._error._description);
|
|
|
|
return (portType, response._return._id);
|
|
|
|
|
|
|
|
def search(portType, sessionid, module_name=None):
|
|
|
|
se_req = get_entry_listRequest();
|
|
|
|
se_req._session = sessionid
|
|
|
|
se_req._module_name = module_name
|
|
|
|
se_resp = portType.get_entry_list(se_req);
|
|
|
|
list = se_resp._return._entry_list;
|
|
|
|
ans_list = []
|
|
|
|
for i in list:
|
|
|
|
ans_dir = {};
|
|
|
|
for j in i._name_value_list:
|
|
|
|
ans_dir[j._name.encode('utf-8')] = j._value.encode('utf-8')
|
2011-02-14 07:03:50 +00:00
|
|
|
#end for
|
2011-02-17 07:21:42 +00:00
|
|
|
ans_list.append(ans_dir);
|
|
|
|
#end for
|
|
|
|
return ans_list;
|
2011-02-14 07:03:50 +00:00
|
|
|
|