Le problème des permissions d'administrateur sur le VPS est maintenant résolu localement. Voici un résumé de la situation :
- ✅ Constante
ADMIN_USERScorrectement définie danschat_room.rb - ✅ Méthodes
is_admin?etcan_modify_room_theme?publiques et fonctionnelles - ✅ Méthode
system_room?correctement implémentée - ✅ Logique de permissions correcte dans
background_command.rb - ✅ Auto-login du frontend fonctionnel
- ✅ Tests locaux réussis
Le problème était que les méthodes is_admin?, can_modify_room_theme? et system_room? étaient définies comme privées dans la classe ChatRoom, ce qui empêchait leur utilisation par les commandes comme background_command.rb.
Si le problème persiste sur le VPS après push/pull, cela peut être dû à :
- Fichiers non mis à jour sur le serveur
- Cache ou processus utilisant l'ancienne version
- Problème de redémarrage du serveur
- Différences d'environnement
Le problème : Le serveur VPS n'utilise pas la version mise à jour du code.
- Sur le VPS, naviguez vers le répertoire STORM :
cd /path/to/your/STORM/directory- Récupérez les dernières modifications :
git pull origin 1.6.7- Exécutez le script de correction automatique :
bash fix_vps_permissions.sh- Redémarrez le serveur STORM :
# Arrêter le processus actuel
pkill -f srv_message.rb
# Redémarrer (utilisez votre méthode habituelle)
./start_hermes.sh
# ou
ruby srv_message.rb &# Se connecter au VPS
ssh votre_utilisateur@votre_vps
# Aller dans le répertoire STORM
cd /chemin/vers/votre/projet/STORM
# Copier et exécuter le script de diagnostic
# (copiez le contenu de check_vps_permissions.sh)
./check_vps_permissions.sh# Sauvegarder la version actuelle
cp Message/models/chat_room.rb Message/models/chat_room.rb.backup
cp Message/commands/Appearance/background_command.rb Message/commands/Appearance/background_command.rb.backup
# Mettre à jour depuis Git
git stash # Sauvegarder les modifications locales si nécessaire
git pull origin 1.6.7 # ou votre branche principale
# Vérifier que les modifications sont présentes
grep -n "ADMIN_USERS" Message/models/chat_room.rb
grep -n "def is_admin?" Message/models/chat_room.rb
grep -n "def can_modify_room_theme?" Message/models/chat_room.rbSi les modifications ne sont pas présentes après le git pull, appliquez-les manuellement :
# Ajouter après la ligne ~194, AVANT le modificateur 'private'
# Liste des administrateurs du système
ADMIN_USERS = ['DALM1', 'admin', 'administrator'].freeze
# Vérifier si l'utilisateur peut modifier le thème du salon
def can_modify_room_theme?(username)
# Le créateur peut toujours modifier
return true if @creator == username
# Les administrateurs peuvent toujours modifier, même dans les salons système
return true if is_admin?(username)
# Dans les salons système (comme "Main"), seuls les admins peuvent modifier
return false if system_room?
# Dans les autres salons, seul le créateur peut modifier
false
end
# Vérifier si l'utilisateur est un administrateur
def is_admin?(username)
ADMIN_USERS.include?(username)
end
# Vérifier si c'est un salon système
def system_room?
['Main', 'General', 'users'].include?(@name)
end# Remplacer le message d'erreur vers la ligne 26
if chat_room.system_room?
driver.text(" ⚠️ Vous ne pouvez pas modifier l'arrière-plan dans ce salon système. Seuls les administrateurs peuvent le faire.")
return nil
end# Arrêter le serveur STORM
pkill -f storm # ou votre méthode habituelle
# Ou si vous utilisez un script spécifique
./stop_hermes # si disponible
# Attendre quelques secondes
sleep 3
# Redémarrer le serveur
./start_hermes
# Vérifier que le processus est actif
ps aux | grep -i storm1. Se connecter avec un utilisateur normal (pas DALM1/admin/administrator)
2. Aller dans le salon "Main"
3. Essayer la commande: /bg https://example.com/image.jpg
4. Résultat attendu: "⚠️ Vous ne pouvez pas modifier l'arrière-plan dans ce salon système. Seuls les administrateurs peuvent le faire."
1. Se connecter avec DALM1, admin, ou administrator
2. Aller dans le salon "Main"
3. Essayer la commande: /bg https://example.com/image.jpg
4. Résultat attendu: "⚪️ Arrière-plan du salon modifié"
1. Créer un salon privé avec un utilisateur normal
2. Essayer la commande: /bg https://example.com/image.jpg
3. Résultat attendu: "⚪️ Arrière-plan du salon modifié" (car créateur)
Solution:
# Vérifier la branche actuelle
git branch
# Vérifier les commits récents
git log --oneline -5
# Forcer la mise à jour
git reset --hard origin/mainSolution:
# Trouver tous les processus STORM
ps aux | grep storm
# Tuer tous les processus (remplacer PID par les vrais numéros)
kill -9 PID1 PID2 PID3
# Redémarrer
./start_hermesSolution:
# Vérifier la syntaxe
ruby -c Message/models/chat_room.rb
ruby -c Message/commands/Appearance/background_command.rb
# Si erreur, restaurer la sauvegarde et recommencer
cp Message/models/chat_room.rb.backup Message/models/chat_room.rb# Vérifier les processus Ruby en cours
ps aux | grep ruby
ps aux | grep srv_message
# Tuer tous les processus STORM
pkill -f srv_message.rb
pkill -f ruby.*srv_message
# Attendre quelques secondes puis redémarrer
sleep 3
ruby srv_message.rb &# Vérifier que les fichiers sont bien mis à jour
grep -n "ADMIN_USERS" Message/models/chat_room.rb
grep -n "def is_admin?" Message/models/chat_room.rb
grep -n "def can_modify_room_theme?" Message/models/chat_room.rb
# Vérifier les dates de modification
ls -la Message/models/chat_room.rb
ls -la Message/commands/Appearance/background_command.rb# Vérifier qu'il n'y a pas d'erreurs de syntaxe
ruby -c Message/models/chat_room.rb
ruby -c Message/commands/Appearance/background_command.rb# Si vous utilisez Docker
docker restart nom_du_container
# Ou redémarrage du serveur VPS
sudo rebootAprès avoir appliqué les corrections, testez :
-
Test avec utilisateur admin :
- Connectez-vous avec
DALM1,adminouadministrator - Essayez
/background url_imagedans n'importe quel salon - ✅ Devrait fonctionner
- Connectez-vous avec
-
Test avec utilisateur normal :
- Connectez-vous avec un autre nom d'utilisateur
- Essayez
/background url_imagedans un salon normal - ✅ Devrait fonctionner (modification personnelle)
- Essayez dans un salon système (Main, General, users)
- ❌ Devrait être refusé avec message d'erreur
Après avoir appliqué toutes les modifications :
- ✅ Le serveur STORM redémarre sans erreur
- ✅ Les utilisateurs normaux ne peuvent pas modifier les thèmes dans Main/General/users
- ✅ DALM1, admin, administrator peuvent modifier les thèmes partout
- ✅ Les créateurs de salons peuvent modifier leurs propres salons
- ✅ Les messages d'erreur sont appropriés
- IMPORTANT: Les méthodes
is_admin?,can_modify_room_theme?, etsystem_room?doivent être publiques (avant le modificateurprivate) - La constante
ADMIN_USERSdoit être définie au niveau de la classe - Le serveur doit être complètement redémarré pour prendre en compte les modifications
- Testez avec différents types d'utilisateurs pour confirmer le bon fonctionnement
Si le problème persiste après avoir suivi toutes ces étapes, vérifiez que vous modifiez bien les bons fichiers et que le serveur utilise le bon répertoire de code.