Admin ou pas

TitaniumTitanium Membre
14:13 modifié dans Actualités #1
Hello,

Dans mon appli ASS, pour vérifier que l'utilisateur est bien admin, j'utilise la commande suivante :

id | grep admin

Or, ça ne fonctionne pas si l'utilisateur est connecté via Active Directory. niutil devrait pouvoir me renseigner, mais je ne vois pas comment faire...

Merci d'avance.  8--)

Réponses

  • schlumschlum Membre
    14:13 modifié #2
    "groups" peut-être ?
  • TitaniumTitanium Membre
    14:13 modifié #3
    dans 1182368918:

    "groups" peut-être ?

    Merci Schlum mais la page man de la commande groups indique qu'elle a été remplacée par id !?! Retour au point de départ.  :-\\
  • schlumschlum Membre
    14:13 modifié #4
    Pour utiliser niutil, il faut avoir le username en tout cas...

    niutil -readprop . /groups/admin users
    
  • TitaniumTitanium Membre
    14:13 modifié #5
    dans 1182453157:

    Pour utiliser niutil, il faut avoir le username en tout cas...

    niutil -readprop . /groups/admin users
    



    Donc, si je comprends bien... Cette commande affiche le nom de tous les admin. Il suffit que je teste si le nom de l'utilisateur courant se trouve dans le résultat...

    set myName to system attribute &quot;USER&quot;<br />set theAdmin to do shell script &quot;niutil -readprop . /groups/admin users&quot;<br /><br />if theAdmin contains myName then<br />	display alert &quot;C&#39;est un admin&quot;<br />else<br />	display alert &quot;C&#39;est pas un admin&quot;<br />end if
    
  • schlumschlum Membre
    14:13 modifié #6
    Oui, ça sort la liste de tous les "inscrits" au groupe admin, séparés par des espaces...
    par contre, attention avec contains, parce que si tu as un toto2 qui est admin, ça va répondre que toto l'est aussi  ???
  • AliGatorAliGator Membre, Modérateur
    14:13 modifié #7
    Dans ce cas (à  moins qu'un username puisse contenir un espace, j'ai un doute mais bon je suis presque sûr que c'est pas le cas), il suffit de demander à  AppleScript "every word of", qui va convertir le résultat (nom des users séparés par des espaces) en une liste AppleScript.
    Et là  un "is in" pour tester si ton user est dans la liste fonctionnera pour toto2 mais pas pour toto.
    set myName to system attribute &quot;USER&quot;<br />set theAdminString to (do shell script &quot;niutil -readprop . /groups/admin users&quot;)<br />set AdminList to every word of theAdminString<br /><br />if myName is in AdminList then<br />	display alert &quot;C&#39;est un admin&quot;<br />else<br />	display alert &quot;C&#39;est pas un admin&quot;<br />end if
    
    (Non testé je suis pas sur Mac là )
  • TitaniumTitanium Membre
    14:13 modifié #8

    dans 1182500873:
    (Non testé je suis pas sur Mac là )


    Testé... C'est impeccable !

    Mille mercis à  tous les deux !!
  • schlumschlum Membre
    14:13 modifié #9
    Pas d'espace dans les logins 
Connectez-vous ou Inscrivez-vous pour répondre.