diff --git a/frontend/App.tsx b/frontend/App.tsx index 463c168..1d4069f 100644 --- a/frontend/App.tsx +++ b/frontend/App.tsx @@ -255,8 +255,8 @@ const App: React.FC = () => { // Locação de Salas: capability PESSOAL (add-on por conta), liberada a qualquer // usuário com o plugin ativo na conta — independe de ter clínica/cargo. if (view === 'salas') return isPluginActive('locacao-salas'); - // Catálogo de add-ons: qualquer usuário (menos paciente) pode abrir p/ ativar. - if (view === 'plugins') return role !== 'paciente'; + // Catálogo de PLUGINS: EXCLUSIVO do superadmin (já retorna true acima); ninguém mais. + if (view === 'plugins') return false; // Admin/donos têm acesso amplo, MAS as telas de superadmin são exclusivas do superadmin. if (role === 'admin' || role === 'donoclinica' || role === 'donoconsultorio') return !view.startsWith('superadmin'); diff --git a/frontend/components/Sidebar.tsx b/frontend/components/Sidebar.tsx index f02a741..958c2b5 100644 --- a/frontend/components/Sidebar.tsx +++ b/frontend/components/Sidebar.tsx @@ -44,10 +44,8 @@ export const Sidebar: React.FC = ({ activeTab, setActiveTab }) => if (activePluginIds.includes('profissionais-marketplace') && currentRole !== 'superadmin' && currentRole !== 'paciente') { pluginMenuItems.push({ id: 'marketplace-profissionais', label: 'PROFISSIONAIS', icon: UserSearch, color: '#ea580c' }); } - // Catálogo de add-ons (por conta): qualquer usuário operacional pode abrir p/ ativar (ex.: Salas). - if (currentRole !== 'superadmin' && currentRole !== 'paciente') { - pluginMenuItems.push({ id: 'plugins', label: 'ADD-ONS / PLUGINS', icon: Puzzle, color: '#64748b' }); - } + // OBS: o catálogo de PLUGINS é EXCLUSIVO do superadmin (gerência/ativação). + // Não exibir para nenhum outro papel. const menuItems = [ { id: 'superadmin-overview', label: 'VISÃO GERAL', icon: TrendingUp },