Implement admin mode overrides

This commit is contained in:
Justin Edmund 2023-08-24 21:58:11 -07:00
parent 9a930c8d99
commit c17f723388

View file

@ -33,7 +33,8 @@ module Api
def show def show
# If a party is private, check that the user is the owner # If a party is private, check that the user is the owner
return render_unauthorized_response if @party.private? && @party.user != current_user not_owner = current_user && @party.private? && @party.user != current_user
return render_unauthorized_response if !current_user || (not_owner && !admin_mode)
return render json: PartyBlueprint.render(@party, view: :full, root: :party) if @party return render json: PartyBlueprint.render(@party, view: :full, root: :party) if @party
@ -93,7 +94,7 @@ module Api
conditions = build_filters conditions = build_filters
conditions[:favorites] = { user_id: current_user.id } conditions[:favorites] = { user_id: current_user.id }
query = build_query(conditions, true) query = build_query(conditions, favorites: true)
query = apply_includes(query, params[:includes]) if params[:includes].present? query = apply_includes(query, params[:includes]) if params[:includes].present?
query = apply_excludes(query, params[:excludes]) if params[:excludes].present? query = apply_excludes(query, params[:excludes]) if params[:excludes].present?
@ -160,7 +161,7 @@ module Api
.joins(weapons: [:object], summons: [:object], characters: [:object]) .joins(weapons: [:object], summons: [:object], characters: [:object])
.group('parties.id') .group('parties.id')
.where(conditions) .where(conditions)
.where(privacy(favorites)) .where(privacy(favorites: favorites))
.where(name_quality) .where(name_quality)
.where(user_quality) .where(user_quality)
.where(original) .where(original)
@ -247,6 +248,8 @@ module Api
end end
def privacy(favorites: false) def privacy(favorites: false)
return if admin_mode
if favorites if favorites
'visibility < 3' 'visibility < 3'
else else