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)


33
34
35
# File 'lib/guardian/tag_guardian.rb', line 33

def can_admin_tag_groups?
  is_staff? && SiteSetting.tagging_enabled
end

#can_admin_tags?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/guardian/tag_guardian.rb', line 29

def can_admin_tags?
  is_staff? && SiteSetting.tagging_enabled
end

#can_create_tag?Boolean

Returns:

  • (Boolean)


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

def can_create_tag?
  SiteSetting.tagging_enabled &&
    @user.has_trust_level_or_staff?(SiteSetting.min_trust_to_create_tag)
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)


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

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)


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

def can_tag_topics?
  SiteSetting.tagging_enabled &&
    @user.has_trust_level_or_staff?(SiteSetting.min_trust_level_to_tag_topics)
end

#hidden_tag_namesObject



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

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