aboutsummaryrefslogtreecommitdiff
path: root/rhodecode/model/user.py
diff options
context:
space:
mode:
authorMarcin Kuzminski <marcin@python-works.com>2011-11-26 17:51:03 +0200
committerMarcin Kuzminski <marcin@python-works.com>2011-11-26 17:51:03 +0200
commitf437fdf086c99d83d264d769a521b0b2859a8e52 (patch)
treee18409deb42f2545ab3d6288e862ea543f9309e6 /rhodecode/model/user.py
parent04f6ae7f31be52b182f3158633b6a1c53ed58337 (diff)
- fixes celery sqlalchemy session issues for async forking
- summary page css fixes - speed optimizations --HG-- branch : beta
Diffstat (limited to 'rhodecode/model/user.py')
-rw-r--r--rhodecode/model/user.py36
1 files changed, 16 insertions, 20 deletions
diff --git a/rhodecode/model/user.py b/rhodecode/model/user.py
index e7093d2c..10926dd9 100644
--- a/rhodecode/model/user.py
+++ b/rhodecode/model/user.py
@@ -89,7 +89,7 @@ class UserModel(BaseModel):
raise
- def create_or_update(self, username, password, email, name, lastname,
+ def create_or_update(self, username, password, email, name, lastname,
active=True, admin=False, ldap_dn=None):
"""
Creates a new instance if not found, or updates current one
@@ -104,18 +104,18 @@ class UserModel(BaseModel):
:param admin:
:param ldap_dn:
"""
-
+
from rhodecode.lib.auth import get_crypt_password
-
+
log.debug('Checking for %s account in RhodeCode database', username)
user = User.get_by_username(username, case_insensitive=True)
if user is None:
- log.debug('creating new user %s', username)
+ log.debug('creating new user %s', username)
new_user = User()
else:
- log.debug('updating user %s', username)
+ log.debug('updating user %s', username)
new_user = user
-
+
try:
new_user.username = username
new_user.admin = admin
@@ -134,8 +134,8 @@ class UserModel(BaseModel):
log.error(traceback.format_exc())
self.sa.rollback()
raise
-
-
+
+
def create_for_container_auth(self, username, attrs):
"""
Creates the given user if it's not already in the database
@@ -354,14 +354,10 @@ class UserModel(BaseModel):
#======================================================================
# fetch default permissions
#======================================================================
- default_user = User.get_by_username('default')
+ default_user = User.get_by_username('default', cache=True)
+ default_user_id = default_user.user_id
- default_perms = self.sa.query(UserRepoToPerm, Repository, Permission)\
- .join((Repository, UserRepoToPerm.repository_id ==
- Repository.repo_id))\
- .join((Permission, UserRepoToPerm.permission_id ==
- Permission.permission_id))\
- .filter(UserRepoToPerm.user == default_user).all()
+ default_perms = Permission.get_default_perms(default_user_id)
if user.is_admin:
#==================================================================
@@ -382,7 +378,7 @@ class UserModel(BaseModel):
#default global
default_global_perms = self.sa.query(UserToPerm)\
- .filter(UserToPerm.user == default_user)
+ .filter(UserToPerm.user_id == default_user_id)
for perm in default_global_perms:
user.permissions['global'].add(perm.permission.permission_name)
@@ -391,7 +387,7 @@ class UserModel(BaseModel):
for perm in default_perms:
if perm.Repository.private and not (perm.Repository.user_id ==
uid):
- #diself.sable defaults for private repos,
+ #disable defaults for private repos,
p = 'repository.none'
elif perm.Repository.user_id == uid:
#set admin if owner
@@ -438,7 +434,7 @@ class UserModel(BaseModel):
# (or replace with higher) permissions
#==================================================================
- #users group global
+ # users group global
user_perms_from_users_groups = self.sa.query(UsersGroupToPerm)\
.options(joinedload(UsersGroupToPerm.permission))\
.join((UsersGroupMember, UsersGroupToPerm.users_group_id ==
@@ -448,7 +444,7 @@ class UserModel(BaseModel):
for perm in user_perms_from_users_groups:
user.permissions['global'].add(perm.permission.permission_name)
- #users group repositories
+ # users group repositories
user_repo_perms_from_users_groups = self.sa.query(
UsersGroupRepoToPerm,
Permission, Repository,)\
@@ -465,7 +461,7 @@ class UserModel(BaseModel):
cur_perm = user.permissions['repositories'][perm.
UsersGroupRepoToPerm.
repository.repo_name]
- #overwrite permission only if it's greater than permission
+ # overwrite permission only if it's greater than permission
# given from other sources
if PERM_WEIGHTS[p] > PERM_WEIGHTS[cur_perm]:
user.permissions['repositories'][perm.UsersGroupRepoToPerm.