Droits utilisateur Wayk Den

avatar

Bonjour,

Lors que la création d'un nouvel utilisateur dans Wayk Den, j'ai voulu modifier ses droits d'accès afin de faire des tests, sauf que je me suis trompé d'utilisateur j'ai fais cela sur mon compte administrateur du coup je me retrouve sans droits sur ma plateforme.
Pouvez-vous m'aider à récupérer cela ?

Merci pour votre aide

Claude

All Comments (6)

avatar

Bonjour Claude,

Malheureusement il n'existe pas de façon immédiate de rectifier le problème, mais nous devrions être en mesure de voir ce qui peut être fait au courant de cette semaine. La façon la plus directe serait de modifier la base de données directement pour restaurer les droits sur le compte administrateurs, mais il faudrait qu'on regarde comment le faire le plus facilement et correctement.

Si jamais le délai est trop long et que vous n'aviez pas encore beaucoup de données, il est toujours possible de réinitialiser le tout à zero:

Stop-WaykDen
docker rm den-mongo
docker volume rm den-mongodata
Start-WaykDen


Cordialement,

Marc-André Moreau

avatar

Bonjour Marc-André suite à vos recommandations j'ai pu résoudre mon problème avec une méthode surement pas "académique"

J'ai fait un backup de la base avec mongodump, arrêté le serveur wayk, supprimé tous les fichiers de la base et relancé le serveur.
On reviens donc au point de départ à zéro, j'ai crée le même utilisateur et mot de passe dans le système
Du coup je voyais bien les Connexions des postes mais aucuns dans la partie Machines.
J'ai arrêté le serveur et fait une restauration avec mongorestore, et j'ai retrouvé tous mes petits, mais j'imagine que cela à du créer quelques "bugs" non visibles de mon coté.

J'ai aussi un petit bug au niveau de l'application iOS je fais un nouveau sujet?

Si vous pouvez trouver une solution plus viable, je ne suis pas dans l'urgence.

Merci à vous

avatar

Bonjour Claude,

Normalement la commande pour faire le mongorestore passe le paramètre pour écraser ce qui est déjà présent dans la base de données, sinon il y aurait des doublons, donc ça ne devrait pas causer de problème. Pour ce qui est des connexions visibles après avoir réinitialisé le tout, c'est fort probablement parce que Wayk Now s'est reconnecté tout de suite après, mais tout ce qui avait été enregistré (les machines en particulier) ont été perdus.

Si vous n'êtes pas dans l'urgence, on va prendre le temps cette semaine de trouver une solution viable. C'est mon collègue François qui saurait comment faire, mais je peux aider pour la partie automatisation de la commande à partir du PowerShell.

Pour le problème avec iOS, il serait mieux de créer un nouveau sujet.

Cordialement,

Marc-André Moreau

avatar

Ok merci de votre réponse

J'attend de vos nouvelle dans la semaine ou la suivante suivant vos dispos. Et j'ouvre un nouveau sujet pour iOS

avatar

Bonjour Claude,

Voici comment faire pour assigner à nouveau le role de owner à votre utilisateur via la base de données.

#1 - Ouvrez un mongo shell afin d'exécuter les commandes mongo

> docker exec -it den-mongo bash
> mongo
> use waykden
>


#2 - Déterminer le ID de l'utilisateur auquel vous voulez redonner les droits

> db.user.find({"username":"<username>"}).pretty()

où <username> peut être remplacé par le username que vous utilisez. Le résultat devrait contenir un champ id qui est un UUID, par exemple :
"id" : "49f4ceba-ad00-4327-aac4-951a57372941",

#3 - Déterminer la subscription ID

> db.subscription.find().pretty()

Le résultat devrait contenir un champ "id" qui est un UUID également. Par exemple : "id" : "e0438f14-2faf-4d68-9c3a-6044068e3e87"

#3 - Insérez le role de owner pour votre utilisateur

> db.role_assignment.insert({"id":"<id>","security_principal_id":"<user_id>","security_principal_type":"User", "scope":"/subscriptions/<subscription_id>", "role_id": "fa857819-4e11-4fe7-b56a-ad80bdc52663"})


<id> est un nouveau UUID généré. Vous pouvez utiliser un UUID generator : https://www.uuidgenerator.net/
<user_id> est le UUID que vous avez obtenu dans une commande précédente
<subscription_id> est le UUID que vous avez obtenu dans la commande précédente
(le role_id est un id hardcodé donc le laisser tel quel)

Une fois ces commandes executées, vous devriez être en mesure de vous reconnecter avec l'utilisateur et celui-ci aura le rôle owner. Attention de bien exécuter cette dernière commande afin de ne pas avoir une base de données corrompue. Si jamais un problème survenait ou un mauvais ID était saisi, vous pouvez toujours supprimer le role_assignment créer à la dernière étape avec cette commande :

> db.role_assignment.remove({"id":"<id>"})



Si jamais votre seul utilisateur se ferait supprimer, il faudrait alors créer un nouvel utilisateur, ce qui serait plus complexe. Nous ajouterons peut-être quelque chose dans notre cmdlet à cet effet éventuellement, mais les commandes ci-dessus devrait fonctionner pour votre situation.

En espérant que le tout fonctionnera bien. N'hésitez pas si vous avez des questions.
Salutations

François Dubois

avatar

Bonjour François,

Impeccable j'ai retrouvé l'accès total à l'utilisateur.

Merci à vous