Add initial version of nolabs website
diff --git a/app/api/auth.py b/app/api/auth.py
new file mode 100644
index 0000000..eb9f96a
--- /dev/null
+++ b/app/api/auth.py
@@ -0,0 +1,29 @@
+from flask import g
+from flask_httpauth import HTTPBasicAuth, HTTPTokenAuth
+from app.models import User, UserRole
+from app.api.errors import error_response
+
+basic_auth = HTTPBasicAuth()
+token_auth = HTTPTokenAuth()
+
+@basic_auth.verify_password
+def verify_password(username, password):
+  user = User.query.filter_by(username=username).first()
+  current_user_role_id = user.role_id
+  regular_user_role_id = UserRole.query.filter_by(role_name='regular').first().id
+  if current_user_role_id == regular_user_role_id:
+    return False
+  if user is None:
+    return False
+  g.current_user = user
+  return user.check_password(password)
+
+@token_auth.verify_token
+def verify_token(token):
+  g.current_user = User.check_token(token) if token else None
+  g.current_user = User.check_none_regular_user(token) if token else None
+  return g.current_user is not None
+
+@basic_auth.error_handler
+def basic_auth_error():
+  return error_response(401)