Files
raby/common/Controller/Web/Admin/Clave.php
2020-04-07 15:37:21 -04:00

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);
}
}