Merge pull request #193 from Lukasss93/luca.patera

Improved changelog + new changelog page
This commit is contained in:
Sergio Brighenti 2020-04-13 16:47:53 +02:00 committed by GitHub
commit 0629264002
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 395 additions and 191 deletions

2
.gitignore vendored
View file

@ -9,6 +9,7 @@ composer.lock
### grunt ###
# Grunt usually compiles files inside this directory
dist/
release*.zip
# Grunt usually preprocesses files such as coffeescript, compass... inside the .tmp directory
.tmp/
@ -77,6 +78,7 @@ typings/
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff:
.idea/
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/dictionaries

View file

@ -1,7 +1,7 @@
Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(app|bin|bootstrap|resources|storage|vendor|logs)(/.*|)$ - [NC,F]
RewriteRule ^(app|bin|bootstrap|resources|storage|vendor|logs|CHANGELOG.MD)(/.*|)$ - [NC,F]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]

View file

@ -1,192 +1,298 @@
## v.3.1.1
+ Fixed error during a fresh installation with sqlite
# Changelog
All notable changes to this project will be documented in this file.
## v.3.1
+ Added tagging system (add, delete, search of tagged files).
+ Added basic media auto-tagging on upload.
+ Added registration system.
+ Added password recovery system.
+ Added ability to export all media of an account.
+ Added ability to choose between default and raw url on copy.
+ Added hide by default option.
+ Added user disk quota.
+ Added reCAPTCHA login protection.
+ Added bulk delete.
+ Added account clean function.
+ Added user disk quota system.
+ Added notification option on account create.
+ Added LDAP authentication.
+ Fixed bug html files raws are rendered in a browser.
+ The theme is now re-applied after every system update.
+ Updated system settings page.
+ Updated translations.
+ Improved grid layout.
+ Fixes and improvements.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## v.3.0.2
+ Fixed error with migrate command.
+ Updated translations.
## [3.1.2] - 2020-04-12
### Changed
- Improved installer storage checks.
## v.3.0.1
+ Fixed error with older mysql versions.
+ Fixed config is compiled with the di container.
+ Small installer update.
### Fixed
- Fixed upload table lost when updating very old instances.
## v.3.0
+ Upgraded from Slim3 to Slim 4.
+ Added web upload.
+ Added ability to add custom HTML in \<head\> tag.
+ Added ability to show a preview of PDF files.
+ Added remember me functionality.
+ Added delete button on the preview page if the user is logged in.
+ New project icon (by [@SerenaItalia](https://www.deviantart.com/serenaitalia)).
+ Raw URL now accept file extensions.
+ The linux script can be used on headless systems.
+ Improved installer.
+ Improved thumbnail generation.
+ Replaced videojs player with Plyr.
+ Implemented SameSite XSS protection.
+ Small fixes and improvements.
## [3.1.1] - 2020-04-11
### Fixed
- Fixed error during a fresh installation with sqlite.
## v.2.6.6
+ Ability to choose between releases and prereleases with the web updater.
+ Updated translations.
## [3.1] - 2020-04-10
### Added
- Added tagging system (add, delete, search of tagged files).
- Added basic media auto-tagging on upload.
- Added registration system.
- Added password recovery system.
- Added ability to export all media of an account.
- Added ability to choose between default and raw url on copy.
- Added hide by default option.
- Added user disk quota.
- Added reCAPTCHA login protection.
- Added bulk delete.
- Added account clean function.
- Added user disk quota system.
- Added notification option on account create.
- Added LDAP authentication.
## v2.6.5
+ Fixed error after orphaned files removal #74.
+ Fixed update password not correctly removed from log files #74.
+ Changed color to some buttons to address visibility with some themes.
### Changed
- The theme is now re-applied after every system update.
- Updated system settings page.
- Updated translations.
- Improved grid layout.
## v2.6.4
+ Filter on displayable images.
+ Fixed during upload error on php compiled for 32 bit.
+ Fixed icons on the installer page.
+ The generated random strings are now more human readable.
### Fixed
- Fixed bug html files raws are rendered in a browser.
- Fixes and improvements.
## v2.6.3
+ Fixed #67.
+ Fixed bad preload statement.
+ Fixed wrong redirect after install in subdirs.
## [3.0.2] - 2019-12-04
### Changed
- Updated translations.
## v2.6.2
+ Use the font awesome web font for better performances.
+ Changed background default color.
+ Added method for cache busting when updating/change theme.
+ Added russian translation from [Weblate](https://hosted.weblate.org/projects/xbackbone/xbackbone/).
### Fixed
- Fixed error with migrate command.
## v2.6.1
+ Fixed bad redirects on the web installer (#62).
+ Fixed login page with dark themes.
+ Improved shell commands.
+ Added alert if required extensions are not loaded.
+ Updated translations.
## [3.0.1] - 2019-11-25
### Changed
- Small installer update.
## v2.6
+ Added support to use AWS S3, Google Cloud Storage, Dropbox and FTP(s) accounts as storage location.
+ Fixed missing icon.
+ Added german and norwegian translations from [Weblate](https://hosted.weblate.org/projects/xbackbone/xbackbone/).
+ Improved lang detection.
+ Added ability to force system language.
### Fixed
- Fixed error with older mysql versions.
- Fixed config is compiled with the di container.
## v2.5.3
+ Fixed bad css loading on Firefox (#35).
+ Fixed wrong style for publish/unpublish button.
+ Improved exception stacktrace logging.
## [3.0] - 2019-11-23
### Added
- Added web upload.
- Added ability to add custom HTML in \<head\> tag.
- Added ability to show a preview of PDF files.
- Added remember me functionality.
- Added delete button on the preview page if the user is logged in.
- New project icon (by [@SerenaItalia](https://www.deviantart.com/serenaitalia)).
- The linux script can be used on headless systems.
- Raw URL now accept file extensions.
- Implemented SameSite XSS protection.
## v2.5.2
+ Improved session handling.
+ Fixed telegram share not working.
+ Fix for big text file now are not rendered in the browser.
+ Added preloading for some resources to improve performances.
+ Added check for block execution on EOL and unsupported PHP versions.
+ Other minor improvements.
### Changed
- Upgraded from Slim3 to Slim 4.
- Replaced videojs player with Plyr.
- Improved installer.
- Improved thumbnail generation.
- Small fixes and improvements.
## v2.5.1
+ Fixed bad redirect if the theme folder is not writable. (#27)
+ Improved HTTP partial content implementation for large files.
## [2.6.6] - 2019-10-23
### Added
- Ability to choose between releases and prereleases with the web updater.
## v2.5
+ Updated project license to <a href="https://choosealicense.com/licenses/agpl-3.0/">AGPL v3.0</a> (now releases ships with the new license).
+ **[BETA]** Added self update feature.
+ Added partial content implementation (stream seeking on chromium based browsers).
+ Improved video.js alignment with large videos.
+ Optimized output zip release size.
+ Templates cleanup and optimizations.
+ Improved error handling.
+ Added project favicon.
### Changed
- Updated translations.
## v2.4.1
+ Fixed error message when the file is too large. (#15)
+ Fixed button alignment.
## [2.6.5] - 2019-09-17
### Changed
- Changed color to some buttons to address visibility with some themes.
## v2.4
+ Added function to remove orphaned files.
+ Switch between tab and gallery mode using an admin account.
+ Multiple uploads sorting methods.
+ Search in uploads.
+ Internal refactoring and improvements
+ Updated js dependencies.
### Fixed
- Fixed error after orphaned files removal #74.
- Fixed update password not correctly removed from log files (#74).
## v2.3.1
+ Fixed en lang.
+ Fixed forced background with dark themes.
+ Added checks during the installation wizard.
+ cURL and Wget can now directly download the file.
## [2.6.4] - 2019-09-15
### Added
- Filter on displayable images.
## v2.3
+ Improved image scaling in user gallery.
+ Added overlay on user gallery images.
+ Fixed IT translation.
+ Fontawesome icon match the single file mime-type.
+ Enable audio player with video.js.
+ Video and audio now starts with volume at 50%.
+ Added linux script to allow uploads from linux screenshot tools.
+ Minor layout fixes.
### Changed
- The generated random strings are now more human readable.
## v2.2
+ Added multi-language support.
+ Improved routing.
+ Fixed HTTP/2 push is resetting the current session.
+ Minor improvements and bug fixes.
### Fixed
- Fixed during upload error on php compiled for 32 bit.
- Fixed icons on the installer page.
## v2.1
+ Improved theme style.
+ Improved page redirecting.
+ Allow e-mail login.
+ Support for ShareX deletion URL.
+ Fixed HTTP/2 push preload.
+ Added video.js support.
## [2.6.3] - 2019-09-14
### Fixed
- Fixed #67.
- Fixed bad preload statement.
- Fixed wrong redirect after install in subdirs.
## v2.0
+ Migrated from Flight to Slim 3 framework.
+ Added install wizard (using the CLI is no longer required).
+ Allow discord bot to display the preview.
+ Theme switcher on the web UI.
+ Added used space indicator per user.
+ MySQL support.
+ Improvements under the hood.
## [2.6.2] - 2019-09-06
### Added
- Added method for cache busting when updating/change theme.
- Added russian translation from [Weblate](https://hosted.weblate.org/projects/xbackbone/xbackbone/).
## v1.3
+ Added command to switch between bootswatch.com themes.
+ Added popever to write the telegram message when sharing.
+ Packaging improvements.
+ Updated some dependencies.
+ Allow Facebook bots to display the preview.
### Changed
- Changed background default color.
- Use the Font Awesome web font for better performances.
## v1.2
+ Previews are now scaled for better page load.
+ Added auto config generator for ShareX.
+ Show upload file size on the dashboard.
+ Fixed insert for admin user (running `php bin\migrate --install`).
+ Removed HTTP2 push from the dashboard to improve loading time.
## [2.6.1] - 2019-09-04
### Added
- Added alert if required extensions are not loaded.
## v1.1
+ Added logging.
+ Fixed back to top when click delete or publish/unpublish.
+ Improved migrate system.
+ Login redirect back to the requested page.
+ Updated Bootstrap theme.
+ Added share to Telegram.
### Changed
- Improved shell commands.
- Updated translations.
## v1.0
+ Initial version.
### Fixed
- Fixed bad redirects on the web installer (#62).
- Fixed login page with dark themes.
## [2.6] - 2019-08-20
### Added
- Added support to use AWS S3, Google Cloud Storage, Dropbox and FTP(s) accounts as storage location.
- Added german and norwegian translations from [Weblate](https://hosted.weblate.org/projects/xbackbone/xbackbone/).
- Added ability to force system language.
### Changed
- Improved lang detection.
### Fixed
- Fixed missing icon.
## [2.5.3] - 2019-05-12
### Changed
- Improved exception stacktrace logging.
### Fixed
- Fixed bad css loading on Firefox (#35).
- Fixed wrong style for publish/unpublish button.
## [2.5.2] - 2019-05-09
### Added
- Added preloading for some resources to improve performances.
- Added check for block execution on EOL and unsupported PHP versions.
### Changed
- Improved session handling.
- Other minor improvements.
### Fixed
- Fixed telegram share not working.
- Fix for big text file now are not rendered in the browser.
## [2.5.1] - 2019-04-10
### Changed
- Improved HTTP partial content implementation for large files.
### Fixed
- Fixed bad redirect if the theme folder is not writable. (#27)
## [2.5] - 2019-02-10
### Added
- Added partial content implementation (stream seeking on chromium based browsers).
- **[BETA]** Added self update feature.
- Added project favicon.
### Changed
- Updated project license to [AGPL v3.0](https://choosealicense.com/licenses/agpl-3.0/) (now releases ships with the new license).
- Improved video.js alignment with large videos.
- Optimized output zip release size.
- Templates cleanup and optimizations.
- Improved error handling.
## [2.4.1] - 2019-01-24
### Fixed
- Fixed error message when the file is too large. (#15)
- Fixed button alignment.
## [2.4] - 2019-01-22
### Added
- Added function to remove orphaned files.
- Multiple uploads sorting methods.
- Switch between tab and gallery mode using an admin account.
- Search in uploads.
### Changed
- Updated js dependencies.
- Internal refactoring and improvements
## [2.3.1] - 2018-12-09
### Added
- Added checks during the installation wizard.
- cURL and Wget can now directly download the file.
### Fixed
- Fixed english language.
- Fixed forced background with dark themes.
## [2.3] - 2018-11-30
### Added
- Added overlay on user gallery images.
- Added linux script to allow uploads from linux screenshot tools.
- Enable audio player with video.js.
- Font Awesome icon match the single file mime-type.
### Changed
- Improved image scaling in user gallery.
- Video and audio now starts with volume at 50%.
- Minor layout fixes.
### Fixed
- Fixed IT translation.
## [2.2] - 2018-11-20
### Added
- Added multi-language support.
### Fixed
- Improved routing.
- Minor improvements and bug fixes.
- Fixed HTTP/2 push is resetting the current session.
## [2.1] - 2018-11-20
### Added
- Added video.js support.
- Allow e-mail login.
- Support for ShareX deletion URL.
### Changed
- Improved theme style.
- Improved page redirecting.
### Fixed
- Fixed HTTP/2 push preload.
## [2.0] - 2018-11-13
### Added
- Added install wizard (using the CLI is no longer required).
- Added used space indicator per user.
- Allow discord bot to display the preview.
- Theme switcher on the web UI.
- MySQL support.
### Changed
- Migrated from Flight to Slim 3 framework.
- Improvements under the hood.
## [1.3] - 2018-10-14
### Added
- Added command to switch between bootswatch.com themes.
- Added popover to write the telegram message when sharing.
- Allow Facebook bots to display the preview.
### Changed
- Packaging improvements.
- Updated some dependencies.
## [1.2] - 2018-05-01
### Added
- Added auto config generator for ShareX.
- Show upload file size on the dashboard.
### Changed
- Previews are now scaled for better page load.
### Removed
- Removed HTTP2 push from the dashboard to improve loading time.
### Fixed
- Fixed insert for admin user (running `php bin\migrate --install`).
## [1.1] - 2018-04-28
### Added
- Added logging.
- Added share to Telegram.
### Changed
- Improved migrate system.
- Updated Bootstrap theme.
### Fixed
- Fixed back to top when click delete or publish/unpublish.
- Login redirect back to the requested page.
## [1.0] - 2018-04-28
### Added
- Initial version.

View file

@ -146,6 +146,7 @@ module.exports = function (grunt) {
'composer.lock',
'LICENSE',
'favicon.ico',
'CHANGELOG.md'
]
},
@ -154,7 +155,7 @@ module.exports = function (grunt) {
command: '"./vendor/bin/phpstan" --level=0 analyse app resources/lang bin install'
},
composer_no_dev: {
command: 'composer update --no-dev --prefer-dist'
command: 'composer install --no-dev --prefer-dist'
}
}

View file

@ -4,6 +4,7 @@ namespace App\Controllers;
use App\Web\Session;
use Monolog\Logger;
use Parsedown;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use RuntimeException;
@ -154,6 +155,21 @@ class UpgradeController extends Controller
return json($response, $jsonResponse);
}
/**
* @param Request $request
* @param Response $response
* @return Response
* @throws \Twig\Error\LoaderError
* @throws \Twig\Error\RuntimeError
* @throws \Twig\Error\SyntaxError
*/
public function changelog(Request $request, Response $response): Response
{
return view()->render($response, 'dashboard/changelog.twig', [
'content' => Parsedown::instance()->text(file_get_contents('CHANGELOG.md')),
]);
}
protected function getApiJson()
{
$opts = [

View file

@ -37,6 +37,7 @@ $app->group('', function (RouteCollectorProxy $group) {
$group->post('/system/upgrade', [UpgradeController::class, 'upgrade'])->setName('system.upgrade');
$group->get('/system/checkForUpdates', [UpgradeController::class, 'checkForUpdates'])->setName('system.checkForUpdates');
$group->get('/system/changelog', [UpgradeController::class, 'changelog'])->setName('system.changelog');
$group->get('/system', [AdminController::class, 'system'])->setName('system');

View file

@ -1,5 +1,6 @@
{
"name": "sergix44/xbackbone",
"license": "AGPL-3.0",
"version": "3.1.2",
"description": "A lightweight ShareX PHP backend",
"type": "project",
@ -10,6 +11,7 @@
"ext-json": "*",
"ext-pdo": "*",
"ext-zip": "*",
"erusev/parsedown": "^1.7",
"guzzlehttp/psr7": "^1.6",
"http-interop/http-factory-guzzle": "^1.0",
"intervention/image": "^2.4",

89
composer.lock generated
View file

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "6f92268190e2189e19ce34681370d6f3",
"content-hash": "38f18f0b967be3ce9096df807dea1a17",
"packages": [
{
"name": "aws/aws-sdk-php",
@ -90,6 +90,52 @@
],
"time": "2020-04-08T18:27:07+00:00"
},
{
"name": "erusev/parsedown",
"version": "1.7.4",
"source": {
"type": "git",
"url": "https://github.com/erusev/parsedown.git",
"reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/erusev/parsedown/zipball/cb17b6477dfff935958ba01325f2e8a2bfa6dab3",
"reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
"php": ">=5.3.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35"
},
"type": "library",
"autoload": {
"psr-0": {
"Parsedown": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Emanuil Rusev",
"email": "hello@erusev.com",
"homepage": "http://erusev.com"
}
],
"description": "Parser for Markdown.",
"homepage": "http://parsedown.org",
"keywords": [
"markdown",
"parser"
],
"time": "2019-12-30T22:54:17+00:00"
},
{
"name": "firebase/php-jwt",
"version": "v5.2.0",
@ -3019,34 +3065,35 @@
},
{
"name": "ocramius/package-versions",
"version": "1.4.2",
"version": "1.8.0",
"source": {
"type": "git",
"url": "https://github.com/Ocramius/PackageVersions.git",
"reference": "44af6f3a2e2e04f2af46bcb302ad9600cba41c7d"
"reference": "421679846270a5772534828013a93be709fb13df"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/44af6f3a2e2e04f2af46bcb302ad9600cba41c7d",
"reference": "44af6f3a2e2e04f2af46bcb302ad9600cba41c7d",
"url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/421679846270a5772534828013a93be709fb13df",
"reference": "421679846270a5772534828013a93be709fb13df",
"shasum": ""
},
"require": {
"composer-plugin-api": "^1.0.0",
"php": "^7.1.0"
"composer-plugin-api": "^1.1.0 || ^2.0",
"php": "^7.4.0"
},
"require-dev": {
"composer/composer": "^1.6.3",
"doctrine/coding-standard": "^5.0.1",
"ext-zip": "*",
"infection/infection": "^0.7.1",
"phpunit/phpunit": "^7.5.17"
"composer/composer": "^1.9.3 || ^2.0@dev",
"doctrine/coding-standard": "^7.0.2",
"ext-zip": "^1.15.0",
"infection/infection": "^0.15.3",
"phpunit/phpunit": "^9.0.1",
"vimeo/psalm": "^3.9.3"
},
"type": "composer-plugin",
"extra": {
"class": "PackageVersions\\Installer",
"branch-alias": {
"dev-master": "2.0.x-dev"
"dev-master": "1.99.x-dev"
}
},
"autoload": {
@ -3065,7 +3112,7 @@
}
],
"description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
"time": "2019-11-15T16:17:10+00:00"
"time": "2020-04-06T17:43:35+00:00"
},
{
"name": "phpstan/phpdoc-parser",
@ -3374,20 +3421,20 @@
},
{
"name": "symfony/service-contracts",
"version": "v1.1.8",
"version": "v2.0.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
"reference": "ffc7f5692092df31515df2a5ecf3b7302b3ddacf"
"reference": "144c5e51266b281231e947b51223ba14acf1a749"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/ffc7f5692092df31515df2a5ecf3b7302b3ddacf",
"reference": "ffc7f5692092df31515df2a5ecf3b7302b3ddacf",
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/144c5e51266b281231e947b51223ba14acf1a749",
"reference": "144c5e51266b281231e947b51223ba14acf1a749",
"shasum": ""
},
"require": {
"php": "^7.1.3",
"php": "^7.2.5",
"psr/container": "^1.0"
},
"suggest": {
@ -3396,7 +3443,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.1-dev"
"dev-master": "2.0-dev"
}
},
"autoload": {
@ -3428,7 +3475,7 @@
"interoperability",
"standards"
],
"time": "2019-10-14T12:27:06+00:00"
"time": "2019-11-18T17:27:11+00:00"
}
],
"aliases": [],

View file

@ -28,6 +28,10 @@ location /logs {
return 403;
}
location CHANGELOG.MD {
return 403;
}
index index.html index.htm index.php;
charset utf-8;

View file

@ -156,4 +156,6 @@ return [
'no_tags' => 'No tags added',
'auto_tagging' => 'Auto upload tagging',
'zip_ext_not_loaded' => 'The required "zip" extension is not loaded',
'changelog' => 'Changelog',
'show_changelog' => 'Show changelog',
];

View file

@ -1,4 +1,5 @@
<?php
return [
'lang' => 'Italian',
'yes' => 'Sì',
@ -158,4 +159,6 @@ return [
'mail.recover_text' => 'Ciao %s,<br>è stata richiesta una reimpostazione della password per il tuo account. Per completare la procedura clicca sul seguente link:<br><br><a href="%s">%s</a><br><br>Se non sei stato tu a richiedere la reimpostazione della password, ignora semplicemente questa e-mail.',
'mail.activate_text' => 'Ciao %s!<br>grazie per aver creato il tuo account su %s (<a href="%s">%s</a>), fai clic sul seguente link per attivarlo:<br><br><a href="%s">%s</a>',
'zip_ext_not_loaded' => 'L\'estensione "zip" richiesta non è caricata',
'changelog' => 'Changelog',
'show_changelog' => 'Mostra changelog'
];

View file

@ -0,0 +1,17 @@
{% extends 'base.twig' %}
{% block title %}{{ lang('changelog') }}{% endblock %}
{% block content %}
{% include 'comp/navbar.twig' %}
<div class="container">
<div class="card shadow-sm mt-3">
<div class="card-header">{{ lang('changelog') }}</div>
<div class="card-body">
{{ content | raw }}
</div>
</div>
</div>
{% endblock %}

View file

@ -162,6 +162,9 @@
</div>
</div>
</div>
<div class="card-footer text-center">
<a href="{{ route('system.changelog') }}">{{ lang('show_changelog') }}</a>
</div>
</div>
</div>
<div class="col-md-4 mt-3">