def account_active_prepare(self, signup_type="signup", expiration=False): """ generate a new token for the partners with the given validity, if necessary :param expiration: the expiration datetime of the token (string, optional) """ for partner in self: if expiration or not partner.signup_valid: token = random_token() while self._signup_retrieve_partner(token): token = random_token() partner.write({ 'signup_token': token, 'signup_type': signup_type, 'signup_expiration': expiration }) return True
class TelegramSession(models.Model): _name = "telegram.session" chat_ID = fields.Char() token = fields.Char(default=lambda self: random_token()) odoo_session_sid = fields.Char(help="Equal to request.session.sid") logged_in = fields.Boolean() user_id = fields.Many2one('res.users') context = fields.Text( 'Context', help= 'Any json serializable data. Can be used to share data between user requests.' ) @api.multi def get_user(self): self.ensure_one() return self.user_id or self.env.ref('base.public_user') @api.multi def get_odoo_session(self): self.ensure_one() return odoo.http.root.session_store.get(self.odoo_session_sid) @api.model def get_session(self, chat_ID): tsession = self.env['telegram.session'].search([('chat_ID', '=', chat_ID)]) if not tsession: tsession = self.env['telegram.session'].create( {'chat_ID': chat_ID}) return tsession
class TelegramSession(models.Model): _name = "telegram.session" chat_ID = fields.Char() token = fields.Char(default=lambda self: random_token()) odoo_session_sid = fields.Char(help="Equal to request.session.sid") logged_in = fields.Boolean() user_id = fields.Many2one('res.users') context = fields.Text('Context', help='Any json serializable data. Can be used to share data between user requests.') reply_keyboard = fields.Boolean('Reply Keyboard', help='User is shown ReplyKeyboardMarkup without one_time_keyboard. Such keyboard has to be removed explicitly') handle_reply = fields.Text('Reply handling') handle_reply_command_id = fields.Many2one('telegram.command') @api.multi def get_user(self): self.ensure_one() return self.user_id or self.env.ref('base.public_user') @api.multi def get_odoo_session(self): self.ensure_one() return odoo.http.root.session_store.get(self.odoo_session_sid) @api.model def get_session(self, chat_ID): tsession = self.env['telegram.session'].search([('chat_ID', '=', chat_ID)]) if not tsession: tsession = self.env['telegram.session'].create({'chat_ID': chat_ID}) return tsession
def _generate_token(self): token = random_token() self.write({ "token_set_password_encrypted": self._encrypt_token(token), "token_expiration": datetime.now() + timedelta(minutes=self.directory_id.set_password_token_duration), }) return token