models: refactor search visibility methods.
Refactor how model visibility works in index actions: * Call `visible` in the controller instead of in model `search` methods. This decouples model visibility from model searching. * Explicitly pass CurrentUser when calling `visible`. This reduces hidden dependencies on the current user inside models. * Standardize on calling the method `visible`. In some places it was called `permitted` instead. * Add a `visible` base method to ApplicationModel.
This commit is contained in:
@@ -8,10 +8,10 @@ class UserNameChangeRequest < ApplicationRecord
|
||||
|
||||
after_create :update_name!
|
||||
|
||||
def self.visible(viewer = CurrentUser.user)
|
||||
if viewer.is_admin?
|
||||
def self.visible(user)
|
||||
if user.is_admin?
|
||||
all
|
||||
elsif viewer.is_member?
|
||||
elsif user.is_member?
|
||||
where(user: User.undeleted)
|
||||
else
|
||||
none
|
||||
|
||||
Reference in New Issue
Block a user