attr_protected :modified_at
before_create :ensure_permission_to_create
before_update :ensure_permission_to_update
+ before_destroy :ensure_permission_to_destroy
before_create :update_modified_by_fields
before_update :maybe_update_modified_by_fields
validate :ensure_serialized_attribute_type
end
end
+ def ensure_permission_to_destroy
+ raise PermissionDeniedError unless permission_to_destroy
+ end
+
+ def permission_to_destroy
+ permission_to_update
+ end
+
def maybe_update_modified_by_fields
update_modified_by_fields if self.changed?
end