예제 #1
0
 def _recover_password(self, address):
     """Email a recovery token for the user."""
     _log.info("Recover password for %s", address)
     if not _email_throttler.is_allowed():
         _log.warn("Throttling to avoid being blacklisted")
         raise HTTPErrorEx(
             httplib.SERVICE_UNAVAILABLE,
             "Request throttled",
             headers={"Retry-After",
                      str(_email_throttler.interval_sec)})
     db_sess = self.db_session()
     try:
         token = users.get_token(db_sess, address)
     except ValueError:
         # To avoid revealing who subscribes to our service to
         # third parties, this must behave identically to the case
         # where the email is recognised.
         db_sess.rollback()
         _log.info("Silently ignoring unrecognised email")
     else:
         db_sess.commit()
         user = users.get_details(db_sess, address)
         urlbase = self.request.protocol + "://" + self.request.host + \
             settings.EMAIL_RECOVERY_PATH
         mail.send_recovery_message(urlbase, user["email"],
                                    user["full_name"], token)
     self.send_success(httplib.OK)
예제 #2
0
파일: users.py 프로젝트: vitosans/ellis
 def test_get_details_mainline(self):
     self.mock_cursor.fetchone.return_value = [
         "Maui Nukurau", "*****@*****.**"
     ]
     user = users.get_details(self.mock_session, "*****@*****.**")
     self.mock_session.execute.assert_called_once_with(
         ANY, {'email': "*****@*****.**"})
     self.assertEquals("Maui Nukurau", user["full_name"])
     self.assertEquals("*****@*****.**", user["email"])
예제 #3
0
파일: users.py 프로젝트: AiprNick/ellis
 def _recover_password(self, address):
     """Email a recovery token for the user."""
     _log.info("Recover password for %s", address)
     if not _email_throttler.is_allowed():
         _log.warn("Throttling to avoid being blacklisted")
         raise HTTPErrorEx(httplib.SERVICE_UNAVAILABLE, "Request throttled", headers={"Retry-After", str(_email_throttler.interval_sec)})
     db_sess = self.db_session()
     try:
         token = users.get_token(db_sess, address)
         db_sess.commit()
     except ValueError:
         # To avoid revealing who subscribes to our service to
         # third parties, this must behave identically to the case
         # where the email is recognised.
         _log.info("Silently ignoring unrecognised email")
     else:
         user = users.get_details(db_sess, address)
         urlbase = self.request.protocol + "://" + self.request.host + \
             settings.EMAIL_RECOVERY_PATH
         mail.send_recovery_message(urlbase, user["email"], user["full_name"], token)
     self.send_success(httplib.OK)
예제 #4
0
파일: users.py 프로젝트: AiprNick/ellis
 def test_get_details_mainline(self):
     self.mock_cursor.fetchone.return_value = ["Maui Nukurau", "*****@*****.**"]
     user = users.get_details(self.mock_session, "*****@*****.**")
     self.mock_session.execute.assert_called_once_with(ANY, {'email': "*****@*****.**"})
     self.assertEquals("Maui Nukurau", user["full_name"])
     self.assertEquals("*****@*****.**", user["email"])