текст перекладу
Перші кроки для отримання інформації про користувачів, групи, категорії тощо після початкової інсталяції
# Усі групи
Group.pluck(:name)
[
"everyone",
"trust_level_2",
"trust_level_3",
"trust_level_4",
"admins",
"staff",
"moderators",
"trust_level_0",
"trust_level_1"
]
# Видимість груп
Group.visibility_levels
=> {:public=>0, :logged_on_users=>1, :members=>2, :staff=>3, :owners=>4}
# Кількість користувачів у групі
Group.all.each_with_object({}) do |group, result|
result[group.name] = group.users.count
end
{
"everyone"=>0,
"trust_level_2"=>2,
"trust_level_3"=>2,
"trust_level_4"=>2,
"admins"=>3,
"staff"=>3,
"moderators"=>2,
"trust_level_0"=>4,
"trust_level_1"=>4
}
# Кількість користувачів у системі
User.count
# Останній користувач
User.last.email
=> "[email protected]"
# Групи користувача
User.last.groups.pluck(:name)
=> ["trust_level_0", "trust_level_1"]
User.last.trust_level
=> 1
User.last.admin?
=> false
User.last.moderator?
=> false
User.last.active?
=> true
User.last.suspended?
=> false
User.last.last_seen_at
=> Wed, 22 Jan 2025 12:57:39.190562000 UTC +00:00
# доступ до категорій
categories = User.last.groups.map(&:categories).flatten.uniq
categories.map(&:name)
=> []
Рівні довіри в Discourse:
- Рівень довіри 0 (Новий користувач):
Нещодавно зареєстрований. Обмежені дії (наприклад, обмежені посилання/зображення). Не може надсилати приватні повідомлення. - Рівень довіри 1 (Основний користувач):
Доступ до основних функцій: створення тем, надсилання приватних повідомлень, завантаження зображень і вкладень. - Рівень довіри 2 (Член):
Активний користувач. Може запрошувати інших до тем, ігнорувати користувачів і позначати теми як відвідані. - Рівень довіри 3 (Звичайний):
Дуже активний. Може редагувати заголовки тем, переміщати теми між категоріями та тимчасово приховувати пости. - Рівень довіри 4 (Лідер):
Найвищий рівень довіри, призначений вручну. Майже повні права модерації: редагувати будь-який пост, закривати/відкривати теми.
Категорії
Category.count
=> 4
Category.pluck(:name)
=> ["Site Feedback", "Uncategorized", "General", "Staff"]
Category.all.each do |category|
puts "Категорія: #{category.name}, Теми: #{category.topic_count}"
end
Категорія: Site Feedback, Теми: 0
Категорія: Uncategorized, Теми: 0
Категорія: General, Теми: 1
Категорія: Staff, Теми: 2
Тепер я/ви знаєте про основні моделі в Discourse.
Успіхів у програмуванні!
Перекладено з: Discourse. Users, Groups, Categories