diff --git a/index.php b/index.php index b15c71d..3445f4b 100644 --- a/index.php +++ b/index.php @@ -492,6 +492,14 @@ Router\post_action('add', function() { }); +// Re-generate tokens +Router\get_action('generate-tokens', function() { + + Model\new_tokens(); + Response\redirect('?action=config#api'); +}); + + // Optimize the database manually Router\get_action('optimize-db', function() { diff --git a/model.php b/model.php index 95b9fdf..03782aa 100644 --- a/model.php +++ b/model.php @@ -102,9 +102,25 @@ function write_debug() } -function generate_api_token() +function generate_token() { - return substr(base64_encode(file_get_contents('/dev/urandom', false, null, 0, 20)), 0, 15); + if (ini_get('open_basedir') === '') { + return substr(base64_encode(file_get_contents('/dev/urandom', false, null, 0, 20)), 0, 15); + } + else { + return substr(base64_encode(uniqid(mt_rand(), true)), 0, 20); + } +} + + +function new_tokens() +{ + $values = array( + 'api_token' => generate_token(), + 'feed_token' => generate_token(), + ); + + return \PicoTools\singleton('db')->table('config')->update($values); } diff --git a/schema.php b/schema.php index cf32332..f953050 100644 --- a/schema.php +++ b/schema.php @@ -5,7 +5,7 @@ namespace Schema; function version_14($pdo) { - $pdo->exec('ALTER TABLE config ADD COLUMN feed_token TEXT DEFAULT "'.\Model\generate_api_token().'"'); + $pdo->exec('ALTER TABLE config ADD COLUMN feed_token TEXT DEFAULT "'.\Model\generate_token().'"'); } @@ -17,7 +17,7 @@ function version_13($pdo) function version_12($pdo) { - $pdo->exec('ALTER TABLE config ADD COLUMN api_token TEXT DEFAULT "'.\Model\generate_api_token().'"'); + $pdo->exec('ALTER TABLE config ADD COLUMN api_token TEXT DEFAULT "'.\Model\generate_token().'"'); } diff --git a/templates/config.php b/templates/config.php index 184f607..adffba6 100644 --- a/templates/config.php +++ b/templates/config.php @@ -38,7 +38,7 @@
-

+