2019-05-02 17:17:27 -05:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2015-01-08 17:35:52 -06:00
|
|
|
#mixin for all guardian methods dealing with group permissions
|
|
|
|
module GroupGuardian
|
|
|
|
|
|
|
|
# Edit authority for groups means membership changes only.
|
|
|
|
# Automatic groups are not represented in the GROUP_USERS
|
|
|
|
# table and thus do not allow membership changes.
|
|
|
|
def can_edit_group?(group)
|
2019-04-15 20:31:51 -05:00
|
|
|
!group.automatic && can_log_group_changes?(group)
|
2016-12-11 09:36:15 -06:00
|
|
|
end
|
|
|
|
|
|
|
|
def can_log_group_changes?(group)
|
|
|
|
(is_admin? || group.users.where('group_users.owner').include?(user))
|
2015-12-07 16:19:33 -06:00
|
|
|
end
|
|
|
|
|
|
|
|
def can_see_group_messages?(group)
|
2018-02-12 00:26:22 -06:00
|
|
|
SiteSetting.enable_personal_messages? && (
|
2018-02-02 15:35:32 -06:00
|
|
|
is_admin? || group.users.include?(user)
|
|
|
|
)
|
2015-01-08 17:35:52 -06:00
|
|
|
end
|
|
|
|
end
|