Mercurial > kallithea
comparison rhodecode/model/repo.py @ 2820:c0cc8f8a71b0 beta
Permissions on group can be set in recursive mode setting defined permission to all children
- more explicit permissions
- fixes for empty values in permission form
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 07 Sep 2012 02:20:02 +0200 |
parents | 839ee7a774ab |
children | f7a52d548fd0 1b275d04ac07 |
comparison
equal
deleted
inserted
replaced
2819:bbaf0b86a1fe | 2820:c0cc8f8a71b0 |
---|---|
366 obj = UserRepoToPerm() | 366 obj = UserRepoToPerm() |
367 obj.repository = repo | 367 obj.repository = repo |
368 obj.user = user | 368 obj.user = user |
369 obj.permission = permission | 369 obj.permission = permission |
370 self.sa.add(obj) | 370 self.sa.add(obj) |
371 log.debug('Granted perm %s to %s on %s' % (perm, user, repo)) | |
371 | 372 |
372 def revoke_user_permission(self, repo, user): | 373 def revoke_user_permission(self, repo, user): |
373 """ | 374 """ |
374 Revoke permission for user on given repository | 375 Revoke permission for user on given repository |
375 | 376 |
381 repo = self._get_repo(repo) | 382 repo = self._get_repo(repo) |
382 | 383 |
383 obj = self.sa.query(UserRepoToPerm)\ | 384 obj = self.sa.query(UserRepoToPerm)\ |
384 .filter(UserRepoToPerm.repository == repo)\ | 385 .filter(UserRepoToPerm.repository == repo)\ |
385 .filter(UserRepoToPerm.user == user)\ | 386 .filter(UserRepoToPerm.user == user)\ |
386 .one() | 387 .scalar() |
387 self.sa.delete(obj) | 388 if obj: |
389 self.sa.delete(obj) | |
390 log.debug('Revoked perm on %s on %s' % (repo, user)) | |
388 | 391 |
389 def grant_users_group_permission(self, repo, group_name, perm): | 392 def grant_users_group_permission(self, repo, group_name, perm): |
390 """ | 393 """ |
391 Grant permission for users group on given repository, or update | 394 Grant permission for users group on given repository, or update |
392 existing one if found | 395 existing one if found |
412 | 415 |
413 obj.repository = repo | 416 obj.repository = repo |
414 obj.users_group = group_name | 417 obj.users_group = group_name |
415 obj.permission = permission | 418 obj.permission = permission |
416 self.sa.add(obj) | 419 self.sa.add(obj) |
420 log.debug('Granted perm %s to %s on %s' % (perm, group_name, repo)) | |
417 | 421 |
418 def revoke_users_group_permission(self, repo, group_name): | 422 def revoke_users_group_permission(self, repo, group_name): |
419 """ | 423 """ |
420 Revoke permission for users group on given repository | 424 Revoke permission for users group on given repository |
421 | 425 |
427 group_name = self.__get_users_group(group_name) | 431 group_name = self.__get_users_group(group_name) |
428 | 432 |
429 obj = self.sa.query(UsersGroupRepoToPerm)\ | 433 obj = self.sa.query(UsersGroupRepoToPerm)\ |
430 .filter(UsersGroupRepoToPerm.repository == repo)\ | 434 .filter(UsersGroupRepoToPerm.repository == repo)\ |
431 .filter(UsersGroupRepoToPerm.users_group == group_name)\ | 435 .filter(UsersGroupRepoToPerm.users_group == group_name)\ |
432 .one() | 436 .scalar() |
433 self.sa.delete(obj) | 437 if obj: |
438 self.sa.delete(obj) | |
439 log.debug('Revoked perm to %s on %s' % (repo, group_name)) | |
434 | 440 |
435 def delete_stats(self, repo_name): | 441 def delete_stats(self, repo_name): |
436 """ | 442 """ |
437 removes stats for given repo | 443 removes stats for given repo |
438 | 444 |