web-dev-qa-db-fra.com

Autorisations de connexion administratives désactivées

Un autre super utilisateur a désactivé les autorisations de connexion pour chaque groupe, y compris le super utilisateur; personne ne peut se connecter.

Existe-t-il un moyen simple d’inverser la situation dans la base de données?

P.S.

Si quelqu'un pouvait repérer quelque chose d'anormal dans ma table d'assets, ce serait génial. https://docs.google.com/spreadsheets/d/1TxXT2L2o5pF1LI-qVvlr6h9yL8DvU6orOYihJLztoFU/edit?usp=sharing

Pour clarifier ce qui se passe fonctionnellement:

  • Accédez à/administrateur
  • Insérer les informations d'identification.
  • Appuyez sur Login.
  • Rien ne se passe.
  • Pas de messages, d'erreurs ou d'avertissements. (Y compris la console JS.)
  • Si vous indiquez des identifiants de crédit non valides, une erreur se produira.
  • Mettre en place des références correctes ne fait tout simplement rien.
4
Nestor Ledon

Il est toujours difficile de croire comment cet utilisateur a pu supprimer les autorisations de super utilisateurs - il faut vraiment déployer des efforts considérables pour y parvenir. Encore une fois êtes-vous sûr que c'est le cas? Recevez-vous un message spécial lorsque vous essayez de vous connecter?

Il se peut simplement qu'il ait désactivé certains plugins.

Je suggérerais tout d'abord de vérifier avec PHPmyAdmin dans le tableau des extensions pour voir si les plugins suivants sont activés:

plg_user_joomla

plg_authentication_joomla

S'ils ne sont pas activés, leur valeur sera "0". Réactivez donc ces plugins en modifiant la valeur en "1" (sans guillemets).

Si ce n'est pas le cas et que vous êtes certain que le problème provient des autorisations principales qui ont été modifiées dans la configuration globale, vous pouvez essayer d'exécuter la requête SQL suivante dans PHPmyAdmin.

update `jos_assets` set `rules` = '{"core.login.site":{"6":1,"2":1},"core.login.admin":{"6":1,"7":1},"core.login.offline":{"6":1},"core.admin":{"8":1,"10":1},"core.manage":{"7":1},"core.create":{"6":1,"3":1},"core.delete":{"6":1},"core.edit":{"6":1,"4":1},"core.edit.state":{"6":1,"5":1},"core.edit.own":{"6":1,"3":1}}'
where `name` = 'root.1';

Cela annulera les autorisations principales par défaut pour les groupes d'utilisateurs principaux. Si vous avez les groupes d'utilisateurs principaux mais que vous disposez d'autorisations personnalisées, le code ci-dessus le modifiera également et, après une éventuelle connexion réussie, vous devrez refaire vos autorisations personnalisées.

Notez que cela ne fonctionnera pas si vous avez modifié et créé des groupes d'utilisateurs personnalisés. Dans ce scénario, indiquez-le-nous pour que nous puissions travailler à partir de là.

Dans tous les cas, sauvegardez votre base de données actuelle avant d’effectuer quoi que ce soit manuellement.

2
FFrewin

Joomla stocke toutes les règles de permission d'accès dans la table #__assets.

Il y a une règle de champ dans la table #__assets qui contient la valeur de l'autorisation. Vous devez donc mettre à jour la table avec vos valeurs.

Je n'ai pas fait de tels changements directement dans la base de données auparavant, donc je ne sais pas exactement ce que vous devez mettre comme valeur par défaut.

Reportez-vous à ce lien pour comprendre les autorisations d'accès.

2
Nick

Mon hypothèse est plus que le "dernier" SuperUtilisateur est inconnu. Il ne devrait pas être possible de désactiver/supprimer celui-ci. Je ne veux pas le tester maintenant. Le super-utilisateur dispose d'autorisations codées en dur.

Vous pouvez vérifier cela

'#__usergroups': l'id 8 existe

'#__user_usergroup_map': au moins un groupe_id 8 devrait exister

'#__users': trouve l'utilisateur avec lequel se connecter.

Si vous ne connaissez pas le mot de passe, j'espère que vous saurez comment corriger les entrées du tableau ci-dessus.

Maintenant, il devrait être possible de corriger les permissions manquantes de la manière "normale" du backend

J'espère que ça marche.

2
schnuti