|
|
@ -1,19 +1,19 @@ |
|
|
|
import frappe |
|
|
|
import time |
|
|
|
from frappe.model.document import Document |
|
|
|
import json |
|
|
|
import requests |
|
|
|
import re |
|
|
|
from frappe.utils import now |
|
|
|
import time |
|
|
|
import xml.etree.ElementTree as ET |
|
|
|
from copy import copy |
|
|
|
|
|
|
|
import frappe |
|
|
|
import requests |
|
|
|
from frappe.utils import now |
|
|
|
|
|
|
|
current_db_name = frappe.conf.get("db_name") |
|
|
|
|
|
|
|
|
|
|
|
# Temporary Login |
|
|
|
@frappe.whitelist(allow_guest=True) |
|
|
|
def app_user_validation_test(): |
|
|
|
dicData= {} |
|
|
|
dicData = {} |
|
|
|
try: |
|
|
|
doc = frappe.get_doc("Fish", None) |
|
|
|
dicData['token'] = doc.apple |
|
|
@ -22,24 +22,19 @@ def app_user_validation_test(): |
|
|
|
return {'status': 0, 'error': 'Site Error'} |
|
|
|
return dicData |
|
|
|
|
|
|
|
|
|
|
|
@frappe.whitelist(allow_guest=True) |
|
|
|
def app_user_validation(usr=None, pwd=None): |
|
|
|
val=input_validation(usr=usr,pwd=pwd) |
|
|
|
if val!='': |
|
|
|
|
|
|
|
val = input_validation(usr=usr, pwd=pwd) |
|
|
|
if val != '': |
|
|
|
return {'status': 0, 'error': "Parameter's missing: " + val} |
|
|
|
|
|
|
|
# if usr == None and pwd == None: |
|
|
|
# return {'status': 0, 'error': "Parameter's missing: Usr & pwd"} |
|
|
|
# if usr == None: |
|
|
|
# return {'status': 0, 'error': "Parameter missing: Usr"} |
|
|
|
# if pwd == None: |
|
|
|
# return {'status': 0, 'error': "Parameter missing: Pwd"} |
|
|
|
|
|
|
|
preference = frappe.get_last_doc('App Preference') |
|
|
|
mahindra_login = preference.mahindra_login_api |
|
|
|
technician_login = preference.technician_login_api |
|
|
|
|
|
|
|
# ISmartAuth API - Email available |
|
|
|
|
|
|
|
try: |
|
|
|
data = {'LoginID': usr, 'Password': pwd} |
|
|
|
headers = {"Content-Type": "application/x-www-form-urlencoded"} |
|
|
@ -92,8 +87,6 @@ def app_user_validation(usr=None, pwd=None): |
|
|
|
"EmailId": "{}@email.com".format(usr), |
|
|
|
"isLDAPAuthenticated": ""} |
|
|
|
|
|
|
|
success_msg = None |
|
|
|
user_name = None |
|
|
|
msgDic = {} |
|
|
|
|
|
|
|
try: |
|
|
@ -142,8 +135,6 @@ def app_user_validation(usr=None, pwd=None): |
|
|
|
"EmailId": "{}@mahindra.com".format(usr), |
|
|
|
"isLDAPAuthenticated": ""} |
|
|
|
|
|
|
|
success_msg = None |
|
|
|
user_name = None |
|
|
|
msgDic = {} |
|
|
|
if len(decoded) > 165: |
|
|
|
da = re.search("{", decoded) |
|
|
@ -176,25 +167,13 @@ def app_user_validation(usr=None, pwd=None): |
|
|
|
return {'status': 0, 'error': 'Site Error'} |
|
|
|
|
|
|
|
|
|
|
|
def xml_to_dict(node): |
|
|
|
return {'tag': node.tag, 'text': node.text, 'attrib': node.attrib, |
|
|
|
'children': {child.tag: xml_to_dict(child) for child in node}} |
|
|
|
|
|
|
|
|
|
|
|
@frappe.whitelist() |
|
|
|
@frappe.whitelist(allow_guest=True) |
|
|
|
def grant_user_access(userdata=None, iid=None): |
|
|
|
val = input_validation(userdata=userdata,iid=iid) |
|
|
|
val = input_validation(userdata=userdata, iid=iid) |
|
|
|
if val != '': |
|
|
|
return {'status': 0, 'error': "Parameter's missing: " + val} |
|
|
|
# if userdata == None and iid == None: |
|
|
|
# return {'status': 0, 'error': "Parameter's missing: userdata & iid"} |
|
|
|
# if userdata == None: |
|
|
|
# return {'status': 0, 'error': "Parameter missing: userdata"} |
|
|
|
# if iid == None: |
|
|
|
# return {'status': 0, 'error': "Parameter missing: iid"} |
|
|
|
|
|
|
|
try: |
|
|
|
user_details = {} |
|
|
|
userdata = json.loads(userdata) |
|
|
|
user_id = userdata['ID'] |
|
|
|
email = userdata['EmailId'] |
|
|
@ -203,19 +182,335 @@ def grant_user_access(userdata=None, iid=None): |
|
|
|
login_name = userdata['LoginName'] |
|
|
|
user_active_status = userdata['IsActive'] |
|
|
|
|
|
|
|
user_type_desc = userdata['UserTypeDesc'] |
|
|
|
skill_id = userdata['SkillID'] |
|
|
|
skill_name = userdata['SkillName'] |
|
|
|
|
|
|
|
area_name = userdata['AreaName'] |
|
|
|
zone = userdata['Zone'] |
|
|
|
dealer_code = userdata['Code'] |
|
|
|
|
|
|
|
dealer_name = userdata['DealerName'] |
|
|
|
|
|
|
|
app_current_version = userdata['AppCurrentVersion'] |
|
|
|
device_id = userdata['DeviceID'] |
|
|
|
device_type = userdata['DeviceType'] |
|
|
|
os = userdata['Os'] |
|
|
|
os_version = userdata['OsVersion'] |
|
|
|
|
|
|
|
latitude = userdata['latitude'] |
|
|
|
longitude = userdata['longitude'] |
|
|
|
|
|
|
|
user_type = userdata['UserType'] |
|
|
|
user_type_desc = userdata['UserTypeDesc'] |
|
|
|
# User validation |
|
|
|
frappe.set_user("Administrator") |
|
|
|
user_name = frappe.db.sql('''SELECT name FROM {0}.tabUser where email='{1}';'''.format(current_db_name,email),as_dict=1) |
|
|
|
# return user_name |
|
|
|
if user_name: |
|
|
|
token = generate_keys(user_name[0]['name']) |
|
|
|
else: |
|
|
|
user = frappe.new_doc('User') |
|
|
|
user.email = email |
|
|
|
user.first_name = first_name |
|
|
|
user.enabled = 1 |
|
|
|
user.send_welcome_email = 0 |
|
|
|
role = user.append('roles', {}) |
|
|
|
role.role = "_AppUser" |
|
|
|
user.insert(ignore_permissions=True) |
|
|
|
|
|
|
|
user_name = frappe.db.sql('''SELECT name FROM {0}.tabUser where email='{1}';'''.format(current_db_name,email),as_dict=1) |
|
|
|
if user_name: |
|
|
|
token = generate_keys(user_name[0]['name']) |
|
|
|
# return token |
|
|
|
|
|
|
|
'''Inserting Dealer Data''' |
|
|
|
if frappe.db.exists({'doctype': 'App Dealer', 'dealer_code': dealer_code}): |
|
|
|
dealer = frappe.get_doc({'doctype': 'App Dealer', 'dealer_code': dealer_code}) |
|
|
|
else: |
|
|
|
dealer = frappe.new_doc('App Dealer') |
|
|
|
dealer.dealer_code = dealer_code |
|
|
|
dealer.dealer_name = dealer_name |
|
|
|
dealer.zone = zone |
|
|
|
dealer.area = area_name |
|
|
|
dealer.active_status = user_active_status |
|
|
|
dealer.save() |
|
|
|
dealer = frappe.get_doc({'doctype': 'App Dealer', 'dealer_code': dealer_code}) |
|
|
|
|
|
|
|
'''Inserting User data''' |
|
|
|
app_dealer1 = frappe.get_last_doc('App Dealer', filters={"dealer_code": dealer_code}) |
|
|
|
if frappe.db.exists({'doctype': 'App Users', 'email_id': email}): |
|
|
|
app_user = frappe.get_doc({'doctype': 'App Users', 'email_id': email}) |
|
|
|
else: |
|
|
|
app_user = frappe.new_doc('App Users') |
|
|
|
app_user.email_id = email |
|
|
|
app_user.user_id = user_id |
|
|
|
app_user.dealer = app_dealer1.name |
|
|
|
app_user.login_name = login_name |
|
|
|
app_user.user_type = user_type_desc |
|
|
|
app_user.first_name = first_name |
|
|
|
app_user.last_name = last_name |
|
|
|
app_user.skill_id = skill_id |
|
|
|
app_user.skill_name = skill_name |
|
|
|
app_user.active_status = user_active_status |
|
|
|
app_user.save() |
|
|
|
|
|
|
|
'''Inserting Device data''' |
|
|
|
if iid == 'None' or iid == 'null': |
|
|
|
app_device = frappe.new_doc('App Device') |
|
|
|
app_device.device_id = device_id |
|
|
|
app_device.publish_type = "Global" |
|
|
|
app_device.device_type = device_type |
|
|
|
app_device.os = os |
|
|
|
app_device.os_version = os_version |
|
|
|
app_device.app_current_version = app_current_version |
|
|
|
app_device.last_login = now() |
|
|
|
app_device.insert() |
|
|
|
|
|
|
|
if frappe.db.exists({'doctype': 'App Device', 'device_id': device_id}): |
|
|
|
frappe.db.sql( |
|
|
|
'''UPDATE {2}.`tabApp Device` SET active_status= "{1}" where device_id = "{0}";'''.format(device_id, |
|
|
|
"Inactive", |
|
|
|
current_db_name)) |
|
|
|
frappe.db.commit() |
|
|
|
time.sleep(1) |
|
|
|
app_user1 = frappe.get_last_doc('App Users', filters={"email_id": email}) |
|
|
|
app_device1 = frappe.get_last_doc('App Device', filters={"device_id": device_id}) |
|
|
|
|
|
|
|
app_logs = frappe.new_doc('App Log') |
|
|
|
app_logs.user = app_user1.name |
|
|
|
app_logs.device = app_device.name |
|
|
|
app_logs.type = 'Reinstalled' |
|
|
|
app_logs.latitude = latitude |
|
|
|
app_logs.longitude = longitude |
|
|
|
# app_logs.active_status = 'Active' |
|
|
|
app_logs.date_time_stamp = now() |
|
|
|
app_logs.insert() |
|
|
|
|
|
|
|
app_device_tmp = frappe.get_last_doc('App Device', filters={"device_id": device_id}) |
|
|
|
frappe.db.sql('''UPDATE {2}.`tabApp Device` SET active_status= "{1}" where name = "{0}";'''.format( |
|
|
|
app_device_tmp.name, "Active", current_db_name)) |
|
|
|
frappe.db.commit() |
|
|
|
|
|
|
|
app_logs3 = frappe.new_doc('App Log') |
|
|
|
app_logs3.user = app_user1.name |
|
|
|
app_logs3.device = app_device.name |
|
|
|
app_logs3.type = 'Logged in' |
|
|
|
app_logs3.latitude = latitude |
|
|
|
app_logs3.longitude = longitude |
|
|
|
app_logs3.date_time_stamp = now() |
|
|
|
app_logs3.insert() |
|
|
|
|
|
|
|
else: |
|
|
|
app_user1 = frappe.get_last_doc('App Users', filters={"email_id": email}) |
|
|
|
app_device1 = frappe.get_last_doc('App Device', filters={"device_id": device_id}) |
|
|
|
app_logs = frappe.new_doc('App Log') |
|
|
|
app_logs.user = app_user1.name |
|
|
|
app_logs.device = app_device.name |
|
|
|
app_logs.type = 'Installed' |
|
|
|
# app_logs.active_status = 'Active' |
|
|
|
app_logs.latitude = latitude |
|
|
|
app_logs.longitude = longitude |
|
|
|
app_logs.date_time_stamp = now() |
|
|
|
app_logs.save() |
|
|
|
|
|
|
|
app_logs4 = frappe.new_doc('App Log') |
|
|
|
app_logs4.user = app_user1.name |
|
|
|
app_logs4.device = app_device.name |
|
|
|
app_logs4.type = 'Logged in' |
|
|
|
app_logs4.latitude = latitude |
|
|
|
app_logs4.longitude = longitude |
|
|
|
app_logs4.date_time_stamp = now() |
|
|
|
app_logs4.save() |
|
|
|
|
|
|
|
else: |
|
|
|
# frappe.db.sql( |
|
|
|
# '''UPDATE {4}.`tabApp Device` set last_login= '{0}', user_name = '{2}', device_type = '{3}' where name = "{1}";'''.format( |
|
|
|
# now(), iid, email, user_type_desc, current_db_name)) |
|
|
|
frappe.db.sql( |
|
|
|
'''UPDATE {3}.`tabApp Device` set last_login= '{0}', device_type = '{2}' where name = "{1}";'''.format( |
|
|
|
now(), iid, device_type, current_db_name)) |
|
|
|
frappe.db.commit() |
|
|
|
app_user2 = frappe.get_last_doc('App Users', filters={"email_id": email}) |
|
|
|
app_logs = frappe.new_doc('App Log') |
|
|
|
app_logs.user = app_user2.name |
|
|
|
app_logs.device = iid |
|
|
|
app_logs.type = 'Logged in' |
|
|
|
app_logs.latitude = latitude |
|
|
|
app_logs.longitude = longitude |
|
|
|
app_logs.date_time_stamp = now() |
|
|
|
app_logs.save() |
|
|
|
|
|
|
|
lst = frappe.db.sql( |
|
|
|
'''SELECT name FROM {}.`tabApp Device` where device_id = "{}" order by name desc limit 1;'''.format( |
|
|
|
current_db_name, device_id), as_list=True) |
|
|
|
lst1 = frappe.db.sql( |
|
|
|
'''SELECT name FROM {}.`tabApp Users` where email_id = "{}" order by name desc limit 1;'''.format( |
|
|
|
current_db_name, email), as_list=True) |
|
|
|
|
|
|
|
user_details = {} |
|
|
|
user_details['Installation ID'] = lst[0][0] |
|
|
|
user_details['User ID'] = lst1[0][0] |
|
|
|
user_details['token'] = token |
|
|
|
return user_details |
|
|
|
|
|
|
|
except Exception as e1: |
|
|
|
return {'status': 0, 'error': e1} |
|
|
|
|
|
|
|
@frappe.whitelist(allow_guest=True) |
|
|
|
def new_app_user_validation(usr=None, pwd=None,iid=None,device_data=None): |
|
|
|
val = input_validation(usr=usr, pwd=pwd,iid=iid,device_data=device_data) |
|
|
|
if val != '': |
|
|
|
return {'status': 0, 'error': "Parameter's missing: " + val} |
|
|
|
|
|
|
|
preference = frappe.get_last_doc('App Preference') |
|
|
|
mahindra_login = preference.mahindra_login_api |
|
|
|
technician_login = preference.technician_login_api |
|
|
|
|
|
|
|
# ISmartAuth API - Email available |
|
|
|
device_data = json.loads(device_data) |
|
|
|
try: |
|
|
|
data = {'LoginID': usr, 'Password': pwd} |
|
|
|
headers = {"Content-Type": "application/x-www-form-urlencoded"} |
|
|
|
if technician_login == 1 and mahindra_login == 0: |
|
|
|
response = requests.post( |
|
|
|
"http://www.mahindramile.com/ISmartAuth/Service.asmx/ValidateCredential", data=data, headers=headers) |
|
|
|
decoded = response.content.decode('utf-8') |
|
|
|
|
|
|
|
if len(decoded) > 165: |
|
|
|
frappe.set_user("Administrator") |
|
|
|
da = re.search("{", decoded) |
|
|
|
da1 = re.search("}", decoded) |
|
|
|
trunData = decoded[da.span()[0]:da1.span()[1]] |
|
|
|
|
|
|
|
dicData = json.loads(trunData) |
|
|
|
if dicData['ID'] == "": |
|
|
|
dicData['ID'] = "100" |
|
|
|
dicData.update(device_data) |
|
|
|
|
|
|
|
return new_grant_user_access(dicData,iid) |
|
|
|
else: |
|
|
|
return {'status': 0, 'error': 'Invalid Credentials'} |
|
|
|
|
|
|
|
elif technician_login == 0 and mahindra_login == 1: |
|
|
|
response1 = requests.post("http://www.mahindramile.com/WindowAuth/Service.asmx/ValidateCredential", |
|
|
|
data=data, headers=headers) |
|
|
|
decoded1 = response1.content.decode('utf-8') |
|
|
|
node = ET.fromstring(decoded1) |
|
|
|
dictValue = xml_to_dict(node) |
|
|
|
frappe.set_user("Administrator") |
|
|
|
dicData = { |
|
|
|
"ID": "{}@email.com".format(usr), |
|
|
|
"LoginName": usr, |
|
|
|
"FirstName": usr, |
|
|
|
"LastName": "", |
|
|
|
"IsActive": "True", |
|
|
|
"UserType": "", |
|
|
|
"SkillID": "", |
|
|
|
"SkillName": "", |
|
|
|
"UserTypeDesc": "", |
|
|
|
"PasswordChanged": "", |
|
|
|
"AreaName": "", |
|
|
|
"Zone": "", |
|
|
|
"Code": "", |
|
|
|
"LocationName": "", |
|
|
|
"ChannelNo": "", |
|
|
|
"ServerDate": "", |
|
|
|
"ServerTime": "", |
|
|
|
"DealerName": "", |
|
|
|
"EmailId": "{}@email.com".format(usr), |
|
|
|
"isLDAPAuthenticated": ""} |
|
|
|
dicData.update(device_data) |
|
|
|
msgDic = {} |
|
|
|
|
|
|
|
try: |
|
|
|
msgDic['UserName'] = dictValue['children']['UserName']['text'] |
|
|
|
msgDic['IsSuccessfull'] = dictValue['children']['IsSuccessfull']['text'] |
|
|
|
if dicData['ID'] == "": |
|
|
|
dicData['ID'] = "100" |
|
|
|
return new_grant_user_access(dicData,iid) |
|
|
|
|
|
|
|
except: |
|
|
|
msgDic['IsSuccessfull'] = node.text |
|
|
|
return {'status': 0, 'error': 'Invalid Credentials'} |
|
|
|
|
|
|
|
elif technician_login == 1 and mahindra_login == 1: |
|
|
|
response = requests.post( |
|
|
|
"http://www.mahindramile.com/ISmartAuth/Service.asmx/ValidateCredential", data=data, headers=headers) |
|
|
|
decoded = response.content.decode('utf-8') |
|
|
|
|
|
|
|
response1 = requests.post("http://www.mahindramile.com/WindowAuth/Service.asmx/ValidateCredential", |
|
|
|
data=data, headers=headers) |
|
|
|
decoded1 = response1.content.decode('utf-8') |
|
|
|
node = ET.fromstring(decoded1) |
|
|
|
dictValue = xml_to_dict(node) |
|
|
|
|
|
|
|
dicData = { |
|
|
|
"ID": "", |
|
|
|
"LoginName": usr, |
|
|
|
"FirstName": usr, |
|
|
|
"LastName": "", |
|
|
|
"IsActive": "True", |
|
|
|
"UserType": "", |
|
|
|
"SkillID": "", |
|
|
|
"SkillName": "", |
|
|
|
"UserTypeDesc": "Mahindra User", |
|
|
|
"PasswordChanged": "", |
|
|
|
"AreaName": "Mahindra", |
|
|
|
"Zone": "Mahindra", |
|
|
|
"LocationName": "Mahindra", |
|
|
|
"ChannelNo": "", |
|
|
|
"ServerDate": "", |
|
|
|
"ServerTime": "", |
|
|
|
"DealerName": "Mahindra", |
|
|
|
"EmailId": "{}@mahindra.com".format(usr), |
|
|
|
"isLDAPAuthenticated": ""} |
|
|
|
|
|
|
|
msgDic = {} |
|
|
|
if len(decoded) > 165: |
|
|
|
frappe.set_user("Administrator") |
|
|
|
da = re.search("{", decoded) |
|
|
|
da1 = re.search("}", decoded) |
|
|
|
trunData = decoded[da.span()[0]:da1.span()[1]] |
|
|
|
dicData = json.loads(trunData) |
|
|
|
dicData['Code'] = "" |
|
|
|
if dicData['ID'] == "": |
|
|
|
dicData['ID'] = "100" |
|
|
|
|
|
|
|
dicData.update(device_data) |
|
|
|
return new_grant_user_access(dicData,iid) |
|
|
|
|
|
|
|
else: |
|
|
|
frappe.set_user("Administrator") |
|
|
|
msgDic['UserName'] = dictValue['children']['UserName']['text'] |
|
|
|
msgDic['IsSuccessfull'] = dictValue['children']['IsSuccessfull']['text'] |
|
|
|
if dicData['ID'] == "": |
|
|
|
dicData['ID'] = "100" |
|
|
|
dicData['Code'] = '' |
|
|
|
dicData.update(device_data) |
|
|
|
return new_grant_user_access(dicData,iid) |
|
|
|
|
|
|
|
else: |
|
|
|
return {'status': 0, 'error': 'Login Blocked'} |
|
|
|
except: |
|
|
|
return {'status': 0, 'error': 'Site Error'} |
|
|
|
|
|
|
|
|
|
|
|
def new_grant_user_access(userdata=None, iid=None): |
|
|
|
try: |
|
|
|
user_id = userdata['ID'] |
|
|
|
email = userdata['EmailId'] |
|
|
|
first_name = userdata['FirstName'] |
|
|
|
last_name = userdata['LastName'] |
|
|
|
login_name = userdata['LoginName'] |
|
|
|
user_active_status = userdata['IsActive'] |
|
|
|
|
|
|
|
user_type_desc = userdata['UserTypeDesc'] |
|
|
|
skill_id = userdata['SkillID'] |
|
|
|
skill_name = userdata['SkillName'] |
|
|
|
|
|
|
|
area_name = userdata['AreaName'] |
|
|
|
zone = userdata['Zone'] |
|
|
|
dealer_code = userdata['Code'] |
|
|
|
location_name = userdata['LocationName'] |
|
|
|
|
|
|
|
dealer_name = userdata['DealerName'] |
|
|
|
|
|
|
|
app_current_version = userdata['AppCurrentVersion'] |
|
|
@ -224,6 +519,29 @@ def grant_user_access(userdata=None, iid=None): |
|
|
|
os = userdata['Os'] |
|
|
|
os_version = userdata['OsVersion'] |
|
|
|
|
|
|
|
latitude = userdata['latitude'] |
|
|
|
longitude = userdata['longitude'] |
|
|
|
|
|
|
|
# User validation |
|
|
|
frappe.set_user("Administrator") |
|
|
|
user_name = frappe.db.sql('''SELECT name FROM {0}.tabUser where email='{1}';'''.format(current_db_name,email),as_dict=1) |
|
|
|
|
|
|
|
if user_name: |
|
|
|
token = generate_keys(user_name[0]['name']) |
|
|
|
else: |
|
|
|
user = frappe.new_doc('User') |
|
|
|
user.email = email |
|
|
|
user.first_name = first_name |
|
|
|
user.enabled = 1 |
|
|
|
user.send_welcome_email = 0 |
|
|
|
role = user.append('roles', {}) |
|
|
|
role.role = "_AppUser" |
|
|
|
user.insert(ignore_permissions=True) |
|
|
|
|
|
|
|
user_name = frappe.db.sql('''SELECT name FROM {0}.tabUser where email='{1}';'''.format(current_db_name,email),as_dict=1) |
|
|
|
if user_name: |
|
|
|
token = generate_keys(user_name[0]['name']) |
|
|
|
|
|
|
|
'''Inserting Dealer Data''' |
|
|
|
if frappe.db.exists({'doctype': 'App Dealer', 'dealer_code': dealer_code}): |
|
|
|
dealer = frappe.get_doc({'doctype': 'App Dealer', 'dealer_code': dealer_code}) |
|
|
@ -270,8 +588,8 @@ def grant_user_access(userdata=None, iid=None): |
|
|
|
if frappe.db.exists({'doctype': 'App Device', 'device_id': device_id}): |
|
|
|
frappe.db.sql( |
|
|
|
'''UPDATE {2}.`tabApp Device` SET active_status= "{1}" where device_id = "{0}";'''.format(device_id, |
|
|
|
"Inactive", |
|
|
|
current_db_name)) |
|
|
|
"Inactive", |
|
|
|
current_db_name)) |
|
|
|
frappe.db.commit() |
|
|
|
time.sleep(1) |
|
|
|
app_user1 = frappe.get_last_doc('App Users', filters={"email_id": email}) |
|
|
@ -341,54 +659,24 @@ def grant_user_access(userdata=None, iid=None): |
|
|
|
app_logs.date_time_stamp = now() |
|
|
|
app_logs.save() |
|
|
|
|
|
|
|
''' create user with role system manager ''' |
|
|
|
if frappe.db.exists('User', email): |
|
|
|
# user = frappe.get_doc('User', email) |
|
|
|
docu = frappe.get_doc("Fish", None) |
|
|
|
user_details['token'] = docu.apple |
|
|
|
lst = frappe.db.sql( |
|
|
|
'''SELECT name FROM {}.`tabApp Device` where device_id = "{}" order by name desc limit 1;'''.format( |
|
|
|
current_db_name, device_id), as_list=True) |
|
|
|
lst1 = frappe.db.sql( |
|
|
|
'''SELECT name FROM {}.`tabApp Users` where email_id = "{}" order by name desc limit 1;'''.format( |
|
|
|
current_db_name, email), as_list=True) |
|
|
|
lst = frappe.db.sql( |
|
|
|
'''SELECT name FROM {}.`tabApp Device` where device_id = "{}" order by name desc limit 1;'''.format( |
|
|
|
current_db_name, device_id), as_list=True) |
|
|
|
lst1 = frappe.db.sql( |
|
|
|
'''SELECT name FROM {}.`tabApp Users` where email_id = "{}" order by name desc limit 1;'''.format( |
|
|
|
current_db_name, email), as_list=True) |
|
|
|
|
|
|
|
try: |
|
|
|
user_details['Installation ID'] = lst[0][0] |
|
|
|
user_details['User ID'] = lst1[0][0] |
|
|
|
return user_details |
|
|
|
except Exception as role_error: |
|
|
|
return {'status': 0, 'error': role_error} |
|
|
|
user_details = {} |
|
|
|
user_details['Installation ID'] = lst[0][0] |
|
|
|
user_details['User ID'] = lst1[0][0] |
|
|
|
user_details['token'] = token |
|
|
|
return user_details |
|
|
|
|
|
|
|
else: |
|
|
|
# user = frappe.new_doc('User') |
|
|
|
# user.email = email |
|
|
|
# user.first_name = first_name |
|
|
|
# user.send_welcome_email = 0 |
|
|
|
# user.user_type = 'Website User' |
|
|
|
# user.add_roles('_AppUser') |
|
|
|
# user.save() |
|
|
|
|
|
|
|
docu = frappe.get_doc("Fish", None) |
|
|
|
user_details['token'] = docu.apple |
|
|
|
lst = frappe.db.sql( |
|
|
|
'''SELECT name FROM {}.`tabApp Device` where device_id = "{}" order by creation asc;'''.format( |
|
|
|
current_db_name, device_id), as_list=True) |
|
|
|
lst1 = frappe.db.sql( |
|
|
|
'''SELECT name FROM {}.`tabApp Users` where email_id = "{}" order by creation asc;'''.format( |
|
|
|
current_db_name, email), as_list=True) |
|
|
|
try: |
|
|
|
user_details['Installation ID'] = lst[-1][0] |
|
|
|
user_details['User ID'] = lst1[-1][0] |
|
|
|
return user_details |
|
|
|
except Exception as e: |
|
|
|
return {'status': 0, 'error': e} |
|
|
|
except Exception as e1: |
|
|
|
return {'status': 0, 'error': e1 } |
|
|
|
return {'status': 0, 'error': e1} |
|
|
|
|
|
|
|
|
|
|
|
def generate_keys(user): |
|
|
|
user_details = frappe.get_doc('User', user) |
|
|
|
def generate_keys(user_name): |
|
|
|
user_details = frappe.get_doc('User', user_name) |
|
|
|
api_secret = frappe.generate_hash(length=15) |
|
|
|
if not user_details.api_key: |
|
|
|
api_key = frappe.generate_hash(length=15) |
|
|
@ -418,3 +706,8 @@ def input_validation(**kwargs): |
|
|
|
sts += str(key) + "" |
|
|
|
i += 1 |
|
|
|
return sts |
|
|
|
|
|
|
|
|
|
|
|
def xml_to_dict(node): |
|
|
|
return {'tag': node.tag, 'text': node.text, 'attrib': node.attrib, |
|
|
|
'children': {child.tag: xml_to_dict(child) for child in node}} |
|
|
|