43 lines
2.2 KiB
Python
43 lines
2.2 KiB
Python
import json
|
|
from odoo import http
|
|
from odoo.http import request, Response
|
|
import logging
|
|
# from ..until import base
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
class YuThonPhone(http.Controller):
|
|
|
|
@http.route('/phone/login/v1', type='http', auth="public", csrf=False, cors='*')
|
|
def ro_base_user_login_v1(self, **kw):
|
|
"""
|
|
手机端登录
|
|
"""
|
|
_logger.info("-----/phone/login/v1---接口收到响应-------")
|
|
login = kw.get('login')
|
|
password = kw.get('password')
|
|
try:
|
|
# 验证当前数据库中的用户和密码是否存在,如果存在是当前登录用户
|
|
uid = request.session.authenticate(request.env.cr.dbname, login, password)
|
|
except Exception as e:
|
|
_logger.info(f"接口登录失败: {e}")
|
|
# 如果不存在验证其他角色,是否为承租方
|
|
property_tenant_information = request.env['property.tenant.information'].sudo().search([('phone', '=', login)])
|
|
if not property_tenant_information:
|
|
return_data = {'data': {}, 'code': 401, 'message': '用户名或密码错误'}
|
|
else:
|
|
return_data = {'data': {'name': property_tenant_information.name, 'id': property_tenant_information.id,
|
|
'phone': property_tenant_information.phone,
|
|
'access': ['物业账单']}, 'code': 200, 'message': '用户名或密码错误'}
|
|
return json.dumps(return_data)
|
|
user_id = request.env['res.users'].sudo().browse(uid)
|
|
token = base.set_token(user_id.id, user_id.name)
|
|
employee_id = user_id.with_company(user_id.company_id.id).employee_id
|
|
applet_security_setting_ids = request.env['applet.security'].search([('employee_id', '=', employee_id.id)]).applet_security_setting_ids
|
|
access_list = [access.name for access in applet_security_setting_ids] + ['日程']
|
|
data = {'name': employee_id.name, 'id': user_id.id, 'access': access_list, 'phone': employee_id.mobile_phone, 'token': token}
|
|
_logger.info(f"接口人{employee_id.name}权限{access_list}__用户id: {user_id}________")
|
|
return json.dumps({'data': data, 'code': 200, 'message': ''})
|
|
|