diff --git a/circle/acl/models.py b/circle/acl/models.py
index a47067a..2bce06d 100644
--- a/circle/acl/models.py
+++ b/circle/acl/models.py
@@ -71,6 +71,17 @@ class AclBase(Model):
     """Define permission levels for Users/Groups per object."""
     object_level_set = GenericRelation(ObjectLevel)
 
+    def clone_acl(self, other):
+        """Clone full ACL from other object."""
+        assert self.id != other.id or type(self) != type(other)
+        self.object_level_set.clear()
+        for i in other.object_level_set.all():
+            ol = self.object_level_set.create(level=i.level)
+            for j in i.users.all():
+                ol.users.add(j)
+            for j in i.groups.all():
+                ol.groups.add(j)
+
     @classmethod
     def get_level_object(cls, level):