1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/wallabag2_ynh.git synced 2024-10-01 13:35:06 +02:00
This commit is contained in:
YunoHost Bot 2024-09-30 22:43:07 +02:00 committed by GitHub
commit 22d3ed9095
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
18 changed files with 157 additions and 99 deletions

View file

@ -22,7 +22,7 @@ It provides a web interface, browser (Firefox/Chrome/Opera) add-ons, mobile apps
Upgrade from the YunoHost [Wallabag v1](https://github.com/YunoHost-Apps/wallabag_ynh) app requires a manual operation. That's why it's provided as a new package. For the migration process, please refer to the [Wallabag official documentation](https://doc.wallabag.org/en/user/import/wallabagv1.html).
**Shipped version:** 2.5.4~ynh7
**Shipped version:** 2.6.9~ynh1
**Demo:** <https://demo.yunohost.org/wallabag/>

View file

@ -22,7 +22,7 @@ It provides a web interface, browser (Firefox/Chrome/Opera) add-ons, mobile apps
Upgrade from the YunoHost [Wallabag v1](https://github.com/YunoHost-Apps/wallabag_ynh) app requires a manual operation. That's why it's provided as a new package. For the migration process, please refer to the [Wallabag official documentation](https://doc.wallabag.org/en/user/import/wallabagv1.html).
**Versión actual:** 2.5.4~ynh7
**Versión actual:** 2.6.9~ynh1
**Demo:** <https://demo.yunohost.org/wallabag/>

View file

@ -22,7 +22,7 @@ It provides a web interface, browser (Firefox/Chrome/Opera) add-ons, mobile apps
Upgrade from the YunoHost [Wallabag v1](https://github.com/YunoHost-Apps/wallabag_ynh) app requires a manual operation. That's why it's provided as a new package. For the migration process, please refer to the [Wallabag official documentation](https://doc.wallabag.org/en/user/import/wallabagv1.html).
**Paketatutako bertsioa:** 2.5.4~ynh7
**Paketatutako bertsioa:** 2.6.9~ynh1
**Demoa:** <https://demo.yunohost.org/wallabag/>

View file

@ -22,7 +22,7 @@ Sont disponibles une interface web, des add-ons pour navigateurs (Firefox/Chrome
La mise à niveau depuis le paquet YunoHost de [Wallabag v1](https://github.com/YunoHost-Apps/wallabag_ynh) demande une opération manuelle, c'est pourquoi un nouveau paquet est fournit. Pour le processus de migration, merci de vous référer à [la documentation officiel de Wallabag](https://doc.wallabag.org/fr/user/import/wallabagv1.html).
**Version incluse:** 2.5.4~ynh7
**Version incluse:** 2.6.9~ynh1
**Démo:** <https://demo.yunohost.org/wallabag/>

View file

@ -22,7 +22,7 @@ It provides a web interface, browser (Firefox/Chrome/Opera) add-ons, mobile apps
Upgrade from the YunoHost [Wallabag v1](https://github.com/YunoHost-Apps/wallabag_ynh) app requires a manual operation. That's why it's provided as a new package. For the migration process, please refer to the [Wallabag official documentation](https://doc.wallabag.org/en/user/import/wallabagv1.html).
**Versión proporcionada:** 2.5.4~ynh7
**Versión proporcionada:** 2.6.9~ynh1
**Demo:** <https://demo.yunohost.org/wallabag/>

View file

@ -22,7 +22,7 @@ It provides a web interface, browser (Firefox/Chrome/Opera) add-ons, mobile apps
Upgrade from the YunoHost [Wallabag v1](https://github.com/YunoHost-Apps/wallabag_ynh) app requires a manual operation. That's why it's provided as a new package. For the migration process, please refer to the [Wallabag official documentation](https://doc.wallabag.org/en/user/import/wallabagv1.html).
**Versi terkirim:** 2.5.4~ynh7
**Versi terkirim:** 2.6.9~ynh1
**Demo:** <https://demo.yunohost.org/wallabag/>

View file

@ -22,7 +22,7 @@ It provides a web interface, browser (Firefox/Chrome/Opera) add-ons, mobile apps
Upgrade from the YunoHost [Wallabag v1](https://github.com/YunoHost-Apps/wallabag_ynh) app requires a manual operation. That's why it's provided as a new package. For the migration process, please refer to the [Wallabag official documentation](https://doc.wallabag.org/en/user/import/wallabagv1.html).
**Geleverde versie:** 2.5.4~ynh7
**Geleverde versie:** 2.6.9~ynh1
**Demo:** <https://demo.yunohost.org/wallabag/>

View file

@ -22,7 +22,7 @@ It provides a web interface, browser (Firefox/Chrome/Opera) add-ons, mobile apps
Upgrade from the YunoHost [Wallabag v1](https://github.com/YunoHost-Apps/wallabag_ynh) app requires a manual operation. That's why it's provided as a new package. For the migration process, please refer to the [Wallabag official documentation](https://doc.wallabag.org/en/user/import/wallabagv1.html).
**Поставляемая версия:** 2.5.4~ynh7
**Поставляемая версия:** 2.6.9~ynh1
**Демо-версия:** <https://demo.yunohost.org/wallabag/>

View file

@ -22,7 +22,7 @@ It provides a web interface, browser (Firefox/Chrome/Opera) add-ons, mobile apps
Upgrade from the YunoHost [Wallabag v1](https://github.com/YunoHost-Apps/wallabag_ynh) app requires a manual operation. That's why it's provided as a new package. For the migration process, please refer to the [Wallabag official documentation](https://doc.wallabag.org/en/user/import/wallabagv1.html).
**分发版本:** 2.5.4~ynh7
**分发版本:** 2.6.9~ynh1
**演示:** <https://demo.yunohost.org/wallabag/>

View file

@ -0,0 +1,12 @@
# Drop old foreign keys
ALTER TABLE `oauth2_access_tokens` DROP FOREIGN KEY IF EXISTS FK_D247A21BA76ED395;
ALTER TABLE `oauth2_access_tokens` DROP FOREIGN KEY IF EXISTS FK_D247A21B19EB6921;
ALTER TABLE `oauth2_auth_codes` DROP FOREIGN KEY IF EXISTS FK_A018A10DA76ED395;
ALTER TABLE `oauth2_clients` DROP FOREIGN KEY IF EXISTS FK_F9D02AE6A76ED395;
ALTER TABLE `oauth2_refresh_tokens` DROP FOREIGN KEY IF EXISTS FK_D394478CA76ED395;
ALTER TABLE `config` DROP FOREIGN KEY IF EXISTS FK_D48A2F7CA76ED395;
ALTER TABLE `entry` DROP FOREIGN KEY IF EXISTS FK_2B219D70A76ED395;
ALTER TABLE `oauth2_auth_codes` DROP FOREIGN KEY IF EXISTS FK_A018A10D19EB6921;
ALTER TABLE `oauth2_refresh_tokens` DROP FOREIGN KEY IF EXISTS FK_D394478C19EB6921;
ALTER TABLE `tagging_rule` DROP FOREIGN KEY IF EXISTS FK_1AF95E7824DB0683;

View file

@ -1,74 +1,38 @@
# This file is a "template" of what your parameters.yml file should look like
# This file is auto-generated during the composer install
parameters:
# Uncomment these settings or manually update your parameters.yml
# to use docker-compose
#
# database_driver: %env.database_driver%
# database_host: %env.database_host%
# database_port: %env.database_port%
# database_name: %env.database_name%
# database_user: %env.database_user%
# database_password: %env.database_password%
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: ~
database_name: __DB_NAME__
database_user: __DB_USER__
database_password: __DB_PWD__
# For SQLite, database_path should be "%kernel.project_dir%/data/db/wallabag.sqlite"
database_path: null
database_table_prefix: null
database_socket: null
# with PostgreSQL and SQLite, you must set "utf8"
database_charset: utf8mb4
domain_name: https://__DOMAIN____PATH__
server_name: "Your wallabag instance"
mailer_transport: smtp
mailer_user: ~
mailer_password: ~
mailer_host: 127.0.0.1
mailer_port: false
mailer_encryption: ~
mailer_auth_mode: ~
domain_name: 'https://__DOMAIN____PATH__'
server_name: 'Your wallabag instance'
mailer_dsn: smtp://__APP__:__MAIL_PWD__@__DOMAIN__:25
locale: en
# A secret key that's used to generate certain security-related tokens
secret: __DESKEY__
# two factor stuff
twofactor_auth: true
twofactor_sender: no-reply@wallabag.org
# fosuser stuff
fosuser_registration: false
fosuser_confirmation: true
# how long the access token should live in seconds for the API
fos_oauth_server_access_token_lifetime: 3600
# how long the refresh token should life in seconds for the API
fos_oauth_server_refresh_token_lifetime: 1209600
from_email: no-reply@wallabag.org
rss_limit: 50
# RabbitMQ processing
rabbitmq_host: localhost
rabbitmq_port: 5672
rabbitmq_user: guest
rabbitmq_password: guest
rabbitmq_prefetch_count: 10
# Redis processing
redis_scheme: tcp
redis_host: localhost
redis_port: 6379
redis_path: null
redis_password: null
# sentry logging
sentry_dsn: ~

View file

@ -6,7 +6,8 @@ id = "wallabag2"
name = "Wallabag"
description.en = "Save and classify articles. Read them later"
description.fr = "Enregistrez et classez les articles. Lisez-les plus tard"
version = "2.5.4~ynh7"
version = "2.6.9~ynh1"
maintainers = ["lapineige"]
@ -47,13 +48,14 @@ ram.runtime = "50M"
[resources]
[resources.sources.main]
url = "https://github.com/wallabag/wallabag/releases/download/2.5.4/wallabag-2.5.4.tar.gz"
sha256 = "c953105e3181f18bf592541a1c46c318c6663ad00d4687052676b02a7d74c618"
url = "https://github.com/wallabag/wallabag/releases/download/2.6.9/wallabag-2.6.9.tar.gz"
sha256 = "578b39ff2f5f140999f969d4c54d37532462bc48a10f565429038eab84cb10ac"
autoupdate.strategy = "latest_github_release"
autoupdate.asset = ".*\\.tar\\.gz"
[resources.system_user]
allow_email = true
[resources.install_dir]
group = "www-data:r-x"

View file

@ -4,6 +4,8 @@
# COMMON VARIABLES AND CUSTOM HELPERS
#=================================================
YNH_COMPOSER_VERSION="2.7.7"
# Define a function to execute commands with `php_exec`
php_exec() {
(cd "$install_dir" && ynh_exec_as_app \

View file

@ -29,6 +29,18 @@ if [ -e "$install_dir/var/cache/prod/appProdProjectContainer.php" ]; then
chmod 700 "$install_dir/var/cache/prod/appProdProjectContainer.php"
fi
#=================================================
# INSTALL SYMFONY LDAP
#=================================================
ynh_script_progression --message="Installing dependencies for LDAP..." --weight=1
# Some trick to actually not run composer install…
ynh_install_composer --install_args="--dry-run"
ynh_composer_exec --commands="require symfony/ldap"
# SYMFONY_ENV=prod ynh_composer_exec --commands="install --no-dev"
chown -R "$app:www-data" "$install_dir"
#=================================================
# APP INITIAL CONFIGURATION
#=================================================

View file

@ -3,6 +3,19 @@
source _common.sh
source /usr/share/yunohost/helpers
#=================================================
# ENSURE DOWNWARD COMPATIBILITY
#=================================================
ynh_script_progression --message="Ensuring downward compatibility..." --weight=1
if ynh_compare_current_package_version --comparison lt --version "2.4~ynh1"; then
# Migrate old (erroneous) database scheme (see: https://github.com/YunoHost-Apps/wallabag2_ynh/pull/125#issuecomment-1041426972)
ynh_script_progression --message="Migrating old (pre-2018) database scheme..." --weight=11
ynh_exec_warn_less ynh_mysql_execute_file_as_root --database="$db_name" --file="../conf/foreign-keys-removal.sql"
ynh_script_progression --message="Database migration done. Resuming normal upgrade process" --weight=11
fi
#=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE
#=================================================
@ -20,11 +33,28 @@ if [ -e "$install_dir/var/cache/prod/appProdProjectContainer.php" ]; then
chmod 700 "$install_dir/var/cache/prod/appProdProjectContainer.php"
fi
#=================================================
# INSTALL SYMFONY LDAP
#=================================================
ynh_script_progression --message="Installing dependencies for LDAP..." --weight=1
# Some trick to actually not run composer install…
ynh_install_composer --install_args="--dry-run"
ynh_composer_exec --commands="require symfony/ldap"
# SYMFONY_ENV=prod ynh_composer_exec --commands="install --no-dev"
chown -R "$app:www-data" "$install_dir"
#=================================================
# UPDATE A CONFIG FILE
#=================================================
ynh_script_progression "Reconfiguring $app..."
ynh_add_config --template="parameters.yml" --destination="$install_dir/app/config/parameters.yml"
chmod 600 "$install_dir/app/config/parameters.yml"
chown "$app:$app" "$install_dir/app/config/parameters.yml"
# Upgrade database and clear the cache
php_exec doctrine:migrations:migrate
php_exec cache:clear

View file

@ -1,5 +1,15 @@
From 488b781e030637ab6feafc0da640217e1d654ead Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= <felix@piedallu.me>
Date: Tue, 11 Jun 2024 11:50:36 +0200
Subject: [PATCH 1/3] Add ldap auth
---
app/config/security.yml | 12 ++++++++++++
app/config/services.yml | 7 +++++++
2 files changed, 19 insertions(+)
diff --git a/app/config/security.yml b/app/config/security.yml
index 02afc9ea..5a3f7a34 100644
index 9ab51621..f4ea3d47 100644
--- a/app/config/security.yml
+++ b/app/config/security.yml
@@ -13,6 +13,14 @@ security:
@ -8,39 +18,41 @@ index 02afc9ea..5a3f7a34 100644
id: fos_user.user_provider.username_email
+ yunohost_users:
+ ldap:
+ service: yunohost.ldap
+ service: Symfony\Component\Ldap\Ldap
+ base_dn: ou=users,dc=yunohost,dc=org
+ search_dn:
+ search_password:
+ filter: (&(uid={username})(objectClass=posixAccount))
+ default_roles: ROLE_USER
# the main part of the security, where you can set up firewalls
# for specific sections of your app
@@ -38,6 +46,9 @@ security:
@@ -39,6 +47,10 @@ security:
secured_area:
pattern: ^/
+ http_basic_ldap:
+ service: yunohost.ldap
+ provider: yunohost_users
+ service: Symfony\Component\Ldap\Ldap
+ dn_string: "uid={username},ou=users,dc=yunohost,dc=org"
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
diff --git a/app/config/services.yml b/app/config/services.yml
index 7b85d846..f23961c5 100644
index 270e79d9..c67341e8 100644
--- a/app/config/services.yml
+++ b/app/config/services.yml
@@ -43,6 +43,10 @@ services:
tags:
- { name: kernel.event_listener, event: security.interactive_login, method: onInteractiveLogin }
+ yunohost.ldap:
+ class: Symfony\Component\Ldap\LdapClient
+ arguments: ["localhost"]
+
craue_config_cache_provider:
class: Symfony\Component\Cache\Adapter\FilesystemAdapter
@@ -394,3 +394,10 @@ services:
public: false
--
2.17.1
tags:
- { name: pagerfanta.view, alias: default_wallabag }
+
+ Symfony\Component\Ldap\Ldap:
+ arguments: ['@Symfony\Component\Ldap\Adapter\ExtLdap\Adapter']
+ tags: [ldap]
+ Symfony\Component\Ldap\Adapter\ExtLdap\Adapter:
+ arguments:
+ - host: localhost
--
2.45.1

View file

@ -1,31 +1,40 @@
From 711f4a49fa7d4c471cd905870fecaa6f83156d46 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= <felix@piedallu.me>
Date: Tue, 11 Jun 2024 11:52:33 +0200
Subject: [PATCH 2/3] Configure a custom logout success handler for yunohost
ldap
---
app/config/security.yml | 2 +-
app/config/services.yml | 3 +++
.../Security/LogoutSuccessHandler.php | 27 +++++++++++++++++++
3 files changed, 31 insertions(+), 1 deletion(-)
create mode 100644 src/Wallabag/YunoHostBundle/Security/LogoutSuccessHandler.php
diff --git a/app/config/security.yml b/app/config/security.yml
index 5a3f7a34..1720e741 100644
index f4ea3d47..de6b705b 100644
--- a/app/config/security.yml
+++ b/app/config/security.yml
@@ -62,7 +62,7 @@ security:
@@ -64,7 +64,7 @@ security:
logout:
path: /logout
- target: /
+ success_handler: yunohost.logout_success_handler
access_control:
- { path: ^/api/doc, roles: IS_AUTHENTICATED_ANONYMOUSLY }
two_factor:
provider: fos_userbundle
diff --git a/app/config/services.yml b/app/config/services.yml
index f23961c5..f266e6d1 100644
index c67341e8..7057ca42 100644
--- a/app/config/services.yml
+++ b/app/config/services.yml
@@ -43,6 +43,10 @@ services:
tags:
- { name: kernel.event_listener, event: security.interactive_login, method: onInteractiveLogin }
@@ -401,3 +401,6 @@ services:
Symfony\Component\Ldap\Adapter\ExtLdap\Adapter:
arguments:
- host: localhost
+
+ yunohost.logout_success_handler:
+ class: Wallabag\YunoHostBundle\Security\LogoutSuccessHandler
+
+
yunohost.ldap:
class: Symfony\Component\Ldap\LdapClient
arguments: ["localhost"]
diff --git a/src/Wallabag/YunoHostBundle/Security/LogoutSuccessHandler.php b/src/Wallabag/YunoHostBundle/Security/LogoutSuccessHandler.php
new file mode 100644
index 00000000..b3268243
@ -59,5 +68,6 @@ index 00000000..b3268243
+ return new RedirectResponse($url);
+ }
+}
--
2.17.1
--
2.45.1

View file

@ -1,11 +1,25 @@
--- a/vendor/friendsofsymfony/oauth-server-bundle/Storage/OAuthStorage.php 2016-02-22 13:57:55.000000000 +0000
+++ b/vendor/friendsofsymfony/oauth-server-bundle/Storage/OAuthStorage.php 2017-04-13 17:16:06.298501506 +0000
@@ -170,7 +170,7 @@
if (null !== $user) {
$encoder = $this->encoderFactory->getEncoder($user);
From 85c26ff4df2191bf3494491f27e2922aa6b569c8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= <felix@piedallu.me>
Date: Tue, 11 Jun 2024 11:54:25 +0200
Subject: [PATCH 3/3] OAuthStorage workaround
---
.../oauth-server-bundle/Storage/OAuthStorage.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/vendor/friendsofsymfony/oauth-server-bundle/Storage/OAuthStorage.php b/vendor/friendsofsymfony/oauth-server-bundle/Storage/OAuthStorage.php
index 5ab6b7c9..7cb77913 100644
--- a/vendor/friendsofsymfony/oauth-server-bundle/Storage/OAuthStorage.php
+++ b/vendor/friendsofsymfony/oauth-server-bundle/Storage/OAuthStorage.php
@@ -158,7 +158,7 @@ class OAuthStorage implements IOAuth2RefreshTokens, IOAuth2GrantUser, IOAuth2Gra
}
$encoder = $this->encoderFactory->getEncoder($user);
- if ($encoder->isPasswordValid($user->getPassword(), $password, $user->getSalt())) {
+ if (true) {
return [
'data' => $user,
];
--
2.45.1
- if ($encoder->isPasswordValid($user->getPassword(), $password, $user->getSalt())) {
+ if (true) {
return array(
'data' => $user,
);