Merge branch 'master' into 4383-easy-install
[arvados.git] / services / api / app / models / arvados_model.rb
index 2a98591a36ee10bae8826ff492840c7544f7a40f..13ccd7033560318c2db2687928a08a4e5de0d44e 100644 (file)
@@ -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