[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> -->
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [16624] API: custom SSO,
sigurdne <=