Merge remote-tracking branch 'remotes/lotusecho/trac_711_test_speed'
[mediagoblin.git] / mediagoblin / plugins / basic_auth / __init__.py
index edbfacb58b3f9fa94070eec464140b98d7914518..c16d885544b763ea23b029738785e8687dd2f685 100644 (file)
 #
 # You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
-import uuid
-
 from mediagoblin.plugins.basic_auth import forms as auth_forms
-from mediagoblin.plugins.basic_auth import lib as auth_lib
+from mediagoblin.plugins.basic_auth import tools as auth_tools
+from mediagoblin.auth.tools import create_basic_user
 from mediagoblin.db.models import User
 from mediagoblin.tools import pluginapi
 from sqlalchemy import or_
 
 
 def setup_plugin():
-    config = pluginapi.get_config('mediagoblin.pluginapi.basic_auth')
-
+    config = pluginapi.get_config('mediagoblin.plugins.basic_auth')
 
-def check_login(user, password):
-    if user.pw_hash:
-        result = auth_lib.bcrypt_check_password(password, user.pw_hash)
-        if result:
-            return result
-    return None
 
-
-def get_user(username):
-    user = User.query.filter(
-        or_(
-            User.username == username,
-            User.email == username,
-        )).first()
-    return user
+def get_user(**kwargs):
+    username = kwargs.pop('username', None)
+    if username:
+        user = User.query.filter(
+            or_(
+                User.username == username,
+                User.email == username,
+            )).first()
+        return user
 
 
 def create_user(registration_form):
-    user = get_user(registration_form.username.data)
+    user = get_user(username=registration_form.username.data)
     if not user and 'password' in registration_form:
-        user = User()
-        user.username = registration_form.username.data
-        user.email = registration_form.email.data
-        user.pw_hash = auth_lib.bcrypt_gen_password_hash(
+        user = create_basic_user(registration_form)
+        user.pw_hash = gen_password_hash(
             registration_form.password.data)
-        user.verification_key = unicode(uuid.uuid4())
         user.save()
     return user
 
@@ -64,12 +54,12 @@ def get_registration_form(request):
     return auth_forms.RegistrationForm(request.form)
 
 
-def gen_password_hash(raw_pass, extra_salt):
-    return auth_lib.bcrypt_gen_password_hash(raw_pass, extra_salt)
+def gen_password_hash(raw_pass, extra_salt=None):
+    return auth_tools.bcrypt_gen_password_hash(raw_pass, extra_salt)
 
 
-def check_password(raw_pass, stored_hash, extra_salt):
-    return auth_lib.bcrypt_check_password(raw_pass, stored_hash, extra_salt)
+def check_password(raw_pass, stored_hash, extra_salt=None):
+    return auth_tools.bcrypt_check_password(raw_pass, stored_hash, extra_salt)
 
 
 def auth():
@@ -81,25 +71,15 @@ def append_to_global_context(context):
     return context
 
 
-def add_to_form_context(context):
-    context['pass_auth_link'] = True
-    return context
-
-
 hooks = {
     'setup': setup_plugin,
     'authentication': auth,
-    'auth_check_login': check_login,
     'auth_get_user': get_user,
     'auth_create_user': create_user,
     'auth_get_login_form': get_login_form,
     'auth_get_registration_form': get_registration_form,
     'auth_gen_password_hash': gen_password_hash,
     'auth_check_password': check_password,
-    'auth_fake_login_attempt': auth_lib.fake_login_attempt,
+    'auth_fake_login_attempt': auth_tools.fake_login_attempt,
     'template_global_context': append_to_global_context,
-    ('mediagoblin.plugins.openid.register',
-    'mediagoblin/auth/register.html'): add_to_form_context,
-    ('mediagoblin.plugins.openid.login',
-     'mediagoblin/auth/login.html'): add_to_form_context,
 }