diff options
Diffstat (limited to 'app/models/user_query.rb')
-rw-r--r-- | app/models/user_query.rb | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/app/models/user_query.rb b/app/models/user_query.rb index e805af2b5..fc8ba6463 100644 --- a/app/models/user_query.rb +++ b/app/models/user_query.rb @@ -17,6 +17,7 @@ # along with this program; if not, write to the Free Software class UserQuery < Query + self.layout = 'admin' self.queried_class = Principal # must be Principal (not User) for custom field filters to work self.available_columns = [ @@ -33,6 +34,15 @@ class UserQuery < Query QueryAssociationColumn.new(:auth_source, :name, caption: :field_auth_source, sortable: "#{AuthSource.table_name}.name") ] + def self.visible(*args) + user = args.shift || User.current + if user.admin? + where('1=1') + else + where('1=0') + end + end + def initialize(attributes=nil, *args) super(attributes) self.filters ||= { 'status' => {operator: "=", values: [User::STATUS_ACTIVE]} } @@ -64,6 +74,14 @@ class UserQuery < Query add_custom_fields_filters(user_custom_fields) end + def visible?(user=User.current) + user&.admin? + end + + def editable_by?(user) + user&.admin? + end + def auth_sources_values AuthSource.order(name: :asc).pluck(:name, :id) end |