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)
예제 #2
0
 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)
예제 #4
0
 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(),
     })
예제 #5
0
파일: main.py 프로젝트: 10537/odoo
 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(),
     })
예제 #6
0
 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
예제 #7
0
 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": []}
예제 #8
0
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
예제 #9
0
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)
예제 #12
0
파일: common.py 프로젝트: suningwz/odoo_13
 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})