Mercurial > kallithea
diff rhodecode/model/user.py @ 1758:a87aa385f21c beta
fixed repo_create permission by adding missing commit statements
- added few tests for checking permission in UserModel
- added __json__() into get_dict() to fetch from it hybrid_properties and any additional custom properties
- code garden
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Tue, 06 Dec 2011 04:06:01 +0200 |
parents | 8ecc6b8229a5 |
children | cf51bbfb120e |
line wrap: on
line diff
--- a/rhodecode/model/user.py Tue Dec 06 01:18:27 2011 +0200 +++ b/rhodecode/model/user.py Tue Dec 06 04:06:01 2011 +0200 @@ -281,9 +281,10 @@ log.error(traceback.format_exc()) raise - def delete(self, user_id): + def delete(self, user): + user = self.__get_user(user) + try: - user = self.get(user_id, cache=False) if user.username == 'default': raise DefaultUserException( _("You can't remove this user since it's" @@ -470,35 +471,37 @@ return user - - def has_perm(self, user, perm): if not isinstance(perm, Permission): - raise Exception('perm needs to be an instance of Permission class') + raise Exception('perm needs to be an instance of Permission class ' + 'got %s instead' % type(perm)) user = self.__get_user(user) - return UserToPerm.query().filter(UserToPerm.user == user.user)\ + return UserToPerm.query().filter(UserToPerm.user == user)\ .filter(UserToPerm.permission == perm).scalar() is not None def grant_perm(self, user, perm): if not isinstance(perm, Permission): - raise Exception('perm needs to be an instance of Permission class') + raise Exception('perm needs to be an instance of Permission class ' + 'got %s instead' % type(perm)) user = self.__get_user(user) new = UserToPerm() - new.user = user.user + new.user = user new.permission = perm self.sa.add(new) def revoke_perm(self, user, perm): if not isinstance(perm, Permission): - raise Exception('perm needs to be an instance of Permission class') + raise Exception('perm needs to be an instance of Permission class ' + 'got %s instead' % type(perm)) user = self.__get_user(user) - obj = UserToPerm.query().filter(UserToPerm.user == user.user)\ - .filter(UserToPerm.permission == perm).one() - self.sa.delete(obj) + obj = UserToPerm.query().filter(UserToPerm.user == user)\ + .filter(UserToPerm.permission == perm).scalar() + if obj: + self.sa.delete(obj)