def challenge(self, request, response, **kw): """ Challenge the user for credentials """ user_disabled = response.getHeader('user_disabled') if user_disabled: if 'plone.use_email_as_login' in self.portal_registry: email_login = self.portal_registry.get('plone.use_email_as_login', False) else: props = self.portal_properties.site_properties email_login = props.getProperty('use_email_as_login') if email_login: IStatusMessage(self.REQUEST).add( _(u'Login failed. Both email address and password are case ' u'sensitive, check that caps lock is not enabled. If you ' u'have entered your password correctly, your account might ' u'be locked. You can reset your password, or contact an ' u'administrator to unlock it, using the Contact form.'), type='error' ) else: IStatusMessage(self.REQUEST).add( _(u'Login failed. Both login name and password are case ' u'sensitive, check that caps lock is not enabled. If you ' u'have entered your password correctly, your account might ' u'be locked. You can reset your password, or contact an ' u'administrator to unlock it, using the Contact form.'), type='error' ) response.redirect('login_failed', lock=1) return 1 return 0
def send_notification_email(user, days_to_expire, email_view='notification_email'): """ """ language = api.portal.get_default_language() if user.getProperty('language'): language = user.getProperty('language') recipient = user.getProperty('email') email_template = getMultiAdapter( (api.portal.get(), TestRequest()), name=email_view ) body = email_template(**{ 'username': safe_unicode(user.getProperty('fullname')), 'days': days_to_expire, 'language': language, }) subject = translate( _('email_subject', default=u"${days} days left to password expiration", mapping={'days': days_to_expire}, ), target_language=language ) api.portal.send_email(recipient=recipient, subject=subject, body=body)
def send_notification_email(user, days_to_expire, email_view='notification_email'): """ """ language = api.portal.get_default_language() if user.getProperty('language'): language = user.getProperty('language') recipient = user.getProperty('email') portal = api.portal.get() email_template = getMultiAdapter((portal, portal.REQUEST), name=email_view) body = email_template( **{ 'username': user.getUserId(), 'fullname': safe_unicode(user.getProperty('fullname')), 'days': days_to_expire, 'language': language, }) subject = translate(_( 'email_subject', default=u"${days} days left to password expiration", mapping={'days': days_to_expire}, ), target_language=language) api.portal.send_email(recipient=recipient, subject=subject, body=body)
def send_notification_email(user, days_to_expire, email_view="notification_email"): """ """ language = api.portal.get_default_language() if user.getProperty("language"): language = user.getProperty("language") recipient = user.getProperty("email") portal = api.portal.get() email_template = getMultiAdapter((portal, portal.REQUEST), name=email_view) body = email_template( **{ "username": user.getUserId(), "fullname": safe_unicode(user.getProperty("fullname")), "days": days_to_expire, "language": language, }) subject = translate( _( "email_subject", default=u"${days} days left to password expiration", mapping={"days": days_to_expire}, ), target_language=language, ) api.portal.send_email(recipient=recipient, subject=subject, body=body)
class IEnhancedUserDataSchema(IUserDataSchema): """ Use all the fields from the default user data schema, and add extra field for the date of password set. """ password_date = schema.Date( title=_(u'label_password_date', default=u'Password date'), description=_(u'help_password_date', default=u'The date of setting the password'), required=False, ) last_notification_date = schema.Date( title=_(u'label_last_notification_date', default=u'Last notification date'), description=_(u'help_last_notification_date', default=(u'The date of performing the ' + u'last notification fot the user')), required=False, )
def handleLogin(self, action): data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return membership_tool = getToolByName(self.context, "portal_membership") status_msg = IStatusMessage(self.request) if membership_tool.isAnonymousUser(): self.request.response.expireCookie("__ac", path="/") if self.use_email_as_login(): status_msg.addStatusMessage( _(u"Login failed. Both email address and password are " u"case sensitive, check that caps lock is not " u"enabled. If you have entered your password " u"correctly, your account might be locked. You can " u"reset your password, or contact an administrator " u"to unlock it, using the Contact form."), type="error", ) else: status_msg.addStatusMessage( _(u"Login failed. Both login name and password are " u"case sensitive, check that caps lock is not " u"enabled. If you have entered your password " u"correctly, your account might be locked. You can " u"reset your password, or contact an administrator " u"to unlock it, using the Contact form."), type="error", ) return is_initial_login = self._post_login() status_msg.addStatusMessage( PMF_( u"you_are_now_logged_in", default=u"Welcome! You are now logged in.", ), "info", ) came_from = data.get("came_from", None) self.redirect_after_login(came_from, is_initial_login)
def challenge(self, request, response, **kw): """ Challenge the user for credentials """ user_disabled = response.getHeader("user_disabled") if user_disabled: if "plone.use_email_as_login" in self.portal_registry: email_login = self.portal_registry.get( "plone.use_email_as_login", False ) else: props = self.portal_properties.site_properties email_login = props.getProperty("use_email_as_login") if email_login: IStatusMessage(self.REQUEST).add( _( u"Login failed. Both email address and password are " u"case sensitive, check that caps lock is not " u"enabled. If you have entered your password " u"correctly, your account might be locked. You can " u"reset your password, or contact an administrator " u"to unlock it, using the Contact form." ), type="error", ) else: IStatusMessage(self.REQUEST).add( _( u"Login failed. Both login name and password are " u"case sensitive, check that caps lock is not " u"enabled. If you have entered your password " u"correctly, your account might be locked. You can " u"reset your password, or contact an administrator " u"to unlock it, using the Contact form." ), type="error", ) response.redirect("login_failed", lock=1) return 1 return 0
def send_notification_email(user, days_to_expire, email_view='notification_email'): """ """ request = TestRequest() recipient = user.getProperty('email') subject = _('${days} days left to password expiration', mapping={ u"days" : days_to_expire}) subject = translate(subject) email_template = getMultiAdapter((api.portal.get(), request), name=email_view) body = email_template(**{'username' : user.getProperty('fullname'), 'days' : days_to_expire}) api.portal.send_email(recipient=recipient, subject=subject, body=MIMEText(body, 'html'))
def challenge(self, request, response, **kw): """ Challenge the user for credentials """ user_expired = response.getHeader('user_expired') if user_expired: portal_url = api.portal.get_tool(name='portal_url')() IStatusMessage(request).add(_(u'Your password has expired.'), type='error') response.redirect('%s/mail_password_form?userid=%s' % (portal_url, user_expired), lock=1) return 1 return 0
def challenge(self, request, response, **kw): """ Challenge the user for credentials """ user_expired = response.getHeader('user_expired') if user_expired: portal = api.portal.get() IStatusMessage(request).add(_(u'Your password has expired.'), type='warning') response.redirect(portal.absolute_url() + '/mail_password_form?userid=%s' % user_expired, lock=1) return 1 return 0
def challenge(self, request, response, **kw): """ Challenge the user for credentials """ user_expired = response.getHeader("user_expired") if user_expired: portal_url = api.portal.get_tool(name="portal_url")() IStatusMessage(request).add( _(u"Your password has expired."), type="error" ) response.redirect( "%s/mail_password_form?userid=%s" % (portal_url, user_expired), lock=1, ) return 1 return 0
def challenge(self, request, response, **kw): """ Challenge the user for credentials """ user_expired = response.getHeader('user_expired') if user_expired: portal_url = api.portal.get_tool(name='portal_url')() IStatusMessage(request).add( _(u'Your password has expired.'), type='warning' ) response.redirect( '%s/mail_password_form?userid=%s' % (portal_url, user_expired), lock=1 ) return 1 return 0
def challenge(self, request, response, **kw): """ Challenge the user for credentials """ user_disabled = response.getHeader('user_disabled') if user_disabled: user_disabled_time = response.getHeader('user_disabled_time') IStatusMessage(self.REQUEST).add( _(u'Your account has been locked due to too many invalid ' 'attempts to login with a wrong password. Your account will ' 'remain blocked for the next %s hours. You can reset your ' 'password, or contact an administrator to unlock it.' % user_disabled_time), type='error' ) response.redirect('login_form', lock=1) return 1 return 0
def send_notification_email(user, days_to_expire, email_view='notification_email'): """ """ request = TestRequest() recipient = user.getProperty('email') subject = _('${days} days left to password expiration', mapping={u"days": days_to_expire}) subject = translate(subject) email_template = getMultiAdapter((api.portal.get(), request), name=email_view) body = email_template(**{ 'username': user.getProperty('fullname'), 'days': days_to_expire }) api.portal.send_email(recipient=recipient, subject=subject, body=MIMEText(body, 'html'))
def __call__(self, **kwargs): """ A E-Mail Template, call this like this: email_template = getMultiAdapter( (api.portal.get(), request), name=notification_email ) body = email_template(**{ 'username': user.getUserId(), 'fullname': safe_unicode(user.getProperty('fullname')), 'days': days_to_expire, 'language': language_code, }) """ language = kwargs["language"] msg_mapping = { "username": kwargs["username"], "fullname": kwargs["fullname"], "days": kwargs["days"], } if self.request.get("SERVER_URL", "http://foo") == "http://foo": server_url = "" else: server_url = self.request.get("SERVER_URL") if server_url.endswith("/"): server_url = server_url[:-1] msg_mapping["server_url"] = server_url if self.request.get("SERVER_NAME", "foo") == "foo": server_name = "" else: server_name = self.request.get("SERVER_NAME") msg_mapping["server_name"] = server_name if kwargs["days"] > 0: msg = translate( _( "email_text", default=u"""Hello ${fullname}, There are ${days} days left before your password expires! Please ensure to reset your password before it's expired.""", mapping=msg_mapping, ), target_language=language, ) msg += translate( _( "change_password_email_text", default=( u"""\n\nIn order to change your password, please """ u"""visit ${server_url}/@@change-password""" ), mapping=msg_mapping, ), target_language=language, ) else: msg = translate( _( "email_text_expired", default=u"""Hello ${fullname}, Your password has expired. Please ensure to reset your password before it's expired.""", mapping=msg_mapping, ), target_language=language, ) msg += translate( _( "reset_password_email_text", default=( u"""\n\nIn order to reset your password, please """ u"""visit ${server_url}/mail_password_form?""" u"""userid=${username}""" ), mapping=msg_mapping, ), target_language=language, ) if msg_mapping["server_name"] != "": msg += translate( _( "server_name_email_text", default=u"""\n\nThis email was sent from ${server_name}""", mapping=msg_mapping, ), target_language=language, ) return msg
def __call__(self, **kwargs): """ A E-Mail Template, call this like this: email_template = getMultiAdapter( (api.portal.get(), request), name=notification_email ) body = email_template(**{ 'username': user.getUserId(), 'fullname': safe_unicode(user.getProperty('fullname')), 'days': days_to_expire, 'language': language_code, }) """ language = kwargs['language'] msg_mapping = { 'username': kwargs['username'], 'fullname': kwargs['fullname'], 'days': kwargs['days'], } if self.request.get('SERVER_URL', 'http://foo') == 'http://foo': server_url = "" else: server_url = self.request.get('SERVER_URL') if server_url.endswith('/'): server_url = server_url[:-1] msg_mapping['server_url'] = server_url if self.request.get('SERVER_NAME', 'foo') == 'foo': server_name = "" else: server_name = self.request.get('SERVER_NAME') msg_mapping['server_name'] = server_name if kwargs['days'] > 0: msg = translate( _('email_text', default=u"""Hello ${fullname}, There are ${days} days left before your password expires! Please ensure to reset your password before it's expired.""", mapping=msg_mapping, ), target_language=language ) msg += translate( _('change_password_email_text', default=u"""\n\nIn order to change your password, please visit ${server_url}/@@change-password""", mapping=msg_mapping, ), target_language=language ) else: msg = translate( _('email_text_expired', default=u"""Hello ${fullname}, Your password has expired. Please ensure to reset your password before it's expired.""", mapping=msg_mapping, ), target_language=language ) msg += translate( _('reset_password_email_text', default=u"""\n\nIn order to reset your password, please visit ${server_url}/mail_password_form?userid=${username}""", mapping=msg_mapping, ), target_language=language ) if msg_mapping['server_name'] != "": msg += translate( _('server_name_email_text', default=u"""\n\nThis email was sent from ${server_name}""", mapping=msg_mapping, ), target_language=language ) return msg