alpinux-portail/web/index.php
Alpinux 4921a0691c Admin : gestion groupes, services par groupes, badge admin
- admin/groups.php : liste/création/suppression des groupes Keycloak
  avec comptage des membres et services associés par groupe
- admin/services.php : remplace requires_adherent par sélection multi-groupes
- inc/services.php : modèle groups[], migration auto depuis requires_adherent,
  helper service_accessible() pour l'accès contextuel
- inc/keycloak.php : kc_list_groups, kc_create_group, kc_delete_group, kc_group_members
- profile.php : badge Admin visible dans la tuile Mon compte
- index.php : utilise service_accessible() avec les groupes de l'utilisateur

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 00:59:25 +02:00

97 lines
3.7 KiB
PHP

<?php
require_once __DIR__ . '/inc/config.php';
require_once __DIR__ . '/inc/auth.php';
require_once __DIR__ . '/inc/services.php';
session_start_safe();
$user = current_user();
$title = 'Portail Alpinux';
$services = services_list();
$is_admin = $user && ($user['is_admin'] ?? false);
$is_adherent = $user && ($user['is_adherent'] || $is_admin);
$user_groups = $user['groups'] ?? [];
require __DIR__ . '/views/layout.php';
?>
<?php if ($user): ?>
<div class="hero">
<h1>Bienvenue, <?= htmlspecialchars($user['name'] ?: $user['username']) ?></h1>
<?php if (!$is_adherent): ?>
<p>Vous n'avez pas encore adhéré à Alpinux. Adhérer, c'est soutenir nos actions pour le logiciel libre en Savoie.</p>
<div class="hero-actions">
<a href="/helloasso/renew.php" class="btn-primary">Adhérer maintenant</a>
<a href="/profile.php" class="btn-outline">Mon profil</a>
</div>
<?php else: ?>
<p>Merci pour votre soutien. Retrouvez vos services et votre profil ci-dessous.</p>
<div class="hero-actions">
<a href="/profile.php" class="btn-outline">Mon profil</a>
</div>
<?php endif; ?>
</div>
<?php else: ?>
<div class="hero">
<h1>Portail membres Alpinux</h1>
<p>Accédez à vos services, gérez votre adhésion et votre compte AlpID.</p>
<div class="hero-actions">
<a href="/register.php" class="btn-primary">Créer mon compte</a>
<a href="/auth/login.php" class="btn-outline">Se connecter</a>
</div>
</div>
<section class="home-about">
<div class="about-grid">
<div class="about-card">
<div class="about-title">Qui sommes-nous ?</div>
<p>Alpinux est le LUG (Linux User Group) de Savoie. Nous promouvons le logiciel libre, organisons des ateliers et des événements autour de Linux et des technologies ouvertes.</p>
</div>
<div class="about-card">
<div class="about-title">Pourquoi adhérer ?</div>
<p>Adhérer, c'est soutenir nos actions pour le logiciel libre en Savoie. C'est aussi accéder à l'ensemble des services membres et participer aux décisions lors de l'assemblée générale.</p>
</div>
<div class="about-card">
<div class="about-title">AlpID</div>
<p>Un seul compte pour tous les services Alpinux. Gérez votre profil, votre adresse et votre adhésion depuis ce portail.</p>
</div>
</div>
</section>
<?php endif; ?>
<section class="services-section">
<h2>Nos services</h2>
<div class="grid">
<?php foreach ($services as $s): if (!$s['visible']) continue;
$can_access = service_accessible($s, $user_groups, $is_admin); ?>
<div class="service-card <?= $s['requires_adherent'] ? 'adherent-only' : '' ?> <?= (!$can_access) ? 'locked' : '' ?>">
<div class="service-header">
<strong><?= htmlspecialchars($s['name']) ?></strong>
<?php if ($s['requires_adherent']): ?>
<span class="badge">Adhérent</span>
<?php endif; ?>
</div>
<?php if ($s['description']): ?>
<p><?= htmlspecialchars($s['description']) ?></p>
<?php endif; ?>
<div style="margin-top:.8rem">
<?php if ($can_access): ?>
<a href="<?= htmlspecialchars($s['url']) ?>" target="_blank" rel="noopener" style="font-size:.85rem">Accéder →</a>
<?php elseif ($user): ?>
<span class="text-muted small">Adhésion requise</span>
<?php else: ?>
<span class="text-muted small">Réservé aux adhérents —</span>
<a href="/register.php" style="font-size:.85rem">Adhérer</a>
<?php endif; ?>
</div>
</div>
<?php endforeach; ?>
</div>
</section>
<?php require __DIR__ . '/views/layout_end.php'; ?>