Exemple #1
0
function loginByHash($_key, $_ajax = false)
{
    $user = user::byHash($_key);
    if (is_object($user) && $user->getEnable() == 1) {
        connection::success($user->getLogin());
        @session_start();
        $_SESSION['user'] = $user;
        @session_write_close();
        setcookie('registerDevice', $_key, time() + 365 * 24 * 3600, "/", '', false, true);
        log::add('connection', 'info', __('Connexion de l\'utilisateur par clef : ', __FILE__) . $user->getLogin());
        $getParams = '';
        unset($_GET['auth']);
        foreach ($_GET as $var => $value) {
            $getParams .= $var . '=' . $value . '&';
        }
        if (!$_ajax) {
            if (strpos($_SERVER['PHP_SELF'], 'core') || strpos($_SERVER['PHP_SELF'], 'desktop')) {
                header('Location:../../index.php?' . trim($getParams, '&'));
            } else {
                header('Location:index.php?' . trim($getParams, '&'));
            }
        }
        return true;
    }
    connection::failed();
    sleep(5);
    if (!$_ajax) {
        if (strpos($_SERVER['PHP_SELF'], 'core') || strpos($_SERVER['PHP_SELF'], 'desktop')) {
            header('Location:../../index.php?v=derror=1');
        } else {
            header('Location:index.php?v=' . $_GET['v'] . '&error=1');
        }
    }
    return false;
}
Exemple #2
0
 * Jeedom is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Jeedom. If not, see <http://www.gnu.org/licenses/>.
 */
try {
    require_once dirname(__FILE__) . '/../../core/php/core.inc.php';
    include_file('core', 'authentification', 'php');
    if (init('action') == 'login') {
        if (!isConnect() && config::byKey('sso:allowRemoteUser') == 1) {
            $user = user::byLogin($_SERVER['REMOTE_USER']);
            if (is_object($user) && $user->getEnable() == 1) {
                connection::success($user->getLogin());
                @session_start();
                $_SESSION['user'] = $user;
                @session_write_close();
                log::add('connection', 'info', __('Connexion de l\'utilisateur par REMOTE_USER : '******'username'), init('password'), true)) {
            throw new Exception('Mot de passe ou nom d\'utilisateur incorrect');
        }
        if (init('storeConnection') == 1) {
            setcookie('registerDevice', $_SESSION['user']->getHash(), time() + 365 * 24 * 3600, "/", '', false, true);
        }
        ajax::success();
    }
    if (init('action') == 'forgotPassword') {
Exemple #3
0
             throw new Exception('Nom d\'utilisateur ou mot de passe invalide', -32001);
         }
         $session_lifetime = config::byKey('session_lifetime', 24);
         if (!is_numeric($session_lifetime)) {
             $session_lifetime = 24;
         }
         ini_set('session.gc_maxlifetime', $session_lifetime * 3600);
         @session_start();
         $_SESSION['user'] = $user;
         @session_write_close();
     } else {
         connection::failed();
         throw new Exception('Aucune clé API ou nom d\'utilisateur', -32001);
     }
 }
 connection::success('api');
 /*             * ************************config*************************** */
 if ($jsonrpc->getMethod() == 'config::byKey') {
     $jsonrpc->makeSuccess(config::byKey($params['key'], $params['plugin'], $params['default']));
 }
 if ($jsonrpc->getMethod() == 'config::save') {
     $jsonrpc->makeSuccess(config::save($params['key'], $params['value'], $params['plugin']));
 }
 if (isset($params['plugin']) && $params['plugin'] != '') {
     log::add('api', 'info', 'Demande pour le plugin : ' . $params['plugin']);
     include_file('core', $params['plugin'], 'api', $params['plugin']);
 } else {
     /*             * ***********************Ping********************************* */
     if ($jsonrpc->getMethod() == 'ping') {
         $jsonrpc->makeSuccess('pong');
     }