Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade to v2.6.9 - TODO: Fix LDAP #203

Closed
wants to merge 6 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,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~ynh11
**Shipped version:** 2.6.9~ynh1

**Demo:** <https://demo.yunohost.org/wallabag/>

Expand Down
2 changes: 1 addition & 1 deletion README_es.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,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~ynh11
**Versión actual:** 2.6.9~ynh1

**Demo:** <https://demo.yunohost.org/wallabag/>

Expand Down
2 changes: 1 addition & 1 deletion README_eu.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,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~ynh11
**Paketatutako bertsioa:** 2.6.9~ynh1

**Demoa:** <https://demo.yunohost.org/wallabag/>

Expand Down
2 changes: 1 addition & 1 deletion README_fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,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~ynh11
**Version incluse :** 2.6.9~ynh1

**Démo :** <https://demo.yunohost.org/wallabag/>

Expand Down
2 changes: 1 addition & 1 deletion README_gl.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,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~ynh11
**Versión proporcionada:** 2.6.9~ynh1

**Demo:** <https://demo.yunohost.org/wallabag/>

Expand Down
2 changes: 1 addition & 1 deletion README_id.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,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~ynh11
**Versi terkirim:** 2.6.9~ynh1

**Demo:** <https://demo.yunohost.org/wallabag/>

Expand Down
2 changes: 1 addition & 1 deletion README_nl.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,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~ynh11
**Geleverde versie:** 2.6.9~ynh1

**Demo:** <https://demo.yunohost.org/wallabag/>

Expand Down
2 changes: 1 addition & 1 deletion README_pl.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,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).


**Dostarczona wersja:** 2.5.4~ynh11
**Dostarczona wersja:** 2.6.9~ynh1

**Demo:** <https://demo.yunohost.org/wallabag/>

Expand Down
2 changes: 1 addition & 1 deletion README_ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,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~ynh11
**Поставляемая версия:** 2.6.9~ynh1

**Демо-версия:** <https://demo.yunohost.org/wallabag/>

Expand Down
2 changes: 1 addition & 1 deletion README_zh_Hans.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,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~ynh11
**分发版本:** 2.6.9~ynh1

**演示:** <https://demo.yunohost.org/wallabag/>

Expand Down
12 changes: 12 additions & 0 deletions conf/foreign-keys-removal.sql
Original file line number Diff line number Diff line change
@@ -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;
8 changes: 1 addition & 7 deletions conf/parameters.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,7 @@ parameters:
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: ~
mailer_dsn: smtp://127.0.0.1

locale: en

Expand Down
7 changes: 4 additions & 3 deletions manifest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ 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~ynh11"
version = "2.6.9~ynh1"

maintainers = ["lapineige"]

Expand Down Expand Up @@ -50,13 +50,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"
Expand Down
48 changes: 30 additions & 18 deletions patches/main/00-ldap-auth.patch
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
From 488b781e030637ab6feafc0da640217e1d654ead Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= <[email protected]>
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:
Expand All @@ -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:
@@ -394,3 +394,10 @@ services:
public: false
tags:
- { name: kernel.event_listener, event: security.interactive_login, method: onInteractiveLogin }

+ yunohost.ldap:
+ class: Symfony\Component\Ldap\LdapClient
+ arguments: ["localhost"]
- { name: pagerfanta.view, alias: default_wallabag }
+
craue_config_cache_provider:
class: Symfony\Component\Cache\Adapter\FilesystemAdapter
public: false
--
2.17.1
+ 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

46 changes: 28 additions & 18 deletions patches/main/01-logout-success-handler.patch
Original file line number Diff line number Diff line change
@@ -1,31 +1,40 @@
From 711f4a49fa7d4c471cd905870fecaa6f83156d46 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= <[email protected]>
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
Expand Down Expand Up @@ -59,5 +68,6 @@ index 00000000..b3268243
+ return new RedirectResponse($url);
+ }
+}
--
2.17.1
--
2.45.1

34 changes: 24 additions & 10 deletions patches/main/02-oauth-workaround.patch
Original file line number Diff line number Diff line change
@@ -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?= <[email protected]>
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,
);
2 changes: 2 additions & 0 deletions scripts/_common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
# COMMON VARIABLES AND CUSTOM HELPERS
#=================================================

composer_version="2.7.7"

# Define a function to execute commands with `php_exec`
php_exec() {
(cd "$install_dir" && ynh_exec_as_app \
Expand Down
9 changes: 9 additions & 0 deletions scripts/install
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,15 @@ 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

ynh_composer_install
ynh_composer_exec require symfony/ldap
# SYMFONY_ENV=prod ynh_composer_exec install --no-dev

#=================================================
# APP INITIAL CONFIGURATION
#=================================================
Expand Down
27 changes: 27 additions & 0 deletions scripts/upgrade
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,19 @@
source _common.sh
source /usr/share/yunohost/helpers

#=================================================
# ENSURE DOWNWARD COMPATIBILITY
#=================================================
ynh_script_progression "Ensuring downward compatibility..."

if ynh_app_upgrading_from_version_before "2.4~ynh1"; then
# Migrate old (erroneous) database scheme (see: https://github.com/YunoHost-Apps/wallabag2_ynh/pull/125#issuecomment-1041426972)
ynh_print_info "Migrating old (pre-2018) database scheme..."

ynh_hide_warnings ynh_mysql_execute_file_as_root --database="$db_name" --file="../conf/foreign-keys-removal.sql"
ynh_print_info "Database migration done. Resuming normal upgrade process"
fi

#=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE
#=================================================
Expand All @@ -22,11 +35,25 @@ 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

ynh_composer_install
ynh_composer_exec require symfony/ldap
# SYMFONY_ENV=prod ynh_composer_exec install --no-dev

#=================================================
# UPDATE A CONFIG FILE
#=================================================
ynh_script_progression "Reconfiguring $app..."

ynh_config_add --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
Expand Down