mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: changes so plugins can customize invites UI (#9365)
* DEV: changes so plugins can customize invites UI Co-Authored-By: Robin Ward <robin.ward@gmail.com>
This commit is contained in:
@@ -0,0 +1,4 @@
|
|||||||
|
import Controller from "@ember/controller";
|
||||||
|
import ModalFunctionality from "discourse/mixins/modal-functionality";
|
||||||
|
|
||||||
|
export default Controller.extend(ModalFunctionality);
|
||||||
@@ -317,8 +317,12 @@ class UsersController < ApplicationController
|
|||||||
filter_sql = '(LOWER(invites.email) LIKE :filter) or (LOWER(users.username) LIKE :filter)' if show_emails
|
filter_sql = '(LOWER(invites.email) LIKE :filter) or (LOWER(users.username) LIKE :filter)' if show_emails
|
||||||
invites = invites.where(filter_sql, filter: "%#{params[:search].downcase}%")
|
invites = invites.where(filter_sql, filter: "%#{params[:search].downcase}%")
|
||||||
end
|
end
|
||||||
render_json_dump invites: serialize_data(invites.to_a, InviteSerializer, show_emails: show_emails),
|
|
||||||
can_see_invite_details: guardian.can_see_invite_details?(inviter)
|
render json: MultiJson.dump(InvitedSerializer.new(
|
||||||
|
OpenStruct.new(invite_list: invites.to_a, show_emails: show_emails, inviter: inviter),
|
||||||
|
scope: guardian,
|
||||||
|
root: false
|
||||||
|
))
|
||||||
end
|
end
|
||||||
|
|
||||||
def invited_count
|
def invited_count
|
||||||
|
|||||||
22
app/serializers/invited_serializer.rb
Normal file
22
app/serializers/invited_serializer.rb
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class InvitedSerializer < ApplicationSerializer
|
||||||
|
attributes :invites, :can_see_invite_details
|
||||||
|
|
||||||
|
def invites
|
||||||
|
ActiveModel::ArraySerializer.new(
|
||||||
|
object.invite_list,
|
||||||
|
scope: scope,
|
||||||
|
root: false,
|
||||||
|
show_emails: object.show_emails
|
||||||
|
).as_json
|
||||||
|
end
|
||||||
|
|
||||||
|
def can_see_invite_details
|
||||||
|
scope.can_see_invite_details?(object.inviter)
|
||||||
|
end
|
||||||
|
|
||||||
|
def read_attribute_for_serialization(attr)
|
||||||
|
object.respond_to?(attr) ? object.public_send(attr) : public_send(attr)
|
||||||
|
end
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user