mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: Change enable_admin_sidebar_navigation to group setting (#25159)
This will make it easier to do more focused testing of this change.
This commit is contained in:
parent
e10620bfd3
commit
8c6144d116
@ -1,13 +1,19 @@
|
||||
import Controller from "@ember/controller";
|
||||
import { readOnly } from "@ember/object/computed";
|
||||
import { inject as service } from "@ember/service";
|
||||
import { dasherize } from "@ember/string";
|
||||
import discourseComputed from "discourse-common/utils/decorators";
|
||||
|
||||
export default class AdminController extends Controller {
|
||||
@service router;
|
||||
@service currentUser;
|
||||
|
||||
@readOnly("siteSettings.enable_admin_sidebar_navigation") showAdminSidebar;
|
||||
@discourseComputed("siteSettings.admin_sidebar_enabled_groups")
|
||||
showAdminSidebar() {
|
||||
return this.siteSettings.userInAnyGroups(
|
||||
"admin_sidebar_enabled_groups",
|
||||
this.currentUser
|
||||
);
|
||||
}
|
||||
|
||||
@discourseComputed("siteSettings.enable_group_directory")
|
||||
showGroups(enableGroupDirectory) {
|
||||
|
@ -14,7 +14,12 @@ export default class AdminRoute extends DiscourseRoute {
|
||||
}
|
||||
|
||||
activate() {
|
||||
if (!this.siteSettings.enable_admin_sidebar_navigation) {
|
||||
if (
|
||||
!this.siteSettings.userInAnyGroups(
|
||||
"admin_sidebar_enabled_groups",
|
||||
this.currentUser
|
||||
)
|
||||
) {
|
||||
return DiscourseURL.redirectTo("/admin");
|
||||
}
|
||||
|
||||
|
@ -6,13 +6,19 @@ import I18n from "discourse-i18n";
|
||||
export default class AdminRoute extends DiscourseRoute {
|
||||
@service sidebarState;
|
||||
@service siteSettings;
|
||||
@service currentUser;
|
||||
|
||||
titleToken() {
|
||||
return I18n.t("admin_title");
|
||||
}
|
||||
|
||||
activate() {
|
||||
if (this.siteSettings.enable_admin_sidebar_navigation) {
|
||||
if (
|
||||
this.siteSettings.userInAnyGroups(
|
||||
"admin_sidebar_enabled_groups",
|
||||
this.currentUser
|
||||
)
|
||||
) {
|
||||
this.sidebarState.setPanel(ADMIN_PANEL);
|
||||
this.sidebarState.setSeparatedMode();
|
||||
this.sidebarState.hideSwitchPanelButtons();
|
||||
@ -26,7 +32,12 @@ export default class AdminRoute extends DiscourseRoute {
|
||||
deactivate(transition) {
|
||||
this.controllerFor("application").set("showTop", true);
|
||||
|
||||
if (this.siteSettings.enable_admin_sidebar_navigation) {
|
||||
if (
|
||||
this.siteSettings.userInAnyGroups(
|
||||
"admin_sidebar_enabled_groups",
|
||||
this.currentUser
|
||||
)
|
||||
) {
|
||||
if (!transition?.to.name.startsWith("admin")) {
|
||||
this.sidebarState.setPanel(MAIN_PANEL);
|
||||
}
|
||||
|
@ -181,7 +181,12 @@ export default {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!this.siteSettings.enable_admin_sidebar_navigation) {
|
||||
if (
|
||||
!this.siteSettings.userInAnyGroups(
|
||||
"admin_sidebar_enabled_groups",
|
||||
this.currentUser
|
||||
)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,10 @@ export default class AdminRevampSectionLink extends BaseSectionLink {
|
||||
|
||||
return (
|
||||
this.currentUser.staff &&
|
||||
this.siteSettings.enable_admin_sidebar_navigation
|
||||
this.siteSettings.userInAnyGroups(
|
||||
"admin_sidebar_enabled_groups",
|
||||
this.currentUser
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -2237,7 +2237,6 @@ de:
|
||||
experimental_search_menu_groups: "EXPERIMENTELL: Das neue Suchmenü aktivieren, das für die Verwendung von Glimmer aktualisiert wurde"
|
||||
enable_experimental_lightbox: "EXPERIMENTELL: Die Standard-Bild-Lightbox durch das überarbeitete Design ersetzen."
|
||||
experimental_form_templates: "EXPERIMENTELL: Aktiviere die Funktion der Formularvorlagen. <b>Nachdem du sie aktiviert hast, verwalte</b> die Vorlagen unter <a href='%{base_path}/admin/customize/form-templates'>Anpassen / Vorlagen</a>."
|
||||
enable_admin_sidebar_navigation: "EXPERIMENTELL: Aktiviere die Seitenleisten-Navigation für die Admin-Benutzeroberfläche, die die Admin-Navigationsschaltflächen auf oberster Ebene ersetzt."
|
||||
page_loading_indicator: "Die Ladeanzeige konfigurieren, die bei der Seitennavigation in Discourse erscheint. „Spinner“ ist ein ganzseitiger Indikator. „Slider“ zeigt einen schmalen Balken am oberen Rand des Bildschirms an."
|
||||
show_user_menu_avatars: "Benutzeravatare im Benutzermenü anzeigen"
|
||||
errors:
|
||||
|
@ -2499,7 +2499,7 @@ en:
|
||||
enable_experimental_lightbox: "EXPERIMENTAL: Replace the default image lightbox with the revamped design."
|
||||
|
||||
experimental_form_templates: "EXPERIMENTAL: Enable the form templates feature. <b>After enabled,</b> manage the templates at <a href='%{base_path}/admin/customize/form-templates'>Customize / Templates</a>."
|
||||
enable_admin_sidebar_navigation: "EXPERIMENTAL: Enable sidebar navigation for the admin UI, which replaces the top-level admin navigation buttons."
|
||||
admin_sidebar_enabled_groups: "EXPERIMENTAL: Enable sidebar navigation for the admin UI for the specified groups, which replaces the top-level admin navigation buttons."
|
||||
|
||||
page_loading_indicator: "Configure the loading indicator which appears during page navigations within Discourse. 'Spinner' is a full page indicator. 'Slider' shows a narrow bar at the top of the screen."
|
||||
show_user_menu_avatars: "Show user avatars in the user menu"
|
||||
|
@ -2181,7 +2181,6 @@ it:
|
||||
experimental_search_menu_groups: "SPERIMENTALE: attiva il nuovo menu di ricerca che è stato aggiornato per utilizzare glimmer."
|
||||
enable_experimental_lightbox: "SPERIMENTALE: sostituisci la lightbox dell'immagine predefinita con il design rinnovato."
|
||||
experimental_form_templates: "SPERIMENTALE: abilita la funzionalità dei modelli di modulo. <b>Dopo l'abilitazione,</b> gestisci i modelli in <a href='%{base_path}/admin/customize/form-templates'>Personalizza / Modelli</a>."
|
||||
enable_admin_sidebar_navigation: "SPERIMENTALE: abilita la navigazione della barra laterale per l'interfaccia di amministrazione, che sostituisce i pulsanti di navigazione dell'amministratore di livello superiore."
|
||||
page_loading_indicator: "Configura l'indicatore di caricamento che appare durante la navigazione delle pagine all'interno di Discourse. 'Spinner' come un indicatore a pagina intera. 'Slider' mostra una barra stretta nella parte superiore dello schermo."
|
||||
errors:
|
||||
invalid_css_color: "Colore non valido. Immettere un nome o un valore esadecimale per il colore."
|
||||
|
@ -2330,7 +2330,6 @@ pl_PL:
|
||||
experimental_search_menu_groups: "EKSPERYMENTALNE: Włącza nowe menu wyszukiwania, które zostało ulepszone tak, by korzystało z glimmer"
|
||||
enable_experimental_lightbox: "EKSPERYMENTALNIE: Zastąp domyślny lightbox obrazu odświeżonym projektem."
|
||||
experimental_form_templates: "EKSPERYMENTALNIE: Włącz funkcję szablonów formularzy. <b>Po włączeniu</b> zarządzaj szablonami w <a href='%{base_path}/admin/customize/form-templates'>Dostosuj / Szablony</a>."
|
||||
enable_admin_sidebar_navigation: "EKSPERYMENTALNE: Włącz nawigację na pasku bocznym interfejsu administratora, która zastępuje przyciski nawigacyjne administratora najwyższego poziomu."
|
||||
page_loading_indicator: "Skonfiguruj wskaźnik ładowania, który pojawia się podczas nawigacji po stronie w Discourse. \"Spinner\" to wskaźnik na pełnym ekranie. \"Slider\" wyświetla wąski pasek u góry ekranu."
|
||||
show_user_menu_avatars: "Pokaż awatary użytkowników w menu użytkownika"
|
||||
errors:
|
||||
|
@ -1144,7 +1144,6 @@ ro:
|
||||
min_trust_level_to_tag_topics: "Nivelul minim de încredere necesar pentru a pune etichete pe subiecte."
|
||||
suppress_overlapping_tags_in_list: "Dacă etichetele corespund exact cu cuvintele din titlul subiectelor, nu mai afișa aceste etichete."
|
||||
shared_drafts_allowed_groups: "Permit utilizatorilor din aceste grupuri să vadă și să editeze ciorne comune."
|
||||
enable_admin_sidebar_navigation: "EXPERIMENTAL: Activează navigarea în bara laterală pentru interfața de administrare care înlocuiește butoanele de navigare de la nivelul superior al administratorului."
|
||||
show_user_menu_avatars: "Arată avatare utilizator în meniul utilizatorului"
|
||||
errors:
|
||||
invalid_email: "Adresă de email invalidă."
|
||||
|
@ -2344,7 +2344,6 @@ uk:
|
||||
experimental_search_menu_groups: "ЕКСПЕРИМЕНТАЛЬНЕ: Вмикає нове меню пошуку, в якому використовується мерехтіння"
|
||||
enable_experimental_lightbox: "ЕКСПЕРИМЕНТАЛЬНЕ: оновлений дизайн стандартного лайтбоксу зображень."
|
||||
experimental_form_templates: "ЕКСПЕРИМЕНТАЛЬНО: Увімкніть функцію шаблонів форм. <b>Після увімкнення</b> керуйте шаблонами за адресою <a href='%{base_path}/admin/customize/form-templates'>Налаштування/Шаблони</a>."
|
||||
enable_admin_sidebar_navigation: "ЕКСПЕРИМЕНТАЛЬНО: Увімкніть бічну панель навігації для інтерфейсу адміністратора, яка замінить кнопки навігації адміністратора верхнього рівня."
|
||||
page_loading_indicator: "Вибір індикатора завантаження, який з’являється під час навігації сторінкою в Discourse. «Спіннер» – це індикатор на всю сторінку. «Слайдер» — вузька смужка у верхній частині екрана."
|
||||
show_user_menu_avatars: "Показувати аватари користувачів у меню користувача"
|
||||
errors:
|
||||
|
@ -2302,9 +2302,13 @@ developer:
|
||||
refresh: true
|
||||
hidden: true
|
||||
client: true
|
||||
enable_admin_sidebar_navigation:
|
||||
default: false
|
||||
admin_sidebar_enabled_groups:
|
||||
client: true
|
||||
type: group_list
|
||||
list_type: compact
|
||||
default: ""
|
||||
allow_any: false
|
||||
refresh: true
|
||||
lazy_load_categories:
|
||||
default: false
|
||||
client: true
|
||||
|
@ -0,0 +1,22 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class ChangeEnableAdminSidebarToGroupPostMigration < ActiveRecord::Migration[7.0]
|
||||
def change
|
||||
enable_admin_sidebar_navigation_raw =
|
||||
DB.query_single(
|
||||
"SELECT value FROM site_settings WHERE name = 'enable_admin_sidebar_navigation'",
|
||||
).first
|
||||
|
||||
if enable_admin_sidebar_navigation_raw.present?
|
||||
DB.exec(
|
||||
"INSERT INTO site_settings(name, value, data_type, created_at, updated_at)
|
||||
VALUES('admin_sidebar_enabled_groups', :setting, '20', NOW(), NOW())",
|
||||
setting: "1", # 1 is the Group::AUTO_GROUPS[:admins] group id
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
def down
|
||||
raise ActiveRecord::IrreversibleMigration
|
||||
end
|
||||
end
|
@ -6,7 +6,7 @@ describe "Admin Revamp | Sidebar Navigation | Plugin Links", type: :system do
|
||||
|
||||
before do
|
||||
chat_system_bootstrap
|
||||
SiteSetting.enable_admin_sidebar_navigation = true
|
||||
SiteSetting.admin_sidebar_enabled_groups = Group::AUTO_GROUPS[:admins]
|
||||
sign_in(admin)
|
||||
end
|
||||
|
||||
|
@ -5,7 +5,7 @@ describe "Admin Revamp | Sidebar Navigation", type: :system do
|
||||
let(:sidebar) { PageObjects::Components::NavigationMenu::Sidebar.new }
|
||||
|
||||
before do
|
||||
SiteSetting.enable_admin_sidebar_navigation = true
|
||||
SiteSetting.admin_sidebar_enabled_groups = Group::AUTO_GROUPS[:admins]
|
||||
sign_in(admin)
|
||||
end
|
||||
|
||||
@ -21,7 +21,7 @@ describe "Admin Revamp | Sidebar Navigation", type: :system do
|
||||
end
|
||||
|
||||
context "when the setting is disabled" do
|
||||
before { SiteSetting.enable_admin_sidebar_navigation = false }
|
||||
before { SiteSetting.admin_sidebar_enabled_groups = "" }
|
||||
|
||||
it "does not show the admin sidebar" do
|
||||
visit("/latest")
|
||||
|
Loading…
Reference in New Issue
Block a user