+ def permission_to_update
+ return false unless current_user
+ if self.owner_changed? and self.owner_was != self.uuid
+ return Metadatum.where(metadata_class: 'permission',
+ name: 'can_pillage',
+ tail: self.owner,
+ head: current_user.uuid).count > 0
+ end
+ self.owner == current_user.uuid or
+ current_user.is_admin or
+ current_user.uuid == self.uuid or
+ Metadatum.where(metadata_class: 'permission',
+ name: 'can_write',
+ tail: self.owner,
+ head: current_user.uuid).count > 0
+ end
+