Pagina1 van 1
Forum

Welkom bij de Tweaking4All gemeenschapsforums!
Voor je gaat deelnemen, bekijk de Forum Regels!

Specifieke onderwerpen: Start het onderwerp met de naam van het programma of systeem.
Bijvoorbeeld “MacOS X – Jouw vraag“, of bijvoorbeeld “MS Word – Jouw Tip of Truc“.

Merk op: Omschakelen naar een andere taal zal niet werken als je een post aan het lezen bent aangezien er waarschijnlijk geen vertaling beschikbaar is.



Deel:
Meldingen
Alles wissen

[Opgelost] Lazarus - Mac OSX - Hoe test je of een gebruiker Admin rechten heeft?

2 Berichten
1 Gebruikers
0 Reactions
1,643 Bekeken
 Hans
(@hans)
Famed Member Admin
Deelgenomen: 12 jaar geleden
Berichten: 2869
Topic starter  

Soms wil je in een programma alleen maar toegang geven tot bepaalde zaken (zoals instellingen, wachtwoorden, etc) als de gebruiker Admin rechten heeft.

Ik kon geen eenvoudige methode vinden in Lazarus Pascal (suggesties zijn zeer welkom!), dus heb ik een kleine functie hiervoor geschreven.

Deze functie vraagt de gebruiker om een Admin wachtwoord, en als dat correct is ingevuld, zal het een TRUE geven.
Indien het wachtwoord fout was of men op "Cancel" heeft geklikt, dan geeft de functie een FALSE terug.

Je moet overigens wel de unit "process" toevoegen aan de "Uses" clausule van jouw programma!

function CheckIfAdmin:boolean;
var s: string;
begin
  RunCommand('/usr/bin/osascript',['-e','do shell script "/bin/echo ''OK''" with administrator privileges'],s);
  if s='OK'#10 then
    result := true
  else
    result := false;
end;

Deze functie roept OsaScript aam met de opdracht om "Echo 'OK'" met administrator privileges uit te voeren. 

Als het juiste wachtwoord werd gebruikt, dan zal "RunCommand" de string "OK" terug geven (in "s"). Omdat er een linefeed achter geplakt zit dus 'OK'#10.

Een simpel voorbeeld hoe je dit kunt gebruiken:

procedure TForm1.Button1Click(Sender: TObject);
begin
  if CheckIfAdmin then
    ShowMessage('Admin!')
  else
    ShowMessage('Niet Admin!!!');
end;

   
BeantwoordenCiteren
 Hans
(@hans)
Famed Member Admin
Deelgenomen: 12 jaar geleden
Berichten: 2869
Topic starter  

For those who'd like to see a screenshot - see attachment. 


   
BeantwoordenCiteren
Deel: