Esempio n. 1
0
 def _send_notification(self, response, account):
     response.add_notification \
         ( GTW.Notification
             ( _T ("Activation of account %s successful.")
             % (account.name, )
             )
         )
Esempio n. 2
0
 def add_notification (self, noti) :
     notifications = GTW.Notification_Collection (self.session)
     if notifications is not None :
         if not isinstance (noti, GTW.Notification) :
             noti = GTW.Notification (noti)
         notifications.append (noti)
         self.notifications_added += 1
Esempio n. 3
0
 def _response_body(self, resource, request, response):
     req_data = request.req_data
     top = resource.top
     self.errors = Errors()
     username = self.get_username(request, "username")
     self.get_account \
         (resource, username, getattr (top, "DEBUG", False))
     if not self.account and not self.errors:
         self.errors [None].append \
            (_T ("Account could not be found"))
     if self.errors:
         response.errors = self.errors
         result  = resource.GET ()._response_body \
             (resource, request, response)
         return result
     else:
         Auth = top.scope.GTW.OMP.Auth
         account = self.account
         host = request.host
         next = request.referrer or "/"
         passwd, token = Auth.Account.reset_password(account)
         link = resource.parent.href_action(account, token, request)
         top.scope.commit()
         resource.send_email \
             ( resource.email_template
             , email_to      = username
             , email_subject =
                 ( _T ("Password reset for user %s on website %s")
                 % (username, host)
                 )
             , email_from    = resource.email_from
             , new_password  = passwd
             , link          = link
             , NAV           = top
             , page          = resource
             , host          = host
             )
         response.add_notification \
             ( GTW.Notification
                 (_T ( "The reset password instructions have been "
                       "sent to your email address %s."
                     )
                 % (username, )
                 )
             )
         raise top.Status.See_Other(next)
Esempio n. 4
0
 def _send_notification(self, response, account):
     response.add_notification \
         (GTW.Notification (_T ("The password has been changed.")))
     try:
         request = response._request
         self.send_email \
             ( self.new_password_template
             , NAV           = self.top
             , account_name  = account.name
             , email_from    = self.email_from
             , email_subject = _T \
                 ("Password change for account %s" % (account.name, ))
             , email_to      = account.name
             , host          = request.host
             , page          = self
             , request       = request
             )
     except Exception as exc:
         logging.exception("Exception during Change-Password")
Esempio n. 5
0
 def __call__(self, resource, request, response):
     Status = resource.Status
     language = resource.language
     with TFL.I18N.context(language):
         next = request.req_data.get("next", request.referrer)
         choice = TFL.I18N.Config.choice
         if language.startswith(choice[0]):
             request.use_language(choice)
             response.set_cookie("language", language, max_age=1 << 31)
             response.add_notification \
                 ( GTW.Notification
                     (_T (u"Language %s selected") % language)
                 )
         else:
             logging.error \
                 ( "%s: request for language %r; "
                   "I18N.context returned %r"
                 % (resource.abs_href, language, choice)
                 )
         raise Status.See_Other(next)
     raise Status.Not_Found()
Esempio n. 6
0
 def _response_body(self, resource, request, response):
     req_data = request.req_data
     top = resource.top
     HTTP_Status = top.Status
     ETM = top.account_manager
     account = ETM.pid_query(req_data["p"])
     action       = top.scope.GTW.OMP.Auth._Account_Token_Action_.query \
         (account = account, token = req_data ["t"]).first ()
     if action:
         try:
             description = action.description
             next = action.handle(resource)
             if description:
                 response.add_notification \
                     ( GTW.Notification
                         (" ".join (( _T (description), account.name)))
                     )
             raise HTTP_Status.See_Other(next)
         except GTW.OMP.Auth.Action_Expired:
             action.destroy()
             top.scope.commit()
     raise HTTP_Status.Not_Found()
Esempio n. 7
0
 def _response_body(self, resource, request, response):
     debug = getattr(resource.top, "DEBUG", False)
     req_data = request.req_data
     top = resource.top
     HTTP_Status = top.Status
     self.errors = Errors()
     old_email, _  = self._credentials_validation \
         (resource, request, debug = debug)
     new_email = self.get_email(request)
     if not self.errors:
         account = self.account
         next = req_data.get("next", "/")
         host = request.host
         token = account.change_email_prepare(new_email)
         link      = resource.parent.href_action  \
             (account, token, request)
         top.scope.commit()
         subject   = \
             (_T ( "Confirmation for change of email "
                   "for account %s to %s for website %s"
                 )
             % (old_email, new_email, host)
             )
         try:
             resource.send_email \
                 ( resource.new_email_template
                 , NAV           = top
                 , email_from    = resource.email_from
                 , email_subject = subject
                 , email_to      = new_email
                 , host          = host
                 , link          = link
                 , page          = resource
                 )
         except Exception as exc:
             self.errors[None].append(str(exc))
         else:
             response.add_notification \
                 ( GTW.Notification
                     (_T ( "A confirmation email has been sent to "
                           "the new email address %s."
                         )
                     % (new_email, )
                     )
                 )
             try:
                 resource.send_email \
                     ( resource.old_email_template
                     , NAV           = top
                     , email_from    = resource.email_from
                     , email_subject = subject
                     , email_to      = old_email
                     , host          = host
                     , new_email     = new_email
                     , old_email     = old_email
                     , page          = resource
                     , request       = request
                     )
             except Exception as exc:
                 logging.exception("Exception during Change-Email")
             raise HTTP_Status.See_Other(next)
     response.errors = self.errors
     response.account = self.account
     result = resource.GET ()._response_body \
         (resource, request, response)
     return result