Revert "Merge branch 'ent-3693-pete-php-pantalla-en-blanco-con-auth-saml' into 'develop'"
This reverts merge request !2562
This commit is contained in:
parent
da110f1d33
commit
8242bf34b8
|
@ -1,164 +0,0 @@
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
|
|
||||||
#alert_messages_na{
|
|
||||||
z-index:2;
|
|
||||||
position: absolute;
|
|
||||||
left: 50%;
|
|
||||||
top: 50%;
|
|
||||||
transform: translate(-50%, -50%);
|
|
||||||
-webkit-transform: translate(-50%, -50%);
|
|
||||||
width:650px;
|
|
||||||
height: 400px;
|
|
||||||
background:white;
|
|
||||||
background-image:url('images/imagen-no-acceso.jpg');
|
|
||||||
background-repeat:no-repeat;
|
|
||||||
justify-content: center;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
box-shadow:4px 5px 10px 3px rgba(0, 0, 0, 0.4);
|
|
||||||
}
|
|
||||||
|
|
||||||
.modalheade{
|
|
||||||
text-align:center;
|
|
||||||
width:100%;
|
|
||||||
position:absolute;
|
|
||||||
top:0;
|
|
||||||
}
|
|
||||||
.modalheadertex{
|
|
||||||
color:#000;
|
|
||||||
font-family:Nunito;
|
|
||||||
line-height: 40px;
|
|
||||||
font-size: 23pt;
|
|
||||||
margin-bottom:30px;
|
|
||||||
}
|
|
||||||
.modalclose{
|
|
||||||
cursor:pointer;
|
|
||||||
display:inline;
|
|
||||||
float:right;
|
|
||||||
margin-right:10px;
|
|
||||||
margin-top:10px;
|
|
||||||
}
|
|
||||||
.modalconten{
|
|
||||||
color:black;
|
|
||||||
width:300px;
|
|
||||||
margin-left: 30px;
|
|
||||||
}
|
|
||||||
.modalcontenttex{
|
|
||||||
text-align:left;
|
|
||||||
color:black;
|
|
||||||
font-size: 11pt;
|
|
||||||
line-height:13pt;
|
|
||||||
margin-bottom:30px;
|
|
||||||
}
|
|
||||||
.modalokbutto{
|
|
||||||
cursor:pointer;
|
|
||||||
text-align:center;
|
|
||||||
display: inline-block;
|
|
||||||
padding: 6px 45px;
|
|
||||||
-moz-border-radius: 3px;
|
|
||||||
-webkit-border-radius: 3px;
|
|
||||||
border-radius: 3px;
|
|
||||||
background-color:white;
|
|
||||||
border: 1px solid #82b92e;
|
|
||||||
}
|
|
||||||
.modalokbuttontex{
|
|
||||||
color:#82b92e;
|
|
||||||
font-family:Nunito;
|
|
||||||
font-size:13pt;
|
|
||||||
}
|
|
||||||
.modalgobutto{
|
|
||||||
cursor:pointer;
|
|
||||||
text-align:center;
|
|
||||||
-moz-border-radius: 3px;
|
|
||||||
-webkit-border-radius: 3px;
|
|
||||||
border-radius: 3px;
|
|
||||||
background-color:white;
|
|
||||||
border: 1px solid #82b92e;
|
|
||||||
}
|
|
||||||
.modalgobuttontex{
|
|
||||||
color:#82b92e;
|
|
||||||
font-family:Nunito;
|
|
||||||
font-size:10pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#opacidad{
|
|
||||||
position:fixed;
|
|
||||||
background:black;
|
|
||||||
opacity:0.6;
|
|
||||||
z-index:-1;
|
|
||||||
left:0px;
|
|
||||||
top:0px;
|
|
||||||
width:100%;
|
|
||||||
height:100%;
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
.textodialog{
|
|
||||||
margin-left: 0px;
|
|
||||||
color:#333;
|
|
||||||
padding:20px;
|
|
||||||
font-size:9pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cargatextodialog{
|
|
||||||
max-width:58.5%;
|
|
||||||
width:58.5%;
|
|
||||||
min-width:58.5%;
|
|
||||||
float:left;
|
|
||||||
margin-left: 0px;
|
|
||||||
font-size:18pt;
|
|
||||||
padding:20px;
|
|
||||||
text-align:center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cargatextodialog p, .cargatextodialog b, .cargatextodialog a{
|
|
||||||
font-size:18pt;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<div id="alert_messages_na">
|
|
||||||
|
|
||||||
<div class='modalheade'>
|
|
||||||
<img class='modalclose cerrar' src='<?php echo $config['homeurl']; ?>images/input_cross.png'>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class='modalconten'>
|
|
||||||
<div class='modalheadertex'>
|
|
||||||
<?php echo __("You don't have access to this page"); ?>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class='modalcontenttex'>
|
|
||||||
<?php
|
|
||||||
echo __('Access to this page is restricted to authorized users SAML only, please contact system administrator if you need assistance.');
|
|
||||||
echo '<br/> <br/>';
|
|
||||||
echo __('Please make sure you have SAML authentication properly configured. For more information the error to access this page are recorded in security logs of %s System Database', get_product_name());
|
|
||||||
?>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class='modalokbutto cerrar'>
|
|
||||||
<span class='modalokbuttontex'>OK</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="opacidad"></div>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
|
|
||||||
$(".cerrar").click(function(){
|
|
||||||
window.location=".";
|
|
||||||
});
|
|
||||||
|
|
||||||
$('div#page').css('background-color','#d3d3d3');
|
|
||||||
|
|
||||||
</script>
|
|
|
@ -1,166 +0,0 @@
|
||||||
<?php
|
|
||||||
// ______ __ _______ _______ _______
|
|
||||||
// | __ \.---.-.-----.--| |.-----.----.---.-. | ___| | | __|
|
|
||||||
// | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
|
||||||
// |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
|
||||||
//
|
|
||||||
// ============================================================================
|
|
||||||
// Copyright (c) 2007-2010 Artica Soluciones Tecnologicas, http://www.artica.es
|
|
||||||
// This code is NOT free software. This code is NOT licenced under GPL2 licence
|
|
||||||
// You cannnot redistribute it without written permission of copyright holder.
|
|
||||||
// ============================================================================
|
|
||||||
global $config;
|
|
||||||
|
|
||||||
if (!file_exists($config['saml_path'].'simplesamlphp/lib/_autoload.php')) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Authenticate in saml system (red.es)
|
|
||||||
*
|
|
||||||
* @param string Login
|
|
||||||
* @param string Password
|
|
||||||
*
|
|
||||||
* @return boolean True if the login succeeds, false otherwise
|
|
||||||
*/
|
|
||||||
function saml_process_user_login()
|
|
||||||
{
|
|
||||||
global $config;
|
|
||||||
|
|
||||||
// SAML authentication attributes
|
|
||||||
$as = new SimpleSAML_Auth_Simple('PandoraFMS');
|
|
||||||
$as->requireAuth();
|
|
||||||
$session = SimpleSAML_Session::getSessionFromRequest();
|
|
||||||
$session->cleanup();
|
|
||||||
$attributes = $as->getAttributes();
|
|
||||||
|
|
||||||
if (empty($attributes)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$id_user = $attributes[SAML_MAIL_IN_PANDORA][0];
|
|
||||||
$email = $attributes[SAML_MAIL_IN_PANDORA][0];
|
|
||||||
$group_name = $attributes[SAML_GROUP_IN_PANDORA][0];
|
|
||||||
$profiles_and_tags = $attributes[SAML_ROLE_AND_TAG];
|
|
||||||
|
|
||||||
$profile_names = [];
|
|
||||||
$tag_names = [];
|
|
||||||
// Manages array with tags and roles to separate them
|
|
||||||
foreach ($profiles_and_tags as $profile_or_tag) {
|
|
||||||
$is_profile_or_tag = explode(SAML_DEFAULT_PROFILES_AND_TAGS_FORM, $profile_or_tag);
|
|
||||||
$is_profile_or_tag2 = explode(':', $is_profile_or_tag[1]);
|
|
||||||
if ($is_profile_or_tag2[0] == 'role') {
|
|
||||||
$profile_names[] = $is_profile_or_tag2[1];
|
|
||||||
} else if ($is_profile_or_tag2[0] == 'tag') {
|
|
||||||
$tag_names[] = $is_profile_or_tag2[1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Connect to Pandora db
|
|
||||||
$connection = mysql_connect_db(
|
|
||||||
$config['pandora_server'],
|
|
||||||
$config['pandora_dbname'],
|
|
||||||
$config['pandora_user'],
|
|
||||||
$config['pandora_pass']
|
|
||||||
);
|
|
||||||
|
|
||||||
if ($connection === false) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get the red.es user id
|
|
||||||
$rows = db_get_all_rows_sql(
|
|
||||||
"SELECT * FROM tusuario
|
|
||||||
WHERE id_user = '".$id_user."'",
|
|
||||||
false,
|
|
||||||
false,
|
|
||||||
$connection
|
|
||||||
);
|
|
||||||
|
|
||||||
// Checks group id, profiles id and tags id
|
|
||||||
$group_id = '';
|
|
||||||
$profile_id = [];
|
|
||||||
$tag_id = '';
|
|
||||||
$tags_to_profile = '';
|
|
||||||
if ($group_name != '') {
|
|
||||||
$group_id = db_get_all_rows_sql("SELECT id_grupo FROM tgrupo WHERE nombre = '".$group_name."'");
|
|
||||||
$group_id = $group_id[0]['id_grupo'];
|
|
||||||
if (empty($group_id)) {
|
|
||||||
$config['auth_error'] = 'Group not found in database';
|
|
||||||
db_pandora_audit('Logon Failed', 'Group '.$group_name.' not found in database', $_SERVER['REMOTE_ADDR']);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($profile_names)) {
|
|
||||||
foreach ($profile_names as $profile_name) {
|
|
||||||
$profile_id[] = db_get_row_sql("SELECT id_perfil FROM tperfil WHERE name = '".io_safe_input($profile_name)."'");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($tag_names)) {
|
|
||||||
$i = 0;
|
|
||||||
foreach ($tag_names as $tag_name) {
|
|
||||||
$tag_id = db_get_row_sql("SELECT id_tag FROM ttag WHERE name = '".io_safe_input($tag_name)."'");
|
|
||||||
if ($i == 0) {
|
|
||||||
$tags_to_profile = (String) $tag_id['id_tag'];
|
|
||||||
} else {
|
|
||||||
$tags_to_profile .= ','.(String) $tag_id['id_tag'];
|
|
||||||
}
|
|
||||||
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// If user does not exist in Pandora
|
|
||||||
if (empty($rows)) {
|
|
||||||
if ($id_user != '') {
|
|
||||||
$values_user = [];
|
|
||||||
$values_user['id_user'] = $id_user;
|
|
||||||
$values_user['email'] = $email;
|
|
||||||
$result_insert_user = db_process_sql_insert('tusuario', $values_user);
|
|
||||||
|
|
||||||
// Separates user insert of profile insert
|
|
||||||
$values_user_profile = [];
|
|
||||||
$values_user_profile['id_usuario'] = $id_user;
|
|
||||||
$values_user_profile['id_grupo'] = $group_id;
|
|
||||||
$values_user_profile['tags'] = $tags_to_profile;
|
|
||||||
foreach ($profile_id as $id) {
|
|
||||||
$values_user_profile['id_perfil'] = $id['id_perfil'];
|
|
||||||
$result_insert_user_profile = db_process_sql_insert('tusuario_perfil', $values_user_profile);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$result_insert_user_profile) {
|
|
||||||
$config['auth_error'] = 'Login error';
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $id_user;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$user = $rows[0];
|
|
||||||
// To update the profiles, delete the old and insert the new
|
|
||||||
$have_profiles = db_get_all_rows_sql("SELECT id_up FROM tusuario_perfil WHERE id_usuario = '".$user['id_user']."'");
|
|
||||||
if ($have_profiles) {
|
|
||||||
$delete_old_profiles = db_process_sql("DELETE FROM tusuario_perfil WHERE id_usuario = '".$user['id_user']."'");
|
|
||||||
}
|
|
||||||
|
|
||||||
$values_user_profile = [];
|
|
||||||
$values_user_profile['id_usuario'] = $user['id_user'];
|
|
||||||
$values_user_profile['id_grupo'] = $group_id;
|
|
||||||
$values_user_profile['tags'] = $tags_to_profile;
|
|
||||||
foreach ($profile_id as $id) {
|
|
||||||
$values_user_profile['id_perfil'] = $id['id_perfil'];
|
|
||||||
$result_insert_user_profile = db_process_sql_insert('tusuario_perfil', $values_user_profile);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $user['id_user'];
|
|
||||||
}
|
|
||||||
|
|
||||||
$config['auth_error'] = 'User not found in database or incorrect password';
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
|
@ -359,17 +359,12 @@ if (! isset($config['id_user'])) {
|
||||||
$nick_in_db = $_SESSION['prepared_login_da']['id_user'];
|
$nick_in_db = $_SESSION['prepared_login_da']['id_user'];
|
||||||
$expired_pass = false;
|
$expired_pass = false;
|
||||||
} else if (($config['auth'] == 'saml') && ($login_button_saml)) {
|
} else if (($config['auth'] == 'saml') && ($login_button_saml)) {
|
||||||
if (!include_once 'include/auth/saml.php') {
|
include_once ENTERPRISE_DIR.'/include/auth/saml.php';
|
||||||
include_once 'general/noaccesssaml.php';
|
|
||||||
} else {
|
$saml_user_id = saml_process_user_login();
|
||||||
$saml_user_id = saml_process_user_login();
|
|
||||||
}
|
|
||||||
|
|
||||||
$nick_in_db = $saml_user_id;
|
$nick_in_db = $saml_user_id;
|
||||||
|
|
||||||
if (!$nick_in_db) {
|
if (!$nick_in_db) {
|
||||||
include_once 'general/noaccesssaml.php';
|
|
||||||
|
|
||||||
include_once $config['saml_path'].'simplesamlphp/lib/_autoload.php';
|
include_once $config['saml_path'].'simplesamlphp/lib/_autoload.php';
|
||||||
$as = new SimpleSAML_Auth_Simple('PandoraFMS');
|
$as = new SimpleSAML_Auth_Simple('PandoraFMS');
|
||||||
$as->logout();
|
$as->logout();
|
||||||
|
|
Loading…
Reference in New Issue