]> git.mxchange.org Git - friendica-addons.git/blobdiff - saml/saml.php
[various] Remove App dependency from hook functions
[friendica-addons.git] / saml / saml.php
index d39ef003c4a9ce7fd98c1e11c68ad19b27c28e2c..050ac00fc237bf4626c2be8daef77b8126832293 100755 (executable)
@@ -5,27 +5,27 @@
  * Version: 1.0
  * Author: Ryan <https://friendica.verya.pe/profile/ryan>
  */
+
+use Friendica\App;
 use Friendica\Content\Text\BBCode;
 use Friendica\Core\Hook;
 use Friendica\Core\Logger;
 use Friendica\Core\Renderer;
-use Friendica\Core\Session;
 use Friendica\Database\DBA;
 use Friendica\DI;
 use Friendica\Model\User;
 use Friendica\Util\Strings;
+use OneLogin\Saml2\Utils;
 
 require_once(__DIR__ . '/vendor/autoload.php');
 
 define('PW_LEN', 32); // number of characters to use for random passwords
 
-function saml_module($a)
-{
-}
+function saml_module() {}
 
-function saml_init($a)
+function saml_init()
 {
-       if ($a->argc < 2) {
+       if (DI::args()->getArgc() < 2) {
                return;
        }
 
@@ -34,12 +34,12 @@ function saml_init($a)
                return;
        }
 
-       switch ($a->argv[1]) {
+       switch (DI::args()->get(1)) {
                case 'metadata.xml':
                        saml_metadata();
                        break;
                case 'sso':
-                       saml_sso_reply($a);
+                       saml_sso_reply();
                        break;
                case 'slo':
                        saml_slo_reply();
@@ -77,15 +77,15 @@ function saml_install()
        Hook::register('footer', __FILE__, 'saml_footer');
 }
 
-function saml_head(&$a, &$b)
+function saml_head(string &$body)
 {
        DI::page()->registerStylesheet(__DIR__ . '/saml.css');
 }
 
-function saml_footer(&$a, &$b)
+function saml_footer(string &$body)
 {
        $fragment = addslashes(BBCode::convert(DI::config()->get('saml', 'settings_statement')));
-       $b .= <<<EOL
+       $body .= <<<EOL
 <script>
 var target=$("#settings-nickname-desc");
 if (target.length) { target.append("<p>$fragment</p>"); }
@@ -106,7 +106,7 @@ function saml_is_configured()
                DI::config()->get('saml', 'idp_cert');
 }
 
-function saml_sso_initiate(&$a, &$b)
+function saml_sso_initiate(string &$body)
 {
        if (!saml_is_configured()) {
                Logger::warning('SAML SSO tried to trigger, but the SAML addon is not configured yet!');
@@ -115,24 +115,24 @@ function saml_sso_initiate(&$a, &$b)
 
        $auth = new \OneLogin\Saml2\Auth(saml_settings());
        $ssoBuiltUrl = $auth->login(null, [], false, false, true);
-       $_SESSION['AuthNRequestID'] = $auth->getLastRequestID();
+       DI::session()->set('AuthNRequestID', $auth->getLastRequestID());
        header('Pragma: no-cache');
        header('Cache-Control: no-cache, must-revalidate');
        header('Location: ' . $ssoBuiltUrl);
        exit();
 }
 
-function saml_sso_reply($a)
+function saml_sso_reply()
 {
        $auth = new \OneLogin\Saml2\Auth(saml_settings());
        $requestID = null;
 
-       if (isset($_SESSION) && isset($_SESSION['AuthNRequestID'])) {
-               $requestID = $_SESSION['AuthNRequestID'];
+       if (DI::session()->exists('AuthNRequestID')) {
+               $requestID = DI::session()->get('AuthNRequestID');
        }
 
        $auth->processResponse($requestID);
-       unset($_SESSION['AuthNRequestID']);
+       DI::session()->remove('AuthNRequestID');
 
        $errors = $auth->getErrors();
 
@@ -163,16 +163,15 @@ function saml_sso_reply($a)
        }
 
        if (!empty($user['uid'])) {
-               DI::auth()->setForUser($a, $user);
+               DI::auth()->setForUser($user);
        }
 
-       if (isset($_POST['RelayState'])
-               && \OneLogin\Saml2\Utils::getSelfURL() != $_POST['RelayState']) {
+       if (isset($_POST['RelayState']) && Utils::getSelfURL() != $_POST['RelayState']) {
                $auth->redirectTo($_POST['RelayState']);
        }
 }
 
-function saml_slo_initiate(&$a, &$b)
+function saml_slo_initiate()
 {
        if (!saml_is_configured()) {
                Logger::warning('SAML SLO tried to trigger, but the SAML addon is not configured yet!');
@@ -182,7 +181,7 @@ function saml_slo_initiate(&$a, &$b)
        $auth = new \OneLogin\Saml2\Auth(saml_settings());
 
        $sloBuiltUrl = $auth->logout();
-       $_SESSION['LogoutRequestID'] = $auth->getLastRequestID();
+       DI::session()->set('LogoutRequestID', $auth->getLastRequestID());
        header('Pragma: no-cache');
        header('Cache-Control: no-cache, must-revalidate');
        header('Location: ' . $sloBuiltUrl);
@@ -193,8 +192,8 @@ function saml_slo_reply()
 {
        $auth = new \OneLogin\Saml2\Auth(saml_settings());
 
-       if (isset($_SESSION) && isset($_SESSION['LogoutRequestID'])) {
-               $requestID = $_SESSION['LogoutRequestID'];
+       if (DI::session()->exists('LogoutRequestID')) {
+               $requestID = DI::session()->get('LogoutRequestID');
        } else {
                $requestID = null;
        }
@@ -223,7 +222,7 @@ function saml_input($key, $label, $description)
        ];
 }
 
-function saml_addon_admin(&$a, &$o)
+function saml_addon_admin(string &$o)
 {
        $form =
                saml_input(
@@ -279,7 +278,7 @@ function saml_addon_admin(&$a, &$o)
        $o = Renderer::replaceMacros($t, $form);
 }
 
-function saml_addon_admin_post(&$a)
+function saml_addon_admin_post()
 {
        $set = function ($key) {
                $val = (!empty($_POST[$key]) ? trim($_POST[$key]) : '');