X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/4671db01d21dad219582444592e99a74d1fa35d8..a22d6e6bf03c6f274237f775a4c02122c9ce38ef:/services/api/app/models/arvados_model.rb diff --git a/services/api/app/models/arvados_model.rb b/services/api/app/models/arvados_model.rb index 2a98591a36..13ccd70335 100644 --- a/services/api/app/models/arvados_model.rb +++ b/services/api/app/models/arvados_model.rb @@ -36,19 +36,18 @@ class ArvadosModel < ActiveRecord::Base end end - class UnauthorizedError < StandardError + class AlreadyLockedError < StandardError def http_status - 401 + 403 end end - class ConflictError < StandardError + class UnauthorizedError < StandardError def http_status - 409 + 401 end end - def self.kind_class(kind) kind.match(/^arvados\#(.+)$/)[1].classify.safe_constantize rescue nil end @@ -111,7 +110,8 @@ class ArvadosModel < ActiveRecord::Base unless (owner_uuid == current_user.uuid or current_user.is_admin or (current_user.groups_i_can(:manage) & [uuid, owner_uuid]).any?) - if current_user.groups_i_can(:write).index(uuid) + if ((current_user.groups_i_can(:write) + [current_user.uuid]) & + [uuid, owner_uuid]).any? return [owner_uuid, current_user.uuid] else return [owner_uuid] @@ -527,7 +527,6 @@ class ArvadosModel < ActiveRecord::Base log = Log.new(event_type: event_type).fill_object(self) yield log log.save! - connection.execute "NOTIFY logs, '#{log.id}'" log_start_state end