mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: Add group settngs to allow users to leave a group freely.
https://meta.discourse.org/t/split-join-leave-freely-setting-on-groups/65565
This commit is contained in:
@@ -67,7 +67,13 @@ class Admin::GroupsController < Admin::AdminController
|
||||
group.flair_url = group_params[:flair_url].presence
|
||||
group.flair_bg_color = group_params[:flair_bg_color].presence
|
||||
group.flair_color = group_params[:flair_color].presence
|
||||
group.public = group_params[:public] if group_params[:public]
|
||||
|
||||
%i{public_admission public_exit}.each do |key|
|
||||
if group_params[key]
|
||||
group.public_send("#{key}=", group_params[key])
|
||||
end
|
||||
end
|
||||
|
||||
group.bio_raw = group_params[:bio_raw] if group_params[:bio_raw]
|
||||
group.full_name = group_params[:full_name] if group_params[:full_name]
|
||||
|
||||
@@ -169,11 +175,26 @@ class Admin::GroupsController < Admin::AdminController
|
||||
|
||||
def group_params
|
||||
params.require(:group).permit(
|
||||
:name, :alias_level, :visibility_level, :automatic_membership_email_domains,
|
||||
:automatic_membership_retroactive, :title, :primary_group,
|
||||
:grant_trust_level, :incoming_email, :flair_url, :flair_bg_color,
|
||||
:flair_color, :bio_raw, :public, :allow_membership_requests, :full_name,
|
||||
:default_notification_level, :usernames, :owner_usernames
|
||||
:name,
|
||||
:alias_level,
|
||||
:visibility_level,
|
||||
:automatic_membership_email_domains,
|
||||
:automatic_membership_retroactive,
|
||||
:title,
|
||||
:primary_group,
|
||||
:grant_trust_level,
|
||||
:incoming_email,
|
||||
:flair_url,
|
||||
:flair_bg_color,
|
||||
:flair_color,
|
||||
:bio_raw,
|
||||
:public_admission,
|
||||
:public_exit,
|
||||
:allow_membership_requests,
|
||||
:full_name,
|
||||
:default_notification_level,
|
||||
:usernames,
|
||||
:owner_usernames
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -146,7 +146,7 @@ class GroupsController < ApplicationController
|
||||
|
||||
def add_members
|
||||
group = Group.find(params[:id])
|
||||
group.public ? ensure_logged_in : guardian.ensure_can_edit!(group)
|
||||
group.public_admission ? ensure_logged_in : guardian.ensure_can_edit!(group)
|
||||
|
||||
users =
|
||||
if params[:usernames].present?
|
||||
@@ -163,7 +163,7 @@ class GroupsController < ApplicationController
|
||||
|
||||
raise Discourse::NotFound if users.blank?
|
||||
|
||||
if group.public
|
||||
if group.public_admission
|
||||
if !guardian.can_log_group_changes?(group) && current_user != users.first
|
||||
raise Discourse::InvalidAccess
|
||||
end
|
||||
@@ -201,7 +201,7 @@ class GroupsController < ApplicationController
|
||||
|
||||
def remove_member
|
||||
group = Group.find(params[:id])
|
||||
group.public ? ensure_logged_in : guardian.ensure_can_edit!(group)
|
||||
group.public_exit ? ensure_logged_in : guardian.ensure_can_edit!(group)
|
||||
|
||||
user =
|
||||
if params[:user_id].present?
|
||||
@@ -216,7 +216,7 @@ class GroupsController < ApplicationController
|
||||
|
||||
raise Discourse::NotFound unless user
|
||||
|
||||
if group.public
|
||||
if group.public_exit
|
||||
if !guardian.can_log_group_changes?(group) && current_user != user
|
||||
raise Discourse::InvalidAccess
|
||||
end
|
||||
@@ -322,7 +322,8 @@ class GroupsController < ApplicationController
|
||||
:flair_color,
|
||||
:bio_raw,
|
||||
:full_name,
|
||||
:public,
|
||||
:public_admission,
|
||||
:public_exit,
|
||||
:allow_membership_requests
|
||||
)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user