diff --git a/app/controllers/roles_controller.rb b/app/controllers/roles_controller.rb index eac8636..2232195 100644 --- a/app/controllers/roles_controller.rb +++ b/app/controllers/roles_controller.rb @@ -40,7 +40,7 @@ email: user.email } @role.user = user - if @role.save! + if @role.save if registered deliver_if(recipients: user, key: "users.added_as_coowner") do |r| UserMailer.sharing_notification(@role, r, inviter: current_user) diff --git a/app/models/plan.rb b/app/models/plan.rb index 470bb2c..8874010 100644 --- a/app/models/plan.rb +++ b/app/models/plan.rb @@ -336,8 +336,7 @@ # # Returns Boolean def editable_by?(user_id) - role = Role.find_by(plan_id: id, user_id: user_id, active: true) - (role.present? ? role.editor? : false) + Role.editor.where(plan_id: id, user_id: user_id, active: true).any? end ## @@ -358,8 +357,7 @@ Branding.fetch(:service_configuration, :plans, :org_admins_read_all) true else - role = Role.find_by(plan_id: id, user_id: user_id, active: true) - (role.present? ? role.commenter? : false) + commentable_by?(user_id) end else false @@ -372,8 +370,7 @@ # # Returns Boolean def commentable_by?(user_id) - role = Role.find_by(plan_id: id, user_id: user_id, active: true) - (role.present? ? role.commenter? : false) + Role.commenter.where(plan_id: id, user_id: user_id, active: true).any? end # determines if the plan is administerable by the specified user @@ -382,8 +379,7 @@ # # Returns Boolean def administerable_by?(user_id) - role = Role.find_by(plan_id: id, user_id: user_id, active: true) - (role.present? ? role.administrator? : false) + Role.administrator.where(plan_id: id, user_id: user_id, active: true).any? end # determines if the plan is reviewable by the specified user @@ -392,8 +388,7 @@ # # Returns Boolean def reviewable_by?(user_id) - role = Role.find_by(plan_id: id, user_id: user_id, active: true) - (role.present? ? role.reviewer? : false) + Role.reviewer.where(plan_id: id, user_id: user_id, active: true).any? end # the datetime for the latest update of this plan