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()
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()
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()
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()
def _auth_method_base_group_user(self): self._auth_method_user() if not request.env.user.has_group('base.group_user'): raise exceptions.AccessDenied()
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, }