예제 #1
0
    def check_contract_pass(self, password):
        try:
            contract_id = int(password)
        except:
            _logger.info('Could not get contract_id from password')
            raise exceptions.AccessDenied()
        domain = [('id', '=', contract_id), ('state', '=', 'open')]
        contracts = self.env['account.analytic.account'].sudo().search(domain)

        if contracts:
            return True
        else:
            raise exceptions.AccessDenied()
    def check_contract_pass(self, password):
        try:
            contract_id = int(password)
        except:
            _logger.info('Could not get contract_id from password')
            raise exceptions.AccessDenied()
        domain = [
            ('analytic_account_id', '=', int(contract_id)),
            # ('state', '=', 'open')]
            ('state', 'in', ['open', 'pending'])
        ]
        contracts = self.env['sale.subscription'].sudo().search(domain)

        if contracts:
            return True
        else:
            raise exceptions.AccessDenied()
예제 #3
0
 def _validate_headers(self, headers):
     if headers.get('x-cim-FromAddress') not in AUTHORIZED_SENDERS:
         raise exceptions.AccessDenied()
     company_obj = request.env['res.company'].sudo(request.uid)
     companies = company_obj.search([])
     country_codes = companies.mapped('partner_id.country_id.code')
     if headers.get('x-cim-ToAddress') not in country_codes:
         raise AttributeError("This message is not for me.")
 def check_partner_user_uuid_pass(self, password):
     """
     Luego de escojer el uid necesitamos hacer que sirva como clave
     """
     domain = [
         ('id', '=', self._uid),
         ('partner_id.support_uuid', '=', password),
     ]
     if not self.sudo().search(domain, limit=1):
         raise exceptions.AccessDenied()
예제 #5
0
 def check_contract_pass(self, password):
     commercial_partner = self.env.user.partner_id.commercial_partner_id
     contracts = self.env['account.analytic.account'].sudo().search([
         ('partner_id.commercial_partner_id', '=', commercial_partner.id)
     ])
     contract_codes = [x.code for x in contracts]
     if password in contract_codes:
         return True
     else:
         raise exceptions.AccessDenied()
예제 #6
0
 def _auth_method_groups(self, group_xmlids=None):
     self._auth_method_user()
     if not any(map(request.env.user.has_group, group_xmlids or [])):
         raise exceptions.AccessDenied()
예제 #7
0
 def _auth_method_base_group_user(self):
     self._auth_method_user()
     if not request.env.user.has_group('base.group_user'):
         raise exceptions.AccessDenied()
예제 #8
0
파일: main.py 프로젝트: vidtsin/social
    def unsubscription_qcontext(self, mailing_id, email, res_id, token):
        """Get rendering context for unsubscription form.

        :param mail.mass_mailing mailing_id:
            Mailing where the unsubscription is being processed.

        :param str email:
            Email to be unsubscribed.

        :param int res_id:
            ID of the unsubscriber.
        """
        email_fname = origin_name = None
        domain = [("id", "=", res_id)]
        record_ids = request.env[mailing_id.mailing_model].sudo()

        if "email_from" in record_ids._fields:
            email_fname = "email_from"
        elif "email" in record_ids._fields:
            email_fname = "email"

        if not (email_fname and email):
            # Trying to unsubscribe without email? Bad boy...
            raise exceptions.AccessDenied()

        domain.append((email_fname, "ilike", email))

        # Search additional mailing lists for the unsubscriber
        additional_contacts = self._mailing_list_contacts_by_email(email)

        if record_ids._name == "mail.mass_mailing.contact":
            domain.append(("list_id", "in", mailing_id.contact_list_ids.ids))

        # Unsubscription targets
        record_ids = record_ids.search(domain)

        if record_ids._name == "mail.mass_mailing.contact":
            additional_contacts -= record_ids

        if not record_ids:
            # Trying to unsubscribe with fake criteria? Bad boy...
            raise exceptions.AccessDenied()

        # Get data to identify the source of the unsubscription
        fnames = self.unsubscription_special_fnames(record_ids._name)
        first = record_ids[:1]
        contact_name = first[fnames.get("contact", "name")]
        origin_model_name = request.env["ir.model"].search([
            ("model", "=", first._name)
        ]).name
        try:
            first = first[fnames["related"]]
        except KeyError:
            pass
        try:
            origin_name = first[fnames["origin"]]
        except KeyError:
            pass

        # Get available reasons
        reason_ids = (request.env["mail.unsubscription.reason"].search([]))

        return {
            "additional_contact_ids": additional_contacts,
            "contact_name": contact_name,
            "email": email,
            "mailing_id": mailing_id,
            "origin_model_name": origin_model_name,
            "origin_name": origin_name,
            "reason_ids": reason_ids,
            "record_ids": record_ids,
            "res_id": res_id,
            "token": token,
        }