No need to confirm email to get access
Currently you do not need to confirm you email address to get access to the site.

diff --git a/qiita_core/exceptions.py b/qiita_core/exceptions.py
index ee0f92f0..226dfa0d 100644
--- a/qiita_core/exceptions.py
+++ b/qiita_core/exceptions.py
@@ -58,6 +58,11 @@ class IncorrectEmailError(QiitaError):
     pass
 
 
+class UnverifiedEmailError(QiitaError):
+    """Email has not been validated"""
+    pass
+
+
 class QiitaEnvironmentError(QiitaError):
     """Exception for error when dealing with the environment"""
     pass
diff --git a/qiita_db/user.py b/qiita_db/user.py
index 3fa9a3b7..60e69056 100644
--- a/qiita_db/user.py
+++ b/qiita_db/user.py
@@ -31,10 +31,12 @@ from __future__ import division
 from re import match
 
 from qiita_core.exceptions import (IncorrectEmailError, IncorrectPasswordError,
-                                   IncompetentQiitaDeveloperError)
+                                   IncompetentQiitaDeveloperError,
+                                   UnverifiedEmailError)
 from .base import QiitaObject
 from .sql_connection import SQLConnectionHandler
-from .util import (create_rand_string, check_table_cols, hash_password)
+from .util import (create_rand_string, check_table_cols, hash_password,
+                   convert_from_id)
 from .exceptions import (QiitaDBColumnError, QiitaDBDuplicateError)
 
 
@@ -125,11 +127,17 @@ class User(QiitaObject):
 
         # pull password out of database
         conn_handler = SQLConnectionHandler()
-        sql = ("SELECT password FROM qiita.{0} WHERE "
+        sql = ("SELECT password, user_level_id FROM qiita.{0} WHERE "
                "email = %s".format(cls._table))
-        dbpass = conn_handler.execute_fetchone(sql, (email, ))[0]
+        info = conn_handler.execute_fetchone(sql, (email, ))
+
+        # verify user email verification
+        # MAGIC NUMBER 5 = unverified email
+        if int(info[1]) == 5:
+            return False
 
         # verify password
+        dbpass = info[0]
         hashed = hash_password(password, dbpass)
         if hashed == dbpass:
             return cls(email)
@@ -453,6 +461,8 @@ def validate_password(password):
         * special characters (e.g., !@#$%^&*()-_=+`~[]{}|;:'",<.>/?) with the
             exception of a backslash
         * must be ASCII
+        * no spaces
+        * must be at least 8 characters
 
     Parameters
     ----------
@@ -466,18 +476,17 @@ def validate_password(password):
 
     References
     -----
-    http://stackoverflow.com/questions/2990654/how-to-test-a-regex-
-    password-in-python
+    http://stackoverflow.com/q/196345
     """
-    lower_case = 'a-z'
-    upper_case = 'A-Z'
-    numbers = '0-9'
-    special = """!@#\$%\^&\*\(\)-_\=+`~\[\]\{\}|;:'",<.>/\?)"""
-    pattern = r'[%s%s%s%s]{8,}' % (lower_case, upper_case, numbers, special)
+    if len(password) < 8:
+        return False
+
+    if "\\" in password or " " in password:
+        return False
 
     try:
         password.encode('ascii')
     except UnicodeError:
         return False
-    else:
-        return True if match(pattern, password) is not None else False
+
+    return True
diff --git a/qiita_pet/handlers/auth_handlers.py b/qiita_pet/handlers/auth_handlers.py
index 510a6fc1..bf363419 100644
--- a/qiita_pet/handlers/auth_handlers.py
+++ b/qiita_pet/handlers/auth_handlers.py
@@ -4,7 +4,8 @@ from tornado.escape import url_escape, json_encode
 
 from qiita_pet.handlers.base_handlers import BaseHandler
 from qiita_core.util import send_email
-from qiita_core.exceptions import IncorrectPasswordError, IncorrectEmailError
+from qiita_core.exceptions import (IncorrectPasswordError, IncorrectEmailError,
+                                   UnverifiedEmailError)
 from qiita_db.user import User
 from qiita_db.exceptions import QiitaDBUnknownIDError, QiitaDBDuplicateError
 # login code modified from https://gist.github.com/guillaumevincent/4771570
@@ -92,6 +93,8 @@ class AuthLoginHandler(BaseHandler):
             msg = "Unknown user"
         except IncorrectPasswordError:
             msg = "Incorrect password"
+        except UnverifiedEmailError:
+            msg = "You have not verified your email address"
 
         if login:
             # everything good so log in
diff --git a/qiita_pet/templates/create_user.html b/qiita_pet/templates/create_user.html
index de41fdc7..79ec8534 100644
--- a/qiita_pet/templates/create_user.html
+++ b/qiita_pet/templates/create_user.html
@@ -15,8 +15,8 @@ $(this).popover('show')
 $("#createuser").validate({
 rules:{
 username:{required:true,email: true},
-pass:{required:true,minlength: 6},
-pass2:{required:true,minlength: 6,equalTo: "#pass"},
+pass:{required:true,minlength: 8},
+pass2:{required:true,minlength: 8,equalTo: "#pass"},
 },
 
 messages:{
@@ -26,10 +26,10 @@ required:"Enter your email address",
 email:"Enter valid email address"},
 pass:{
 required:"Enter your password",
-minlength:"Password must be minimum 6 characters"},
+minlength:"Password must be minimum 8 characters"},
 pass2:{
 required:"Enter confirm password",
-minlength:"Password must be minimum 6 characters",
+minlength:"Password must be minimum 8 characters",
 equalTo:"Password and Confirm Password must match"}
 },
 
['qiita_pet/handlers/auth_handlers.py', 'qiita_db/user.py', 'qiita_pet/templates/create_user.html', 'qiita_core/exceptions.py']