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.



[-] The following 3 users say Thank You to Manfred Aabye for this post:
  • Dorena Verne, Gau Hax, Pius Noel
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 3.452 17.06.2017, 14:31
Letzter Beitrag: Bogus Curry
  Admin Gruppe erstellen Pharcide 1 3.896 30.05.2017, 16:08
Letzter Beitrag: Dorena Verne

Gehe zu:


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