mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 16:21:18 +08:00
FIX: Create group membership request on behalf of user.
This commit is contained in:
@ -5,7 +5,8 @@ class GroupsController < ApplicationController
|
||||
:mentionable,
|
||||
:update,
|
||||
:messages,
|
||||
:histories
|
||||
:histories,
|
||||
:request_membership
|
||||
]
|
||||
|
||||
skip_before_filter :preload_json, :check_xhr, only: [:posts_feed, :mentions_feed]
|
||||
@ -136,16 +137,6 @@ class GroupsController < ApplicationController
|
||||
}
|
||||
end
|
||||
|
||||
def owners
|
||||
group = find_group(:group_id)
|
||||
|
||||
owners = group.users.where('group_users.owner')
|
||||
.order("users.last_seen_at DESC")
|
||||
.limit(5)
|
||||
|
||||
render_serialized(owners, GroupUserSerializer)
|
||||
end
|
||||
|
||||
def add_members
|
||||
group = Group.find(params[:id])
|
||||
group.public ? ensure_logged_in : guardian.ensure_can_edit!(group)
|
||||
@ -238,7 +229,27 @@ class GroupsController < ApplicationController
|
||||
else
|
||||
render_json_error(group)
|
||||
end
|
||||
end
|
||||
|
||||
def request_membership
|
||||
unless current_user.staff?
|
||||
RateLimiter.new(current_user, "request_group_membership", 1, 1.day).performed!
|
||||
end
|
||||
|
||||
group = find_group(:id)
|
||||
group_name = group.name
|
||||
username = current_user.username
|
||||
|
||||
post = PostCreator.new(current_user,
|
||||
title: I18n.t('groups.request_membership_pm.title', group_name: group_name),
|
||||
raw: I18n.t('groups.request_membership_pm.body', group_name: group_name),
|
||||
archetype: Archetype.private_message,
|
||||
target_usernames: username,
|
||||
target_group_names: group_name,
|
||||
skip_validations: true
|
||||
).create!
|
||||
|
||||
render json: success_json.merge(relative_url: post.topic.relative_url)
|
||||
end
|
||||
|
||||
def set_notifications
|
||||
|
Reference in New Issue
Block a user