Beispiel #1
0
    def test_get(self):
        response = self.get('/auth/verify/SOMETHINGHERE?email=test%40foo.bar')
        self.assertEqual(response.code, 200)

        User.create('*****@*****.**', 'Somesortofpass')
        response = self.get('/auth/verify/SOMETHINGHERE?email=new%40test.bar')
        self.assertEqual(response.code, 200)
Beispiel #2
0
    def test_get(self):
        response = self.get('/auth/verify/SOMETHINGHERE?email=test%40foo.bar')
        self.assertEqual(response.code, 200)

        User.create('*****@*****.**', 'Somesortofpass')
        response = self.get('/auth/verify/SOMETHINGHERE?email=new%40test.bar')
        self.assertEqual(response.code, 200)
Beispiel #3
0
    def post(self):
        username = self.get_argument("email", "").strip().lower()
        password = self.get_argument("newpass", "")
        info = {}
        for info_column in ("name", "affiliation", "address", "phone"):
            hold = self.get_argument(info_column, None)
            if hold:
                info[info_column] = hold

        created = False
        try:
            created = User.create(username, password, info)
        except QiitaDBDuplicateError:
            msg = "Email already registered as a user"

        if created:
            info = created.info
            try:
                send_email(
                    username, "QIITA: Verify Email Address", "Please "
                    "click the following link to verify email address: "
                    "%s/auth/verify/%s?email=%s" %
                    (qiita_config.base_url, info['user_verify_code'],
                     url_escape(username)))
            except:
                msg = ("Unable to send verification email. Please contact the "
                       "qiita developers at <a href='mailto:qiita-help"
                       "@gmail.com'>[email protected]</a>")
                error_msg = u"?error=" + url_escape(msg)
                self.redirect(u"/?level=danger&message=" + error_msg)
                return
            self.redirect(u"/")
        else:
            error_msg = u"?error=" + url_escape(msg)
            self.redirect(u"/auth/create/" + error_msg)
Beispiel #4
0
    def post(self):
        username = self.get_argument("email", "").strip().lower()
        password = self.get_argument("newpass", "")
        info = {}
        for info_column in ("name", "affiliation", "address", "phone"):
            hold = self.get_argument(info_column, None)
            if hold:
                info[info_column] = hold

        created = False
        try:
            created = User.create(username, password, info)
        except QiitaDBDuplicateError:
            msg = "Email already registered as a user"

        if created:
            info = created.info
            try:
                send_email(username, "QIITA: Verify Email Address", "Please "
                           "click the following link to verify email address: "
                           "%s/auth/verify/%s?email=%s"
                           % (qiita_config.base_url, info['user_verify_code'],
                              url_escape(username)))
            except:
                msg = ("Unable to send verification email. Please contact the "
                       "qiita developers at <a href='mailto:qiita-help"
                       "@gmail.com'>[email protected]</a>")
                self.redirect(u"/?level=danger&message=" + url_escape(msg))
                return
            self.redirect(u"/")
        else:
            error_msg = u"?error=" + url_escape(msg)
            self.redirect(u"/auth/create/" + error_msg)
Beispiel #5
0
    def test_create_user(self):
        user = User.create('*****@*****.**', 'password')
        self.assertEqual(user.id, '*****@*****.**')
        sql = "SELECT * from qiita.qiita_user WHERE email = '*****@*****.**'"
        obs = self.conn_handler.execute_fetchall(sql)
        self.assertEqual(len(obs), 1)
        obs = dict(obs[0])
        exp = {
            'password': '',
            'name': None,
            'pass_reset_timestamp': None,
            'affiliation': None,
            'pass_reset_code': None,
            'phone': None,
            'user_verify_code': '',
            'address': None,
            'user_level_id': 5,
            'email': '*****@*****.**'}
        self._check_correct_info(obs, exp)

        # make sure default analysis created
        sql = ("SELECT email, name, description, dflt FROM qiita.analysis "
               "WHERE email = '*****@*****.**'")
        obs = self.conn_handler.execute_fetchall(sql)
        exp = [['*****@*****.**', '[email protected]', 'dflt', True]]
        self.assertEqual(obs, exp)
Beispiel #6
0
 def test_generate_reset_code(self):
     user = User.create('*****@*****.**', 'password')
     sql = "SELECT LOCALTIMESTAMP"
     before = self.conn_handler.execute_fetchone(sql)[0]
     user.generate_reset_code()
     after = self.conn_handler.execute_fetchone(sql)[0]
     sql = ("SELECT pass_reset_code, pass_reset_timestamp FROM "
            "qiita.qiita_user WHERE email = %s")
     obscode, obstime = self.conn_handler.execute_fetchone(
         sql, ('*****@*****.**',))
     self.assertEqual(len(obscode), 20)
     self.assertTrue(before < obstime < after)
Beispiel #7
0
 def test_generate_reset_code(self):
     user = User.create('*****@*****.**', 'password')
     sql = "SELECT LOCALTIMESTAMP"
     before = self.conn_handler.execute_fetchone(sql)[0]
     user.generate_reset_code()
     after = self.conn_handler.execute_fetchone(sql)[0]
     sql = ("SELECT pass_reset_code, pass_reset_timestamp FROM "
            "qiita.qiita_user WHERE email = %s")
     obscode, obstime = self.conn_handler.execute_fetchone(
         sql, ('*****@*****.**', ))
     self.assertEqual(len(obscode), 20)
     self.assertTrue(before < obstime < after)
Beispiel #8
0
    def post(self):
        username = self.get_argument("email", "").strip().lower()
        password = self.get_argument("newpass", "")
        info = {}
        for info_column in ("name", "affiliation", "address", "phone"):
            hold = self.get_argument(info_column, None)
            if hold:
                info[info_column] = hold

        created = False
        try:
            created = User.create(username, password, info)
        except QiitaDBDuplicateError:
            msg = "Email already registered as a user"

        if created:
            info = created.info
            try:
                # qiita_config.base_url doesn't have a / at the end, but the
                # qiita_config.portal_dir has it at the beginning but not at
                # the end. This constructs the correct URL
                url = qiita_config.base_url + qiita_config.portal_dir
                send_email(
                    username, "QIITA: Verify Email Address", "Please "
                    "click the following link to verify email address: "
                    "%s/auth/verify/%s?email=%s\n\nBy clicking you are "
                    "accepting our term and conditions: "
                    "%s/iframe/?iframe=qiita-terms" %
                    (url, info['user_verify_code'], url_escape(username), url))
            except Exception:
                msg = ("Unable to send verification email. Please contact the "
                       "qiita developers at <a href='mailto:qiita.help"
                       "@gmail.com'>[email protected]</a>")
                self.redirect(u"%s/?level=danger&message=%s" %
                              (qiita_config.portal_dir, url_escape(msg)))
                return

            msg = ("<h3>User Successfully Created</h3><p>Your Qiita account "
                   "has been successfully created. An email has been sent to "
                   "the email address you provided. This email contains "
                   "instructions on how to activate your account.</p>"
                   "<p>If you don't receive your activation email within a "
                   "couple of minutes, check your spam folder. If you still "
                   "don't see it, send us an email at <a "
                   "href=\"mailto:[email protected]\">[email protected]"
                   "</a>.</p>")
            self.redirect(u"%s/?level=success&message=%s" %
                          (qiita_config.portal_dir, url_escape(msg)))
        else:
            error_msg = u"?error=" + url_escape(msg)
            self.redirect(u"%s/auth/create/%s" %
                          (qiita_config.portal_dir, error_msg))
Beispiel #9
0
    def post(self):
        username = self.get_argument("email", "").strip().lower()
        password = self.get_argument("newpass", "")
        info = {}
        for info_column in ("name", "affiliation", "address", "phone"):
            hold = self.get_argument(info_column, None)
            if hold:
                info[info_column] = hold

        created = False
        try:
            created = User.create(username, password, info)
        except QiitaDBDuplicateError:
            msg = "Email already registered as a user"

        if created:
            info = created.info
            try:
                # qiita_config.base_url doesn't have a / at the end, but the
                # qiita_config.portal_dir has it at the beginning but not at
                # the end. This constructs the correct URL
                url = qiita_config.base_url + qiita_config.portal_dir
                send_email(username, "QIITA: Verify Email Address", "Please "
                           "click the following link to verify email address: "
                           "%s/auth/verify/%s?email=%s\n\nBy clicking you are "
                           "accepting our term and conditions: "
                           "%s/iframe/?iframe=qiita-terms"
                           % (url, info['user_verify_code'],
                              url_escape(username), url))
            except Exception:
                msg = ("Unable to send verification email. Please contact the "
                       "qiita developers at <a href='mailto:qiita-help"
                       "@gmail.com'>[email protected]</a>")
                self.redirect(u"%s/?level=danger&message=%s"
                              % (qiita_config.portal_dir, url_escape(msg)))
                return

            msg = ("<h3>User Successfully Created</h3><p>Your Qiita account "
                   "has been successfully created. An email has been sent to "
                   "the email address you provided. This email contains "
                   "instructions on how to activate your account.</p>"
                   "<p>If you don't receive your activation email within a "
                   "couple of minutes, check your spam folder. If you still "
                   "don't see it, send us an email at <a "
                   "href=\"mailto:[email protected]\">[email protected]"
                   "</a>.</p>")
            self.redirect(u"%s/?level=success&message=%s" %
                          (qiita_config.portal_dir, url_escape(msg)))
        else:
            error_msg = u"?error=" + url_escape(msg)
            self.redirect(u"%s/auth/create/%s"
                          % (qiita_config.portal_dir, error_msg))
Beispiel #10
0
 def test_create_user(self):
     user = User.create('*****@*****.**', 'password')
     self.assertEqual(user.id, '*****@*****.**')
     sql = "SELECT * from qiita.qiita_user WHERE email = '*****@*****.**'"
     obs = self.conn_handler.execute_fetchall(sql)
     self.assertEqual(len(obs), 1)
     obs = dict(obs[0])
     exp = {
         'password': '',
         'name': None,
         'pass_reset_timestamp': None,
         'affiliation': None,
         'pass_reset_code': None,
         'phone': None,
         'user_verify_code': '',
         'address': None,
         'user_level_id': 5,
         'email': '*****@*****.**'}
     self._check_correct_info(obs, exp)
Beispiel #11
0
 def test_create_user_info(self):
     user = User.create('*****@*****.**', 'password', self.userinfo)
     self.assertEqual(user.id, '*****@*****.**')
     sql = "SELECT * from qiita.qiita_user WHERE email = '*****@*****.**'"
     obs = self.conn_handler.execute_fetchall(sql)
     self.assertEqual(len(obs), 1)
     obs = dict(obs[0])
     exp = {
         'password': '',
         'name': 'Dude',
         'affiliation': 'Nowhere University',
         'address': '123 fake st, Apt 0, Faketown, CO 80302',
         'phone': '111-222-3344',
         'pass_reset_timestamp': None,
         'pass_reset_code': None,
         'user_verify_code': '',
         'user_level_id': 5,
         'email': '*****@*****.**'}
     self._check_correct_info(obs, exp)
Beispiel #12
0
    def post(self):
        username = self.get_argument("username", "")
        password = self.get_argument("pass", "")
        info = {}
        for info_column in ("name", "affiliation", "address", "phone"):
            hold = self.get_argument(info_column, None)
            if hold:
                info[info_column] = hold

        created = User.create(username, password, info)

        if created:
            send_email(username, "FORGE: Verify Email Address", "Please click "
                       "the following link to verify email address: "
                       "http://forge-dev.colorado.edu/auth/verify/%s" % msg)
            self.redirect(u"/")
        else:
            error_msg = u"?error=" + url_escape(msg)
            self.redirect(u"/auth/create/" + error_msg)
Beispiel #13
0
 def test_create_user(self):
     user = User.create('*****@*****.**', 'password')
     self.assertEqual(user.id, '*****@*****.**')
     sql = "SELECT * from qiita.qiita_user WHERE email = '*****@*****.**'"
     obs = self.conn_handler.execute_fetchall(sql)
     self.assertEqual(len(obs), 1)
     obs = dict(obs[0])
     exp = {
         'password': '',
         'name': None,
         'pass_reset_timestamp': None,
         'affiliation': None,
         'pass_reset_code': None,
         'phone': None,
         'user_verify_code': '',
         'address': None,
         'user_level_id': 5,
         'email': '*****@*****.**'
     }
     self._check_correct_info(obs, exp)
Beispiel #14
0
 def test_create_user_info(self):
     user = User.create('*****@*****.**', 'password', self.userinfo)
     self.assertEqual(user.id, '*****@*****.**')
     sql = "SELECT * from qiita.qiita_user WHERE email = '*****@*****.**'"
     obs = self.conn_handler.execute_fetchall(sql)
     self.assertEqual(len(obs), 1)
     obs = dict(obs[0])
     exp = {
         'password': '',
         'name': 'Dude',
         'affiliation': 'Nowhere University',
         'address': '123 fake st, Apt 0, Faketown, CO 80302',
         'phone': '111-222-3344',
         'pass_reset_timestamp': None,
         'pass_reset_code': None,
         'user_verify_code': '',
         'user_level_id': 5,
         'email': '*****@*****.**'
     }
     self._check_correct_info(obs, exp)
Beispiel #15
0
    def post(self):
        username = self.get_argument("email", "").strip().lower()
        password = self.get_argument("newpass", "")
        info = {}
        for info_column in ("name", "affiliation", "address", "phone"):
            hold = self.get_argument(info_column, None)
            if hold:
                info[info_column] = hold

        created = False
        try:
            created = User.create(username, password, info)
        except QiitaDBDuplicateError:
            msg = "Email already registered as a user"

        if created:
            info = created.info
            try:
                # qiita_config.base_url doesn't have a / at the end, but the
                # qiita_config.portal_dir has it at the beginning but not at
                # the end. This constructs the correct URL
                url = qiita_config.base_url + qiita_config.portal_dir
                send_email(
                    username, "QIITA: Verify Email Address", "Please "
                    "click the following link to verify email address: "
                    "%s/auth/verify/%s?email=%s\n\nBy clicking you are "
                    "accepting our term and conditions: "
                    "%s/static/qiita_data_terms_of_use.html" %
                    (url, info['user_verify_code'], url_escape(username), url))
            except Exception:
                msg = ("Unable to send verification email. Please contact the "
                       "qiita developers at <a href='mailto:qiita-help"
                       "@gmail.com'>[email protected]</a>")
                self.redirect(u"%s/?level=danger&message=%s" %
                              (qiita_config.portal_dir, url_escape(msg)))
                return
            self.redirect(u"%s/" % qiita_config.portal_dir)
        else:
            error_msg = u"?error=" + url_escape(msg)
            self.redirect(u"%s/auth/create/%s" %
                          (qiita_config.portal_dir, error_msg))
Beispiel #16
0
    def post(self):
        username = self.get_argument("email", "").strip().lower()
        password = self.get_argument("newpass", "")
        info = {}
        for info_column in ("name", "affiliation", "address", "phone"):
            hold = self.get_argument(info_column, None)
            if hold:
                info[info_column] = hold

        created = False
        try:
            created = User.create(username, password, info)
        except QiitaDBDuplicateError:
            msg = "Email already registered as a user"

        if created:
            info = created.info
            try:
                # qiita_config.base_url doesn't have a / at the end, but the
                # qiita_config.portal_dir has it at the beginning but not at
                # the end. This constructs the correct URL
                url = qiita_config.base_url + qiita_config.portal_dir
                send_email(username, "QIITA: Verify Email Address", "Please "
                           "click the following link to verify email address: "
                           "%s/auth/verify/%s?email=%s\n\nBy clicking you are "
                           "accepting our term and conditions: "
                           "%s/static/qiita_data_terms_of_use.html"
                           % (url, info['user_verify_code'],
                              url_escape(username), url))
            except:
                msg = ("Unable to send verification email. Please contact the "
                       "qiita developers at <a href='mailto:qiita-help"
                       "@gmail.com'>[email protected]</a>")
                self.redirect(u"%s/?level=danger&message=%s"
                              % (qiita_config.portal_dir, url_escape(msg)))
                return
            self.redirect(u"%s/" % qiita_config.portal_dir)
        else:
            error_msg = u"?error=" + url_escape(msg)
            self.redirect(u"%s/auth/create/%s"
                          % (qiita_config.portal_dir, error_msg))
Beispiel #17
0
 def test_create_user_bad_email(self):
     with self.assertRaises(IncorrectEmailError):
         User.create('notanemail', 'password')
Beispiel #18
0
 def test_create_user_bad_password(self):
     with self.assertRaises(IncorrectPasswordError):
         User.create('*****@*****.**', '')
Beispiel #19
0
 def test_create_user_bad_email(self):
     with self.assertRaises(IncorrectEmailError):
         User.create('notanemail', 'password')
Beispiel #20
0
 def test_create_user_duplicate(self):
     with self.assertRaises(QiitaDBDuplicateError):
         User.create('*****@*****.**', 'password')
Beispiel #21
0
 def test_create_user_non_existent_column(self):
     self.userinfo["BADTHING"] = "FAIL"
     with self.assertRaises(QiitaDBColumnError):
         User.create('*****@*****.**', 'password', self.userinfo)
Beispiel #22
0
 def test_create_user_column_not_allowed(self):
     self.userinfo["email"] = "FAIL"
     with self.assertRaises(QiitaDBColumnError):
         User.create('*****@*****.**', 'password', self.userinfo)
Beispiel #23
0
 def test_create_user_duplicate(self):
     with self.assertRaises(QiitaDBDuplicateError):
         User.create('*****@*****.**', 'password')
Beispiel #24
0
 def test_create_user_non_existent_column(self):
     self.userinfo["BADTHING"] = "FAIL"
     with self.assertRaises(QiitaDBColumnError):
         User.create('*****@*****.**', 'password', self.userinfo)
Beispiel #25
0
 def setUp(self):
     StudyPerson.create('SomeDude', '*****@*****.**', 'some',
                        '111 fake street', '111-121-1313')
     User.create('*****@*****.**', 'password')
     self.config1 = CONFIG_1
     self.config2 = CONFIG_2
Beispiel #26
0
 def test_create_user_bad_password(self):
     with self.assertRaises(IncorrectPasswordError):
         User.create('*****@*****.**', '')
Beispiel #27
0
 def test_create_user_column_not_allowed(self):
     self.userinfo["email"] = "FAIL"
     with self.assertRaises(QiitaDBColumnError):
         User.create('*****@*****.**', 'password', self.userinfo)