45 lines
1.4 KiB
PHP
45 lines
1.4 KiB
PHP
<?php
|
|
namespace ProVm\NotariaRaby\Common\Controller\Web\Admin;
|
|
|
|
use Psr\Container\ContainerInterface as Container;
|
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
|
use Psr\Http\Message\ResponseInterface as Response;
|
|
use Slim\Views\Blade as View;
|
|
use ProVM\Common\Service\Filemanager;
|
|
use ProVM\NotariaRaby\Common\Service\Login;
|
|
|
|
class Clave {
|
|
public function __invoke(Request $request, Response $response, View $view): Response {
|
|
return $view->render($response, 'admin.clave');
|
|
}
|
|
public function do_edit(Request $request, Response $response, Container $container, Filemanager $filemanager, Login $service): Response {
|
|
$filename = implode(DIRECTORY_SEPARATOR, [
|
|
dirname(__DIR__, 4),
|
|
'.env'
|
|
]);
|
|
$vars = [];
|
|
if (file_exists($filename)) {
|
|
$vars = explode(PHP_EOL, trim(file_get_contents($filename)));
|
|
}
|
|
$i = 0;
|
|
foreach ($vars as $i => $var) {
|
|
if (strpos($var, 'ADMIN_PASSWORD=') !== false) {
|
|
break;
|
|
}
|
|
}
|
|
$post = $request->getParsedBody();
|
|
$enc = password_hash($post['clave'], \PASSWORD_DEFAULT);
|
|
$vars[$i] = implode('=', [
|
|
'ADMIN_PASSWORD',
|
|
'"' . $enc . '"'
|
|
]);
|
|
file_put_contents($filename, implode(PHP_EOL, $vars));
|
|
return $response
|
|
->withHeader('Location', implode('/', [
|
|
$container->get('urls.base'),
|
|
'admin'
|
|
]))
|
|
->withStatus(301);
|
|
}
|
|
}
|