# HG changeset patch # User Marcin Kuzminski # Date 1282246688 -7200 # Node ID b6a25169c005cd1da564973ebcee194435dfcdce # Parent 9b67cebe660906e77a61d696c55738c2954a511c fixes #25 removed crypt based password hashing and changed it into sha1 based. diff -r 9b67cebe6609 -r b6a25169c005 pylons_app/lib/auth.py --- a/pylons_app/lib/auth.py Wed Aug 18 19:41:08 2010 +0200 +++ b/pylons_app/lib/auth.py Thu Aug 19 21:38:08 2010 +0200 @@ -30,19 +30,18 @@ from pylons_app.model.db import User, RepoToPerm, Repository, Permission from sqlalchemy.exc import OperationalError from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound -import crypt +import hashlib from decorator import decorator import logging log = logging.getLogger(__name__) def get_crypt_password(password): - """ - Cryptographic function used for password hashing + """Cryptographic function used for password hashing based on sha1 @param password: password to hash """ - return crypt.crypt(password, '6a') - + hashed = hashlib.sha1(password).hexdigest() + return hashed[3:] + hashed[:3] @cache_region('super_short_term', 'cached_user') def get_user_cached(username): @@ -151,6 +150,8 @@ else: user.permissions['global'].add('repository.create') + user.permissions['global'].add('hg.register') + for perm in default_perms: if perm.Repository.private and not perm.Repository.user_id == user.user_id: #disable defaults for private repos, @@ -187,7 +188,7 @@ user = session.get('hg_app_user', AuthUser()) if user.is_authenticated: user = fill_data(user) - user = fill_perms(user) + user = fill_perms(user) session['hg_app_user'] = user session.save() return user