# HG changeset patch # User Mads Kiilerich # Date 1420502076 -3600 # Node ID 5f0e40fad7da9b05280fe01f09060ce2d8f037d9 # Parent 2982360d25476a9d6a9b6781d2fd6a4c6dc84e38 user: prevent deletion of users that are owners of a repo group TODO: make it possible to reassign group ownership diff -r 2982360d2547 -r 5f0e40fad7da kallithea/model/db.py --- a/kallithea/model/db.py Sun Jan 04 14:03:23 2015 +0200 +++ b/kallithea/model/db.py Tue Jan 06 00:54:36 2015 +0100 @@ -421,6 +421,7 @@ user_perms = relationship('UserToPerm', primaryjoin="User.user_id==UserToPerm.user_id", cascade='all') repositories = relationship('Repository') + repo_groups = relationship('RepoGroup') user_followers = relationship('UserFollowing', primaryjoin='UserFollowing.follows_user_id==User.user_id', cascade='all') followings = relationship('UserFollowing', primaryjoin='UserFollowing.user_id==User.user_id', cascade='all') diff -r 2982360d2547 -r 5f0e40fad7da kallithea/model/user.py --- a/kallithea/model/user.py Sun Jan 04 14:03:23 2015 +0200 +++ b/kallithea/model/user.py Tue Jan 06 00:54:36 2015 +0100 @@ -258,10 +258,17 @@ if user.repositories: repos = [x.repo_name for x in user.repositories] raise UserOwnsReposException( - _(u'user "%s" still owns %s repositories and cannot be ' - 'removed. Switch owners or remove those repositories. %s') + _(u'User "%s" still owns %s repositories and cannot be ' + 'removed. Switch owners or remove those repositories: %s') % (user.username, len(repos), ', '.join(repos)) ) + if user.repo_groups: + repogroups = [x.group_name for x in user.repo_groups] + raise UserOwnsReposException( + _(u'User "%s" still owns %s repository groups and cannot be ' + 'removed. Switch owners or remove those repository groups: %s') + % (user.username, len(repogroups), ', '.join(repogroups)) + ) self.sa.delete(user) from kallithea.lib.hooks import log_delete_user