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:
Guo Xiang Tan
2017-07-28 11:37:10 +09:00
parent 5012d46cbd
commit 4620dfe92d
25 changed files with 315 additions and 89 deletions

View File

@ -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