Permission Check in einem Modul

This forum was archived to /woltlab and is now in read-only mode.
  • Hallo,


    Gibt es im Icinga eine Schnittstelle um Berechtigungen zu überprüfen?

    Als Beispiel:

    Ich gebe dem Icinga ein Host Object und das Icinga gibt mir zurück, ob der aktuelle User das Recht hat, dieses zu sehen.


    Mikesch hat mir das glaube ich mal verraten, aber ich habe es vergessen -.-


    Gruß,

    Morde

  • So siehts im Globe module aus:


    Code
    1. $query2 = $this->backend
    2. ->select()
    3. ->from('servicestatus', array(
    4. 'host_name',
    5. 'service_display_name',
    6. 'service_host_name',
    7. 'service_state'))
    8. ->where('service_host_name', $row->host_name);
    9. $this->applyRestriction('monitoring/filter/objects', $query2);
  • Hallo Mikesch,


    danke dir dafür.

    Ich kann dir jetzt ja mal erklären wie ich das verstehe und du kannst mir dann sagen wie es richtig ist :D


    1. $this->backend ist die Backendkonfiguration des Icingas, quasi die MySQL Datenbank

    2. Der select part ist ein MySQL Query (wobei ich hier die limitierung vermisse. Wäre das dann nicht ein select * from.....?)

    3. Dann sprichst du eine Klasse applyRestriction an die gegen die Objects dein Query prüft


    Habe ich das in etwa richtig verstanden oder bin ich total auf dem Holzweg?


    Gruß, Morde

  • OK, ich habe es soweit geschafft das zu implementieren, allerdings verstehe ich immer noch nicht wie das ganze funktioniert.


    Gibt es dies bezüglich eine Dokumentation?


    Ich dachte eigentlich, dass ich einer Funktion oder Klasse einfach nur den Servernamen bzw. das host object übergeben muss und diese sagt mir dann via true oder false ob der aktuelle user mit den jeweiligen Berechtigungen das Host Objekt sehen darf.


    Gruß, Morde

  • Ok I got it. This is the magic code I was looking for.

    In the "where part" I filter for my host.

    I call the Class applyRestriction with the return value of my filter.

    When the user has not the right permissons, he's not able to see the hosts.