def selfcare_change_password(self, **kw): """ Change password of a user . :param kw: :return: view for change_password """ context = {} success_msg = '' content_header = "Change Password" template = "isp_crm_module.template_selfcare_login_main" template_name = True logged_in_user = "" if self._redirect_if_not_login(req=request): template = "isp_crm_module.template_selfcare_change_user_password" user_id = request.env.context.get('uid') logged_in_user = request.env['res.users'].sudo().browse(user_id) if request.httprequest.method == 'POST': old_password = request.params['old_password'] new_password = request.params['new_password'] confirm_new_password = request.params['confirm_new_password'] find_user = request.env['res.users'].sudo()._login( 'isp_crm_customer_profile', logged_in_user.login, old_password) if new_password == old_password: if find_user: context['error'] = _( "New Password is same as Old Password.") else: context['error'] = _("Old Password does not match .") elif new_password == confirm_new_password: if find_user: logged_in_user._set_password(new_password) request.session.logout(keep_db=True) redirect = self.DEFAULT_LOGIN_ROUTE return request.redirect(redirect) else: context['error'] = _("Old Password does not match .") else: context['error'] = _( "Confirmed*** with the New Password. Please try again." ) context['csrf_token'] = request.csrf_token() context['user'] = logged_in_user context['full_name'] = logged_in_user.name.title() context['customer_id'] = logged_in_user.subscriber_id context['content_header'] = content_header return request.render(template, context) context['csrf_token'] = request.csrf_token() context['user'] = logged_in_user context['full_name'] = logged_in_user.name.title() context['customer_id'] = logged_in_user.subscriber_id context['content_header'] = content_header return request.render(template, context)
def index(self, **kw): """跳转至支付宝付款页面""" kw["csrf_token"] = request.csrf_token() kw["notify_url"] = self._notify_url alipay = request.env["payment.acquirer"].sudo().search( [('provider', '=', 'alipay')], limit=1) return redirect_with_hash(alipay._get_alipay_url(kw))
def selfcare_change_package_get(self, **kw): """ Creates tickets for changing the plans :param kw: :return: view for showing the plans list """ context = {} content_header = "Packages List" template = "isp_crm_module.template_selfcare_login_main" template_name = True products = [] if self._redirect_if_not_login(req=request): template = "isp_crm_module.template_selfcare_user_package_list" user_id = request.env.context.get('uid') logged_in_user = request.env['res.users'].sudo().browse(user_id) product_cat_obj = request.env['product.category'].sudo().search( [('name', '=', self.DEFAULT_PRODUCT_CATEGORY)], limit=1) products = request.env['product.product'].sudo().search([ ('categ_id', '=', product_cat_obj.id) ]) description = "" success_msg = "" context['csrf_token'] = request.csrf_token() context['user'] = logged_in_user context['partner'] = logged_in_user.partner_id context['full_name'] = logged_in_user.name.title() context['customer_id'] = logged_in_user.subscriber_id context['content_header'] = content_header context['products'] = products context['success_msg'] = success_msg return request.render(template, context)
def login(self, login, password, db=None): if db and db != request.db: raise Exception(_("Could not select database '%s'") % db) uid = request.session.authenticate(request.db, login, password) if not uid: return Response(response="Wrong login/password", status=401) return Response(headers={ 'X-CSRF-TOKEN': request.csrf_token(), })
def login(self, login, password, db=None): if db and db != request.db: raise Exception(_("Could not select database '%s'") % db) uid = request.session.authenticate(request.db, login, password) if not uid: return Response(response="Wrong login/password", status=401) self.check_user(uid) return Response(headers={ 'X-CSRF-TOKEN': request.csrf_token(), })
def slide_get_value(self, slide_id): csrf_token = request.csrf_token() slide = request.env['slide.slide'].browse(slide_id) if slide: values = {'slide': self._get_slide_values(slide), 'csrf_token': csrf_token} if slide.prompt_ids: values.update({ 'slide_prompts': [{ 'id': prompt.id, 'sequence': prompt.sequence, 'question': prompt.question_name, 'response_type': prompt.response_type, 'name': prompt.name, } for prompt in slide.prompt_ids.sorted(key=lambda x: x.id)] }) if slide.response_ids: total_responses = slide.response_ids.filtered(lambda l: l.user_id == request.env.user) values['total_responses'] = [] for ora_response in total_responses: if ora_response.feedback == '<p><br></p>': ora_response.feedback = False values['total_responses'].append(self._get_total_responses(ora_response, slide)) peer_response_ids = request.env['open.response.rubric.staff'].search([ ('user_id', '=', request.env.user.id), ('assess_type', '=', 'peer'), ('response_id.state', 'in', ['submitted', 'assessed']), ('response_id.slide_id', '=', slide.id) ]) values['peer_responses'] = [] for staff_response in peer_response_ids: submitted_date = False if staff_response.submitted_date: submitted_date = staff_response.submitted_date.strftime('%d %B %Y') values['peer_responses'].append(({ 'id': staff_response.response_id.id, 'state': staff_response.state, 'assess_type': staff_response.assess_type, 'user_id': staff_response.user_id.id, 'submitted_date': submitted_date, 'option_ids': [{ 'id': rubric_id.criteria_id.id, 'criterian_name': rubric_id.criteria_id.criterian_name, 'criteria_desc': rubric_id.criteria_desc, 'name': rubric_id.option_id.name, 'criteria_option_point': rubric_id.criteria_option_point, 'criteria_option_desc': rubric_id.criteria_option_desc, 'assess_explanation': rubric_id.assess_explanation, } for rubric_id in staff_response.option_ids], 'user_response_line': [self._get_user_response(user_response_line) for user_response_line in staff_response.response_id.user_response_line] })) return values
def login(self, **args): url = "http://localhost:8000" db = "apidb" username = args.get('username') # username password = args.get('password') # password # self.sessions = request.csrf_token() common = xmlrpclib.ServerProxy('{}/xmlrpc/2/common'.format(url)) uid = common.authenticate(db, username, password, {}) # check user in model models = xmlrpclib.ServerProxy('{}/xmlrpc/2/object'.format(url)) # Adding/Updating the token for session models.execute_kw(db, uid, password, 'res.users', 'write', [[uid], {'session': request.csrf_token()}]) if uid != False : msg = "SUCCESS_LOGIN" else: msg = "LOGIN_FAIL" return {"status": 0, "message": msg, "data": []}
def get_response(url): if not bool(urllib.parse.urlparse(url).netloc): base_url = request.env['ir.config_parameter'].sudo().get_param( 'web.base.url') method, params, path = get_route(url) params.update({'csrf_token': request.csrf_token()}) session = requests.Session() session.cookies['session_id'] = request.session.sid try: response = session.post("%s%s" % (base_url, path), params) return response.status_code, response.headers, response.content except requests.exceptions.RequestException as exception: return exception.response.status_code, exception.response.headers, exception.response.reason else: try: response = requests.get(url) return response.status_code, response.headers, response.content except requests.exceptions.RequestException as exception: return exception.response.status_code, exception.response.headers, exception.response.reason
def get_response(url): _logger.info(url) if not bool(urllib.parse.urlparse(url).netloc): base_url = request.env['ir.config_parameter'].sudo().get_param( 'web.base.url') method, params, path = get_route(url) params.update({'csrf_token': request.csrf_token()}) session = requests.Session() session.cookies['session_id'] = request.session.sid try: response = session.post("%s%s" % (base_url, path), params=params, verify=False) return response.status_code, response.headers, response.content except: _logger.info("Trying custom certificate") custom_cert = config.get("muk_custom_certificate", False) try: _logger.info("Using Certificate: {}".format(custom_cert)) response = session.post("%s%s" % (base_url, path), params=params, verify=custom_cert) return response.status_code, response.headers, response.reason except: try: _logger.info("Custom Certificate didn't work") response = session.post("%s%s" % (base_url, path), params=params, verify=False) return response.status_code, response.headers, response.reason except Exception as e: _logger.exception("Request failed!") return 501, [], str(e) else: try: response = requests.get(url) return response.status_code, response.headers, response.content except requests.exceptions.RequestException as exception: try: return exception.response.status_code, exception.response.headers, exception.response.reason except Exception as e: _logger.exception("Request failed!") return 501, [], str(e)
def selfcare_profile_update(self, **kw): context = {} success_msg = '' content_header = "Update Your Profile" template = "isp_crm_module.template_selfcare_login_main" template_name = True if self._redirect_if_not_login(req=request): template = "isp_crm_module.template_selfcare_user_profile_update" user_id = request.env.context.get('uid') logged_in_user = request.env['res.users'].sudo().browse(user_id) problems = request.env['isp_crm_module.helpdesk_problem'].sudo( ).search([('name', '=', self.DEFAULT_PROFILE_CHANGE_NAME)]) if request.httprequest.method == 'POST': problem_id = request.params['problem_id'] description = request.params['description'] ticket_obj = request.env['isp_crm_module.helpdesk'].sudo( ).search([]) created_ticket = ticket_obj.create({ 'customer': logged_in_user.partner_id.id, 'problem': problem_id, 'description': description, }) success_msg = "Profile Update Ticket has been Created." # TODO (Arif): Sending mail and other things according to SRS context['csrf_token'] = request.csrf_token() context['user'] = logged_in_user context['full_name'] = logged_in_user.name.title() context['customer_id'] = logged_in_user.subscriber_id context['content_header'] = content_header context['problems_list'] = problems context['success_msg'] = success_msg return request.render(template, context)
def authorise_contaazul(self, **kwargs): contaazul_url = 'https://api.contaazul.com/auth/authorize?redirect_uri=%s&client_id=%s&scope=sales&state%s=' % ( request.env.user.company_id.contaazul_client_callback_url, request.env.user.company_id.contaazul_client_id, request.csrf_token()) return request.redirect(contaazul_url)
def csrf_token(self, time_limit=None, **kw): result = {'csrf_token': request.csrf_token(time_limit)} content = json.dumps(result, sort_keys=True, indent=4, cls=ResponseEncoder) return Response(content, content_type='application/json;charset=utf-8', status=200)
def selfcare_change_package(self, package_id=None, **kw): context = {} content_header = "Packages List" template = "isp_crm_module.template_selfcare_login_main" template_name = True products = [] if self._redirect_if_not_login(req=request): template = "isp_crm_module.template_selfcare_user_package_list" user_id = request.env.context.get('uid') logged_in_user = request.env['res.users'].sudo().browse(user_id) product_cat_obj = request.env['product.category'].sudo().search( [('name', '=', self.DEFAULT_PRODUCT_CATEGORY)], limit=1) products = request.env['product.product'].sudo().search([ ('categ_id', '=', product_cat_obj.id) ]) description = "" success_msg = "" active_from = "" if request.httprequest.method == 'POST': package_obj = request.env['product.product'].sudo().search([ ('id', '=', package_id) ]) post_data = request.params pack_change_problem_obj = request.env[ 'isp_crm_module.helpdesk_problem'].sudo().search( [('name', 'like', 'Package Change')], limit=1) description = "Change the plan \nFrom : " + logged_in_user.partner_id.current_package_id.name + "\nTo : " + package_obj.name if post_data[ 'change_package_from'] == self.DEFAULT_CHANGE_FROM: description += "\nFrom Date : " + post_data['date'] active_from = post_data['date'] else: description += "\nFrom Next Bill Cycle." active_from = logged_in_user.partner_id.next_package_start_date # # Create Ticket in Helpdesk (No Need Now) # ticket_type_obj = request.env['isp_crm_module.helpdesk_type'].sudo().search([('name', 'like', 'Package Change')], limit=1) # ticket_obj = request.env['isp_crm_module.helpdesk'].sudo().search([]) # created_ticket = ticket_obj.create({ # 'customer' : logged_in_user.partner_id.id, # 'type' : ticket_type_obj.id, # 'problem' : pack_change_problem_obj.id, # 'description' : description, # }) # # # Creating a Package change obj (No Need Now) # package_change_obj = request.env['isp_crm_module.change_package'].sudo().search([]) # created_package_change = package_change_obj.create({ # 'ticket_ref' : created_ticket.name, # 'customer_id' : logged_in_user.partner_id.id, # 'from_package_id' : logged_in_user.partner_id.current_package_id.id, # 'to_package_id' : package_obj.id, # 'active_from' : active_from # }) # created_package_change.send_package_change_mail() success_msg = "Your package change request has been successful." if "MR" in logged_in_user.partner_id.subscriber_id: bandwidth_change_obj = request.env[ 'isp_crm_module.retail_soho_bandwidth_change'].sudo( ).search([]) created_bandwidth_change_request = bandwidth_change_obj.create( { 'customer': logged_in_user.partner_id.id, 'customer_id': logged_in_user.partner_id.subscriber_id, 'current_package': logged_in_user.partner_id.current_package_id.id, 'proposed_new_package': package_obj.id, 'proposed_package_price': package_obj.lst_price, 'proposed_activation_date': active_from }) else: bandwidth_change_obj = request.env[ 'isp_crm_module.corporate_bandwidth_change'].sudo( ).search([]) created_bandwidth_change_request = bandwidth_change_obj.create( { 'customer': logged_in_user.partner_id.id, 'customer_id': logged_in_user.partner_id.subscriber_id, 'current_package': logged_in_user.partner_id.current_package_id.id, 'current_package_price': logged_in_user.partner_id.current_package_price, 'bandwidth': (logged_in_user.partner_id.current_package_price / logged_in_user.partner_id. current_package_original_price), 'proposed_new_package': package_obj.id, 'proposed_package_price': package_obj.lst_price, 'proposed_activation_date': active_from }) print("Bandwidth Change Request is created.") context['csrf_token'] = request.csrf_token() context['user'] = logged_in_user context['partner'] = logged_in_user.partner_id context['full_name'] = logged_in_user.name.title() context['customer_id'] = logged_in_user.subscriber_id context['content_header'] = content_header context['products'] = products context['success_msg'] = success_msg return json.dumps({"response": True})