module PermissionHelpers def create_user_assignment(object, role, user, assigned_by = nil) unless UserAssignment.where(assignable: object, user: user, user_role: role).any? create :user_assignment, assignable: object, user: user, user_role: role, assigned_by: assigned_by || user end case object when MyModule create_user_assignment(object.experiment, role, user, assigned_by) when Experiment create_user_assignment(object.project, role, user, assigned_by) end end end