47 lines
2.2 KiB
PHP
47 lines
2.2 KiB
PHP
<?php
|
|
if (!defined('PICONTROL')) exit();
|
|
|
|
$tpl->setHeaderTitle(_t('Benutzer'));
|
|
|
|
$showInfo = false;
|
|
$dataUser = json_decode(readFromFile('user'), true);
|
|
|
|
if (isset($_POST['submit']) && $_POST['submit'] != '')
|
|
{
|
|
if (isset($_POST['username'], $_POST['password'], $_POST['password2']) && ($pUsername = trim($_POST['username'])) != '' && ($pPassword = $_POST['password']) != '' && ($pPassword2 = $_POST['password2']) != '')
|
|
{
|
|
if (preg_match('/^[a-z][a-z0-9\-_]{1,31}$/i', $pUsername) === 1)
|
|
{
|
|
$lowerUsername = strtolower($pUsername);
|
|
if (preg_match('/^[a-z0-9_\-\+\*\/\#.\!\?@\(\)\[\]\{\}\<\>\=\$%&,\|\:~§;]{4,64}$/i', $pPassword) === 1)
|
|
{
|
|
if ($pPassword === $pPassword2)
|
|
{
|
|
if (($return = writeToFile('user', json_encode(array('username' => $pUsername, 'password' => password_hash($pPassword, PASSWORD_BCRYPT))))) === 0)
|
|
$showInfo = true;
|
|
else
|
|
$tpl->msg('error', _t('Fehler'), _t('Es gab ein Fehler während der Dateioperation! Fehlercode: %s', $return));
|
|
}
|
|
else
|
|
$tpl->msg('error', _t('Fehler'), _t('Die angegebenen Passwörter stimmen nicht überein!'));
|
|
}
|
|
else
|
|
$tpl->msg('error', _t('Fehler'), _t('Leider ist das Passwort ungültig! Das Passwort muss aus 4 bis 64 Zeichen bestehen und darf nur folgende Zeichen beinhalten: A-Z 0-9 - _ + * / # . ! ? @ ( ) [ ] { } < > = $ %% & , | : ~ § ;'));
|
|
}
|
|
else
|
|
$tpl->msg('error', _t('Fehler'), _t('Leider ist der Benutzername ungültig! Der Benutzername muss aus 2 bis 32 Zeichen bestehen. Das erste Zeichen muss ein Buchstabe sein und es sind nur folgende Zeichen erlaubt: A-Z 0-9 - _'));
|
|
}
|
|
else
|
|
$tpl->msg('error', _t('Fehler'), _t('Bitte alle Felder ausfüllen!'));
|
|
}
|
|
|
|
if ($showInfo === true)
|
|
$tpl->draw('install_user_info');
|
|
else
|
|
{
|
|
if (isset($dataUser['username'], $dataUser['password']) && $dataUser['username'] != '' && $dataUser['password'] != '' && !isset($_POST['submit']))
|
|
$tpl->msg('info', _t('Benutzer bereits erstellt'), _t('Es wurde bereits ein Benutzer für das Pi Control erstellt. Du kannst diesen <a href="%s">Schritt überspringen</a> oder einfach den aktuellen Benutzer überschreiben, indem du hier einen neuen Benutzer erstellst.', '?s=install_cron'), false);
|
|
|
|
$tpl->draw('install_user');
|
|
}
|
|
?>
|