Module: TagGuardian

Included in:
Guardian
Defined in:
lib/guardian/tag_guardian.rb

Overview

mixin for all guardian methods dealing with tagging permissions

Instance Method Summary collapse

Instance Method Details

#can_admin_tag_groups?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/guardian/tag_guardian.rb', line 31

def can_admin_tag_groups?
  is_staff? && SiteSetting.tagging_enabled
end

#can_admin_tags?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/guardian/tag_guardian.rb', line 27

def can_admin_tags?
  is_staff? && SiteSetting.tagging_enabled
end

#can_create_tag?Boolean

Returns:

  • (Boolean)


9
10
11
# File 'lib/guardian/tag_guardian.rb', line 9

def can_create_tag?
  SiteSetting.tagging_enabled && @user.in_any_groups?(SiteSetting.create_tag_allowed_groups_map)
end

#can_see_tag?(_tag) ⇒ Boolean

Returns:

  • (Boolean)


5
6
7
# File 'lib/guardian/tag_guardian.rb', line 5

def can_see_tag?(_tag)
  true
end

#can_tag_pms?Boolean

Returns:

  • (Boolean)


17
18
19
20
21
22
23
24
25
# File 'lib/guardian/tag_guardian.rb', line 17

def can_tag_pms?
  return false if !SiteSetting.tagging_enabled
  return false if @user.blank?
  return true if @user == Discourse.system_user

  group_ids = SiteSetting.pm_tags_allowed_for_groups_map
  group_ids.include?(Group::AUTO_GROUPS[:everyone]) ||
    @user.group_users.exists?(group_id: group_ids)
end

#can_tag_topics?Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/guardian/tag_guardian.rb', line 13

def can_tag_topics?
  SiteSetting.tagging_enabled && @user.in_any_groups?(SiteSetting.tag_topic_allowed_groups_map)
end

#hidden_tag_namesObject



35
36
37
38
39
40
41
42
43
44
# File 'lib/guardian/tag_guardian.rb', line 35

def hidden_tag_names
  @hidden_tag_names ||=
    begin
      if SiteSetting.tagging_enabled && !is_staff?
        DiscourseTagging.hidden_tag_names(self)
      else
        []
      end
    end
end