projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixes PipelineInstancesControllerTest. application_controller#create now does
[arvados.git]
/
apps
/
workbench
/
app
/
models
/
arvados_base.rb
diff --git
a/apps/workbench/app/models/arvados_base.rb
b/apps/workbench/app/models/arvados_base.rb
index 7d8603782ee252a89399aa9a184d83678d6cfdf8..33e107e3693c94b4954f4e155312b060ab50205e 100644
(file)
--- a/
apps/workbench/app/models/arvados_base.rb
+++ b/
apps/workbench/app/models/arvados_base.rb
@@
-1,6
+1,7
@@
class ArvadosBase < ActiveRecord::Base
self.abstract_class = true
attr_accessor :attribute_sortkey
class ArvadosBase < ActiveRecord::Base
self.abstract_class = true
attr_accessor :attribute_sortkey
+ attr_accessor :create_params
def self.arvados_api_client
ArvadosApiClient.new_or_current
def self.arvados_api_client
ArvadosApiClient.new_or_current
@@
-29,8
+30,9
@@
class ArvadosBase < ActiveRecord::Base
end
end
end
end
- def initialize raw_params={}
+ def initialize raw_params={}
, create_params={}
super self.class.permit_attribute_params(raw_params)
super self.class.permit_attribute_params(raw_params)
+ @create_params = create_params
@attribute_sortkey ||= {
'id' => nil,
'name' => '000',
@attribute_sortkey ||= {
'id' => nil,
'name' => '000',
@@
-144,8
+146,10
@@
class ArvadosBase < ActiveRecord::Base
ActionController::Parameters.new(raw_params).permit!
end
ActionController::Parameters.new(raw_params).permit!
end
- def self.create raw_params={}
- super(permit_attribute_params(raw_params))
+ def self.create raw_params={}, create_params={}
+ x = super(permit_attribute_params(raw_params))
+ x.create_params = create_params
+ x
end
def update_attributes raw_params={}
end
def update_attributes raw_params={}
@@
-164,6
+168,7
@@
class ArvadosBase < ActiveRecord::Base
obdata.delete :uuid
resp = arvados_api_client.api(self.class, '/' + uuid, postdata)
else
obdata.delete :uuid
resp = arvados_api_client.api(self.class, '/' + uuid, postdata)
else
+ postdata.merge!(@create_params) if @create_params
resp = arvados_api_client.api(self.class, '', postdata)
end
return false if !resp[:etag] || !resp[:uuid]
resp = arvados_api_client.api(self.class, '', postdata)
end
return false if !resp[:etag] || !resp[:uuid]
@@
-289,6
+294,10
@@
class ArvadosBase < ActiveRecord::Base
current_user
end
current_user
end
+ def self.goes_in_folders?
+ false
+ end
+
def editable?
(current_user and current_user.is_active and
(current_user.is_admin or
def editable?
(current_user and current_user.is_active and
(current_user.is_admin or
@@
-297,13
+306,15
@@
class ArvadosBase < ActiveRecord::Base
(writable_by.include? current_user.uuid rescue false)))
end
(writable_by.include? current_user.uuid rescue false)))
end
- def attribute_editable?(attr)
+ def attribute_editable?(attr
, ever=nil
)
if "created_at modified_at modified_by_user_uuid modified_by_client_uuid updated_at".index(attr.to_s)
false
elsif not (current_user.andand.is_active)
false
elsif attr == 'uuid'
current_user.is_admin
if "created_at modified_at modified_by_user_uuid modified_by_client_uuid updated_at".index(attr.to_s)
false
elsif not (current_user.andand.is_active)
false
elsif attr == 'uuid'
current_user.is_admin
+ elsif ever
+ true
else
editable?
end
else
editable?
end