Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
admin acl Benutzer Zugriffskontrolle
#1
Heute entdeckt und direkt ausprobiert Smile
admin_acl_add ermöglicht aus der Ferne das Hinzufügen einer Liste von Benutzern zur Zugriffskontrollliste.
admin_acl_remove entfernt diesen wieder.
PHP7

test.php
Code:
<?php
// ** Beispiel:

// * Einschließlich der RemoteAdmin PHP-Klasse.
include('RemoteAdmin.php');

// * Klassen Parameter.
$myRemoteAdmin = new RemoteAdmin('127.0.0.1', 9000, 'secret');

// * admin_acl aufrufen (mit mehreren Parametern)
$parameters = array('region_name' => 'My Plaza', 'users' => 'John Doe');

// ** admin_acl_add ermöglicht aus der Ferne das Hinzufügen einer Liste von Benutzern zur Zugriffskontrollliste.
// * Benutzer hinzufuegen:
$myRemoteAdmin->SendCommand('admin_acl_add', $parameters);
// * Benutzer entfernen
//$myRemoteAdmin->SendCommand('admin_acl_remove', $parameters);
?>

RemoteAdmin.php
Code:
<?php
class RemoteAdmin
{
    function __construct($sURL, $sPort, $pass)
    {
        $this->simulatorURL = $sURL;
        $this->simulatorPort = $sPort;
        $this->password = $pass;
    }

    function SendCommand($command, $params=array())
    {
        $paramsNames = array_keys($params);
        $paramsValues = array_values($params);

        $xml = '
        <methodCall>
        <methodName>'.htmlspecialchars($command).'</methodName>
            <params>
                <param>
                    <value>
                        <struct>
                            <member>
                                <name>password</name>
                                <value><string>'.htmlspecialchars($this->password).'</string></value>
                            </member>';
                            if (count($params) != 0)
                            {
                                for ($p = 0; $p < count($params); $p++)
                                {
                                    $xml .= '<member><name>'.htmlspecialchars($paramsNames[$p]).'</name>';
                                    $xml .= is_int($paramsValues[$p]) ? '<value><int>'.$paramsValues[$p].'</int></value></member>' : '<value><string>'.htmlspecialchars($paramsValues[$p]).'</string></value></member>';
                                }
                            }
                        $xml .= '</struct>
                    </value>
                </param>
            </params>
        </methodCall>';

        $host = $this->simulatorURL;
        $port = $this->simulatorPort;
        $timeout = 5;
        error_reporting(0);
        $fp = fsockopen($host, $port, $errno, $errstr, $timeout);

        if (!$fp)
        {
            return FALSE;
        }

        else
        {
            fputs($fp, "POST / HTTP/1.1\r\n");
            fputs($fp, "Host: $host\r\n");
            fputs($fp, "Content-type: text/xml\r\n");
            fputs($fp, "Content-length: ". strlen($xml) ."\r\n");
            fputs($fp, "Connection: close\r\n\r\n");
            fputs($fp, $xml);
            $res = "";

            while(!feof($fp))
            {
                $res .= fgets($fp, 128);
            }

            fclose($fp);
            $response = substr($res, strpos($res, "\r\n\r\n"));
            $result = array();

            if (preg_match_all('#<name>(.+)</name><value><(string|int|boolean|i4)>(.*)</\2></value>#U', $response, $regs, PREG_SET_ORDER))
            {
                foreach($regs as $key => $val)
                {
                    $result[$val[1]] = $val[3];
                }
            }
            return $result;
        }
    }
}
?>
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen,
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.



Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  [Heise.de-Artikel] Admin wider Willen: Freizeit-Support bei PC-Problemen kann teuer w Bogus Curry 0 4.731 17.06.2017, 14:31
Letzter Beitrag: Bogus Curry
  Admin Gruppe erstellen Pharcide 1 5.581 30.05.2017, 16:08
Letzter Beitrag: Dorena Verne

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste