[copr] master: Admins can delete coprs now (f21e346)

bkabrda at fedoraproject.org bkabrda at fedoraproject.org
Tue Apr 2 13:24:13 UTC 2013


Repository : http://git.fedorahosted.org/cgit/copr.git

On branch  : master

>---------------------------------------------------------------

commit f21e3462ff5c9d63f2bb6b661819c726029b2306
Author: Bohuslav Kabrda <bkabrda at redhat.com>
Date:   Tue Apr 2 13:47:15 2013 +0200

    Admins can delete coprs now


>---------------------------------------------------------------

 coprs_frontend/coprs/logic/coprs_logic.py |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/coprs_frontend/coprs/logic/coprs_logic.py b/coprs_frontend/coprs/logic/coprs_logic.py
index d5cf340..2c15df0 100644
--- a/coprs_frontend/coprs/logic/coprs_logic.py
+++ b/coprs_frontend/coprs/logic/coprs_logic.py
@@ -121,8 +121,7 @@ class CoprsLogic(object):
 
     @classmethod
     def delete(cls, user, copr, check_for_duplicates=True):
-        if not copr.owner == user:
-            raise exceptions.InsufficientRightsException('Only owners may delete their Coprs.')
+        cls.raise_if_cant_delete(user, copr)
         # TODO: do we want to dump the information somewhere, so that we can search it in future?
         cls.raise_if_unfinished_blocking_action(user, copr,
                                        'Can\'t delete this Copr, another operation is in progress: {action}')
@@ -170,6 +169,14 @@ class CoprsLogic(object):
         if unfinished_actions:
             raise exceptions.ActionInProgressException(message, unfinished_actions[0])
 
+    @classmethod
+    def raise_if_cant_delete(cls, user, copr):
+        """This method raises InsufficientRightsException if given copr cant be deleted
+        by given user. Returns None otherwise.
+        """
+        if not user.admin and user != copr.owner:
+            raise exceptions.InsufficientRightsException('Only owners may delete their Coprs.')
+
 class CoprPermissionsLogic(object):
     @classmethod
     def get(cls, user, copr, searched_user):



More information about the copr-devel mailing list