X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/4cb02985f6d0b8aa436ed86506eb9b4d9d7d1c36..9bd3b2729a61f62ddbab10ac65fd9f7de837a10d:/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 16f03430f7..5a6ce0af81 100644 --- a/services/api/app/models/arvados_model.rb +++ b/services/api/app/models/arvados_model.rb @@ -1,10 +1,12 @@ require 'has_uuid' +require 'record_filters' class ArvadosModel < ActiveRecord::Base self.abstract_class = true include CurrentApiClient # current_user, current_api_client, etc. include DbCurrentTime + extend RecordFilters attr_protected :created_at attr_protected :modified_by_user_uuid @@ -270,6 +272,15 @@ class ArvadosModel < ActiveRecord::Base "to_tsvector('english', ' ' || #{parts.join(" || ' ' || ")})" end + def self.apply_filters query, filters + ft = record_filters filters, self + if not ft[:cond_out].any? + return query + end + query.where('(' + ft[:cond_out].join(') AND (') + ')', + *ft[:param_out]) + end + protected def ensure_ownership_path_leads_to_user