Source code for collective.smsauthenticator.adapter

import logging

from zope.interface import Interface, implements

from plone.app.users.browser.personalpreferences import UserDataPanelAdapter
from collective.smsauthenticator.helpers import extract_next_url_from_referer

logger = logging.getLogger(__file__)

[docs]class EnhancedUserDataPanelAdapter(UserDataPanelAdapter): """ Adapter for `collective.smsauthenticator.userdataschema.IEnhancedUserDataSchema`. """ # **************************************************** # ******* ``enable_two_step_verification`` ******* # ****************************************************
[docs] def get_enable_two_step_verification(self): return self.context.getProperty('enable_two_step_verification', '')
[docs] def set_enable_two_step_verification(self, value): return # Read only #return self.context.setMemberProperties({'enable_two_step_verification': value})
enable_two_step_verification = property( get_enable_two_step_verification, set_enable_two_step_verification ) # **************************************************** # ***************** ``mobile_number`` **************** # ****************************************************
[docs] def get_mobile_number(self): return self.context.getProperty('mobile_number', '')
[docs] def set_mobile_number(self, value): return # Read only
mobile_number = property( get_mobile_number, set_mobile_number ) # **************************************************** # ********** ``two_step_verification_secret`` **** # ****************************************************
[docs] def get_two_step_verification_secret(self): return self.context.getProperty('two_step_verification_secret', '')
[docs] def set_two_step_verification_secret(self, value): return # Read only
two_step_verification_secret = property( get_two_step_verification_secret, set_two_step_verification_secret ) # **************************************************** # ********** ``mobile_number_reset_token`` *********** # ****************************************************
[docs] def get_mobile_number_reset_token(self): return self.context.getProperty('mobile_number_reset_token', '')
[docs] def set_mobile_number_reset_token(self, value): return # Read only
mobile_number_reset_token = property( get_mobile_number_reset_token, set_mobile_number_reset_token ) # **************************************************** # *********** ``mobile_number_reset_code`` *********** # ****************************************************
[docs] def get_mobile_number_reset_code(self): return self.context.getProperty('mobile_number_reset_code', '')
[docs] def set_mobile_number_reset_code(self, value): return # Read only
mobile_number_reset_code = property( get_mobile_number_reset_code, set_mobile_number_reset_code ) # **************************************************** # ********* ``authentication_token_valid_until`` ***** # **************************************************** #def get_authentication_token_valid_until(self): # return self.context.getProperty('authentication_token_valid_until', '') # #def set_authentication_token_valid_until(self, value): # return # Read only # #authentication_token_valid_until = property( # get_authentication_token_valid_until, # set_authentication_token_valid_until # ) # **************************************************** # ******** ``mobile_number_authentication_code`` ***** # ****************************************************
[docs] def get_mobile_number_authentication_code(self): return self.context.getProperty('mobile_number_authentication_code', '')
[docs] def set_mobile_number_authentication_code(self, value): return # Read only
mobile_number_authentication_code = property( get_mobile_number_authentication_code, set_mobile_number_authentication_code ) # **************************************************** # ******** ``ips`` ***** # ****************************************************
[docs] def get_ips(self): return self.context.getProperty('ips', '')
[docs] def set_ips(self, value): return # Read only
ips = property( get_ips, set_ips )
class ICameFrom(Interface): """ Interface for getting the ``came_from`` URL. """
[docs]class CameFromAdapter(object): """ Came from handling. Plone `came_from` field had to be taken out of the login form, so that users always get the token validation screen, prior to being redirected to page they came from. The came_from is instead extracted from referer and handled in such a way, that Plone functionality stays intact. In cases your existing package smuggles with `came_from` (for example, you want users first to accept terms and conditions prior redirection), you would likely need to define a new adapter and make appropriate changes to the ``getCameFrom`` method. :example: >>> from zope.interface import implements >>> from plone import api >>> from collective.smsauthenticator.helpers import extract_next_url_from_referer >>> from collective.smsauthenticator.adapter import ICameFrom >>> >>> class CameFromAdapter(object): >>> implements(ICameFrom) >>> >>> def __init__(self, request): >>> self.request = request >>> >>> def getCameFrom(self): >>> real_referrer = extract_next_url_from_referer(self.request) >>> portal = api.portal.get() >>> if not real_referrer: >>> real_referrer = portal.absolute_url() >>> referrer = "{0}/tac-form/?came_from={1}".format(portal.portal_url(), real_referrer) >>> return referrer """ implements(ICameFrom) def __init__(self, request): """ :param request ZPublisher.HTTPRequest: """ self.request = request
[docs] def getCameFrom(self): """ Extracts the ``came_from`` value from the referrer (uses global request). :return string: """ return extract_next_url_from_referer(self.request)