fmsystem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fmsystem-commits] [16624] API: custom SSO


From: sigurdne
Subject: [Fmsystem-commits] [16624] API: custom SSO
Date: Wed, 26 Apr 2017 04:16:54 -0400 (EDT)

Revision: 16624
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=16624
Author:   sigurdne
Date:     2017-04-26 04:16:53 -0400 (Wed, 26 Apr 2017)
Log Message:
-----------
API: custom SSO

Modified Paths:
--------------
    trunk/phpgwapi/inc/auth/class.auth_customsso.inc.php
    trunk/phpgwapi/inc/class.login.inc.php
    trunk/setup/templates/base/config.tpl

Modified: trunk/phpgwapi/inc/auth/class.auth_customsso.inc.php
===================================================================
--- trunk/phpgwapi/inc/auth/class.auth_customsso.inc.php        2017-04-26 
04:49:35 UTC (rev 16623)
+++ trunk/phpgwapi/inc/auth/class.auth_customsso.inc.php        2017-04-26 
08:16:53 UTC (rev 16624)
@@ -74,10 +74,29 @@
 
                public function get_username()
                {
+                       if(empty($_SERVER['REMOTE_USER']))
+                       {
+                               return;
+                       }
+
                        $headers = getallheaders();
 
                        $ssn = $headers['uid'];
 
+                       $remote_user = explode('@', $_SERVER['REMOTE_USER']);
+                       $username  = $remote_user[0];
+
+                       /**
+                        * Shibboleth from inside firewall
+                        */
+                       if($username && !$ssn)
+                       {
+                               return $username;
+                       }
+
+                       /**
+                        * Shibboleth from outside firewall
+                        */
                        if(!$ssn)
                        {
                                return;
@@ -98,27 +117,46 @@
                                return $username;
                        }
 
+                       $db = createObject('phpgwapi.db_adodb', null, null, 
true);
 
-                       // Alternative
-                       $config = 
CreateObject('phpgwapi.config','rental')->read();
+                       // Alternative config
+                       $config = CreateObject('admin.soconfig', 
$GLOBALS['phpgw']->locations->get_id('property', '.admin'));
 
-                       if(! $config['external_db_host'] || 
!$this->ping($config['external_db_host']))
+                       if ($config->config_data['fellesdata']['host'])
                        {
-                               $message ="Database server 
{$config['external_db_host']} is not accessible";
-                               phpgwapi_cache::message_set($message, 'error');
-       //                      return false;
+                               if( 
!$this->ping($config->config_data['fellesdata']['host']))
+                               {
+                                       $message = "Database server 
{$config->config_data['fellesdata']['host']} is not accessible";
+                                       phpgwapi_cache::message_set($message, 
'error');
+                               }
+
+                               $db->debug = false;
+                               $db->Host = 
$config->config_data['fellesdata']['host'];
+                               $db->Port = 
$config->config_data['fellesdata']['port'];
+                               $db->Type = 'oracle';
+                               $db->Database = 
$config->config_data['fellesdata']['db_name'];
+                               $db->User = 
$config->config_data['fellesdata']['user'];
+                               $db->Password = 
$config->config_data['fellesdata']['password'];
+
                        }
+                       else
+                       {
+                               $config = 
CreateObject('phpgwapi.config','rental')->read();
 
-//                     $db = createObject('phpgwapi.db', null, null, true);
-                       $db = createObject('phpgwapi.db_adodb', null, null, 
true);
+                               if(! $config['external_db_host'] || 
!$this->ping($config['external_db_host']))
+                               {
+                                       $message ="Database server 
{$config['external_db_host']} is not accessible";
+                                       phpgwapi_cache::message_set($message, 
'error');
+                               }
 
-                       $db->debug = !!$config['external_db_debug'];
-                       $db->Host = $config['external_db_host'];
-                       $db->Port = $config['external_db_port'];
-                       $db->Type = $config['external_db_type'];
-                       $db->Database = $config['external_db_name'];
-                       $db->User = $config['external_db_user'];
-                       $db->Password = $config['external_db_password'];
+                               $db->debug = !!$config['external_db_debug'];
+                               $db->Host = $config['external_db_host'];
+                               $db->Port = $config['external_db_port'];
+                               $db->Type = $config['external_db_type'];
+                               $db->Database = $config['external_db_name'];
+                               $db->User = $config['external_db_user'];
+                               $db->Password = $config['external_db_password'];
+                       }
 
                        try
                        {
@@ -131,7 +169,6 @@
                                return false;
                        }
 
-
                        $sql = "SELECT BRUKERNAVN FROM V_AD_PERSON WHERE 
FODSELSNR ='{$ssn}'";
                        $db->query($sql,__LINE__,__FILE__);
                        $db->next_record();

Modified: trunk/phpgwapi/inc/class.login.inc.php
===================================================================
--- trunk/phpgwapi/inc/class.login.inc.php      2017-04-26 04:49:35 UTC (rev 
16623)
+++ trunk/phpgwapi/inc/class.login.inc.php      2017-04-26 08:16:53 UTC (rev 
16624)
@@ -232,9 +232,12 @@
                                $GLOBALS['phpgw']->auth = 
createObject('phpgwapi.auth');
                                $login = 
$GLOBALS['phpgw']->auth->get_username();
 
-                               $GLOBALS['sessionid'] = 
$GLOBALS['phpgw']->session->create($login, '');
+                               if($login)
+                               {
+                                       $GLOBALS['sessionid'] = 
$GLOBALS['phpgw']->session->create($login, '');
+                               }
 
-                               if (!isset($GLOBALS['sessionid']) || 
!$GLOBALS['sessionid'])
+                               if (!$login || empty($GLOBALS['sessionid']))
                                {
                                        $cd_array = array();
                                        if 
($GLOBALS['phpgw']->session->cd_reason)

Modified: trunk/setup/templates/base/config.tpl
===================================================================
--- trunk/setup/templates/base/config.tpl       2017-04-26 04:49:35 UTC (rev 
16623)
+++ trunk/setup/templates/base/config.tpl       2017-04-26 08:16:53 UTC (rev 
16624)
@@ -119,10 +119,11 @@
       <option value="sqlssl"{selected_auth_type_sqlssl}>SQL / SSL</option>
       <option value="ldap"{selected_auth_type_ldap}>LDAP</option>
       <option value="mail"{selected_auth_type_mail}>Mail</option>
-      <option value="ntlm"{selected_auth_type_ntlm}>ntlm</option>
+      <option value="ntlm"{selected_auth_type_ntlm}>NTLM</option>
       <option value="exchange"{selected_auth_type_exchange}>exchange</option>
       <option value="ads"{selected_auth_type_ads}>ads</option>
       <option value="remoteuser"{selected_auth_type_remoteuser}>Remote 
User</option>
+      <option value="customsso"{selected_auth_type_customsso}>Custom 
SSO</option>
       <!-- <option value="http"{selected_auth_type_http}>HTTP</option> -->
       <!-- <option value="nis"{selected_auth_type_nis}>NIS</option> -->
       <!-- <option value="pam"{selected_auth_type_pam}>PAM (Not 
Ready)</option> -->




reply via email to

[Prev in Thread] Current Thread [Next in Thread]