<commit_before><?php
/*
 *  IdPRef - IdP de Referencia para SIR 2 basado en SimpleSAMLPHP v1.13.1
 * =========================================================================== *
 *
 * Copyright (C) 2014 - 2015 by the Spanish Research and Academic Network.
 * This code was developed by Auditoria y Consultoría de Privacidad y Seguridad
 * (PRiSE http://www.prise.es) for the RedIRIS SIR service (SIR: 
 * http://www.rediris.es/sir)
 *
 * *****************************************************************************
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 *
 * ************************************************************************** */

/** 
 * Paso 1 del modulo instalador para SimpleSAMLphp v1.13.1
 * @package    IdPRef\modules\idpinstaller
 * @author     "PRiSE [Auditoria y Consultoria de privacidad y Seguridad, S.L.]"
 * @copyright  Copyright (C) 2014 - 2015 by the Spanish Research and Academic
 *             Network
 * @license    http://www.apache.org/licenses/LICENSE-2.0  Apache License 2.0
 * @version    0.3-Sprint3-R57
 */

/**
 * Hook para ejecutar el paso 1 de la instalación. En este paso se deberá 
 * comprobar el estado de la instalación de SSPHP, siendo necesario comprobar:
 *   1) PHP version >= 5.3.0.
 *   2) PHP extensions:
 *     2.1) Siempre requeridas: date, dom, hash, libxml, openssl, pcre, SPL,
 *          zlib, mcrypt
 *     2.2) Para autenticar mediante un servidor LDAP: ldap
 *  // 2.3) Para autenticar mediante un servidor RADIUS: radius(no es necesaria)
 *     2.4) Para salvar información de sesion en un servidor memcache: memcache 
 *          (Indicar que será necesario para entornos balanceados)
 *     2.5) Para usar bases de datos:
 *          2.5.1) Siempre: PDO
 *          2.5.2) Database driver: (mysql, pgsql, ...)
 * 
 * Si no está activo ni LDAP ni BBDD => Error
 * Si está uno u otro => indicar que solo podrá usar authN según el activo
 * Si están los 2 => Palante
 *
 * Se deberán comprobar los permisos de los archivos que se deberán modificar
 * por el usuario
 * 
 * @param array &$data  Los datos a utilizar por las plantillas de tipo stepn
 * 
 */
function idpinstaller_hook_step1(&$data) {
    $ssphpobj = $data['ssphpobj'];
    //Comprobamos la versión de PHP
    if (version_compare(PHP_VERSION, "5.3.0", ">=") === false) {
        $data['errors'][] = $ssphpobj->t('{idpinstaller:idpinstaller:general_error}');
        $data['errors'][] = $ssphpobj->t('{idpinstaller:idpinstaller:step1_error_version}');
    } else {
        //Continuamos comprobando las extensiones de PHP
        $extensions        = array("date", "dom", "hash", "libxml", "openssl", "pcre", "SPL", "zlib", "mcrypt");
        $failed_extensions = array();
        $loaded_extensions = get_loaded_extensions();
        foreach ($extensions as $extension) {
            if (!isExtensionActive($extension, $loaded_extensions)) {
                $failed_extensions[] = $extension;
            }
        }
        if (count($failed_extensions) > 0) {
            $data['errors'][] = $ssphpobj->t('{idpinstaller:idpinstaller:general_error}');
            $data['errors'][] = $ssphpobj->t('{idpinstaller:idpinstaller:step1_error_extensions}') . implode(", ", $failed_extensions) . ".";
        } else {<commit_msg>Ajustes en requisitos<commit_after><?php
/*
 *  IdPRef - IdP de Referencia para SIR 2 basado en SimpleSAMLPHP v1.13.1
 * =========================================================================== *
 *
 * Copyright (C) 2014 - 2015 by the Spanish Research and Academic Network.
 * This code was developed by Auditoria y Consultoría de Privacidad y Seguridad
 * (PRiSE http://www.prise.es) for the RedIRIS SIR service (SIR: 
 * http://www.rediris.es/sir)
 *
 * *****************************************************************************
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 *
 * ************************************************************************** */

/** 
 * Paso 1 del modulo instalador para SimpleSAMLphp v1.13.1
 * @package    IdPRef\modules\idpinstaller
 * @author     "PRiSE [Auditoria y Consultoria de privacidad y Seguridad, S.L.]"
 * @copyright  Copyright (C) 2014 - 2015 by the Spanish Research and Academic
 *             Network
 * @license    http://www.apache.org/licenses/LICENSE-2.0  Apache License 2.0
 * @version    0.3-Sprint3-R57
 */

/**
 * Hook para ejecutar el paso 1 de la instalación. En este paso se deberá 
 * comprobar el estado de la instalación de SSPHP, siendo necesario comprobar:
 *   1) PHP version >= 5.3.0.
 *   2) PHP extensions:
 *     2.1) Siempre requeridas: date, dom, hash, libxml, openssl, pcre, SPL,
 *          zlib, mcrypt
 *     2.2) Para autenticar mediante un servidor LDAP: ldap
 *  // 2.3) Para autenticar mediante un servidor RADIUS: radius(no es necesaria)
 *     2.4) Para salvar información de sesion en un servidor memcache: memcache 
 *          (Indicar que será necesario para entornos balanceados)
 *     2.5) Para usar bases de datos:
 *          2.5.1) Siempre: PDO
 *          2.5.2) Database driver: (mysql, pgsql, ...)
 * 
 * Si no está activo ni LDAP ni BBDD => Error
 * Si está uno u otro => indicar que solo podrá usar authN según el activo
 * Si están los 2 => Palante
 *
 * Se deberán comprobar los permisos de los archivos que se deberán modificar
 * por el usuario
 * 
 * @param array &$data  Los datos a utilizar por las plantillas de tipo stepn
 * 
 */
function idpinstaller_hook_step1(&$data) {
    $ssphpobj = $data['ssphpobj'];
    //Comprobamos la versión de PHP
    if (version_compare(PHP_VERSION, "5.5.0", ">=") === false) {
        $data['errors'][] = $ssphpobj->t('{idpinstaller:idpinstaller:general_error}');
        $data['errors'][] = $ssphpobj->t('{idpinstaller:idpinstaller:step1_error_version}');
    } else {
        //Continuamos comprobando las extensiones de PHP
        $extensions        = array("date", "dom", "hash", "libxml", "openssl", "pcre", "SPL", "zlib", "json", "mbstring");
        $windows_os = array("WIN32","WINNT","Windows");

        if(!in_array(PHP_OS, $windows_os)){
        	$extensions[]="posix";
        }

        $failed_extensions = array();
        $loaded_extensions = get_loaded_extensions();
        foreach ($extensions as $extension) {
            if (!isExtensionActive($extension, $loaded_extensions)) {
                $failed_extensions[] = $extension;
            }
        }
        if (count($failed_extensions) > 0) {
            $data['errors'][] = $ssphpobj->t('{idpinstaller:idpinstaller:general_error}');
            $data['errors'][] = $ssphpobj->t('{idpinstaller:idpinstaller:step1_error_extensions}') . implode(", ", $failed_extensions) . ".";
        } else {
{'fraction_non_alphanumeric': 0.17130231349103198, 'fraction_numerical': 0.01819599688068625, 'mean_word_length': 3.313340807174888, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 23, 'https://': 0, 'lorem ipsum': 0, 'www.': 8, 'xml': 4}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6571496', 'n_tokens_mistral': 2454, 'n_tokens_neox': 2330, 'n_words': 744}