isAdmin trick
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
# Set a JS-readable cookie when an admin signs in/out.
|
||||
# Devise's remember_admin_user_token cookie is HttpOnly,
|
||||
# so the frontend cannot read it. This non-HttpOnly cookie
|
||||
# lets the frontend show/hide the Admin menu link.
|
||||
|
||||
Rails.application.config.to_prepare do
|
||||
ApplicationController.class_eval do
|
||||
after_action :sync_admin_cookie
|
||||
|
||||
private
|
||||
|
||||
def sync_admin_cookie
|
||||
if current_admin_user
|
||||
cookies[:is_admin] = { value: "1", httponly: false, same_site: :lax, path: "/" }
|
||||
elsif cookies[:is_admin]
|
||||
cookies.delete(:is_admin, path: "/")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -87,7 +87,7 @@ const ui = useUiStore()
|
||||
const { isRetroMode, menuOpen } = storeToRefs(ui)
|
||||
const { toggleMenu, toggleRetroMode } = ui
|
||||
const route = useRoute()
|
||||
const isAdmin = computed(() => !!getCookie('remember_admin_user_token'))
|
||||
const isAdmin = computed(() => !!getCookie('is_admin'))
|
||||
|
||||
watch(() => route.path, () => {
|
||||
ui.closeMenu()
|
||||
|
||||
Reference in New Issue
Block a user