Class: CategorySerializer
Defined Under Namespace
Classes: CategorySettingSerializer
Instance Method Summary
collapse
#allowed_tag_groups, #allowed_tags, #form_template_ids, #include_allow_global_tags?, #include_allowed_tag_groups?, #include_allowed_tags?, #include_required_tag_groups?
#can_edit, #description, #description_excerpt, #description_text, #include_can_edit?, #include_parent_category_id?, #name
expire_cache_fragment!, fragment_cache
#include!
Instance Method Details
#available_groups ⇒ Object
72
73
74
|
# File 'app/serializers/category_serializer.rb', line 72
def available_groups
Group.order(:name).pluck(:name) - group_permissions.map { |g| g[:group_name] }
end
|
#can_delete ⇒ Object
76
77
78
|
# File 'app/serializers/category_serializer.rb', line 76
def can_delete
true
end
|
#custom_fields ⇒ Object
119
120
121
|
# File 'app/serializers/category_serializer.rb', line 119
def custom_fields
object.custom_fields
end
|
#group_permissions ⇒ Object
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
# File 'app/serializers/category_serializer.rb', line 42
def group_permissions
@group_permissions ||=
begin
perms =
object
.category_groups
.joins(:group)
.includes(:group)
.merge(Group.visible_groups(scope&.user, "groups.name ASC", include_everyone: true))
.map { |cg| { permission_type: cg.permission_type, group_name: cg.group.name } }
if perms.length == 0 && !object.read_restricted
perms << {
permission_type: CategoryGroup.permission_types[:full],
group_name: Group[:everyone]&.name.presence || :everyone,
}
end
perms
end
end
|
#include_available_groups? ⇒ Boolean
68
69
70
|
# File 'app/serializers/category_serializer.rb', line 68
def include_available_groups?
scope && scope.can_edit?(object)
end
|
#include_can_delete? ⇒ Boolean
92
93
94
|
# File 'app/serializers/category_serializer.rb', line 92
def include_can_delete?
scope && scope.can_delete?(object)
end
|
#include_cannot_delete_reason? ⇒ Boolean
96
97
98
|
# File 'app/serializers/category_serializer.rb', line 96
def include_cannot_delete_reason?
!include_can_delete? && scope && scope.can_edit?(object)
end
|
#include_category_setting? ⇒ Boolean
38
39
40
|
# File 'app/serializers/category_serializer.rb', line 38
def include_category_setting?
object.association(:category_setting).loaded?
end
|
#include_custom_fields? ⇒ Boolean
123
124
125
|
# File 'app/serializers/category_serializer.rb', line 123
def include_custom_fields?
true
end
|
#include_email_in? ⇒ Boolean
100
101
102
|
# File 'app/serializers/category_serializer.rb', line 100
def include_email_in?
scope && scope.can_edit?(object)
end
|
#include_email_in_allow_strangers? ⇒ Boolean
104
105
106
|
# File 'app/serializers/category_serializer.rb', line 104
def include_email_in_allow_strangers?
scope && scope.can_edit?(object)
end
|
#include_group_permissions? ⇒ Boolean
64
65
66
|
# File 'app/serializers/category_serializer.rb', line 64
def include_group_permissions?
scope&.can_edit?(object)
end
|
#include_is_special? ⇒ Boolean
80
81
82
83
84
85
86
|
# File 'app/serializers/category_serializer.rb', line 80
def include_is_special?
[
SiteSetting.meta_category_id,
SiteSetting.staff_category_id,
SiteSetting.uncategorized_category_id,
].include? object.id
end
|
#include_moderating_group_ids? ⇒ Boolean
34
35
36
|
# File 'app/serializers/category_serializer.rb', line 34
def include_moderating_group_ids?
SiteSetting.enable_category_group_moderation?
end
|
#include_notification_level? ⇒ Boolean
108
109
110
|
# File 'app/serializers/category_serializer.rb', line 108
def include_notification_level?
scope && scope.user
end
|
#is_special ⇒ Object
88
89
90
|
# File 'app/serializers/category_serializer.rb', line 88
def is_special
true
end
|
#notification_level ⇒ Object
112
113
114
115
116
117
|
# File 'app/serializers/category_serializer.rb', line 112
def notification_level
user = scope && scope.user
object.notification_level ||
(user && CategoryUser.where(user: user, category: object).first.try(:notification_level)) ||
CategoryUser.default_notification_level
end
|