From 0c9789f3535ef3a53308b0c86f8a8eaf519ae5e2 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Wed, 25 May 2022 02:15:30 +0200 Subject: [PATCH 1/3] First ldap implmentation --- conf/.env | 14 ++++++++++ scripts/_common.sh | 2 +- sources/patches/app-auth.patch | 45 ++++++++++++++++++++++++++++++ sources/patches/app-composer.patch | 11 ++++++++ sources/patches/app-user.patch | 18 ++++++++++++ 5 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 sources/patches/app-auth.patch create mode 100644 sources/patches/app-composer.patch create mode 100644 sources/patches/app-user.patch diff --git a/conf/.env b/conf/.env index 96261964..1ad2a444 100644 --- a/conf/.env +++ b/conf/.env @@ -144,3 +144,17 @@ TRUST_PROXIES="*" ## Passport #PASSPORT_PRIVATE_KEY= #PASSPORT_PUBLIC_KEY= + +## LDAP +LDAP_LOGGING=true +LDAP_CONNECTION=default +LDAP_CONNECTIONS=default + +LDAP_DEFAULT_HOSTS=127.0.0.1 +LDAP_DEFAULT_USERNAME=null +LDAP_DEFAULT_PASSWORD=null +LDAP_DEFAULT_PORT=389 +LDAP_DEFAULT_BASE_DN="ou=users,dc=yunohost,dc=org" +LDAP_DEFAULT_TIMEOUT=5 +LDAP_DEFAULT_SSL=false +LDAP_DEFAULT_TLS=false diff --git a/scripts/_common.sh b/scripts/_common.sh index 48d67afe..ae97f0a2 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -10,7 +10,7 @@ YNH_COMPOSER_VERSION="2.1.5" pkg_dependencies="postgresql libgd3 jpegoptim optipng pngquant ffmpeg imagemagick supervisor" -extra_php_dependencies="php${YNH_PHP_VERSION}-bcmath php${YNH_PHP_VERSION}-cli php${YNH_PHP_VERSION}-ctype php${YNH_PHP_VERSION}-curl php${YNH_PHP_VERSION}-exif php${YNH_PHP_VERSION}-gd php${YNH_PHP_VERSION}-iconv php${YNH_PHP_VERSION}-intl php${YNH_PHP_VERSION}-json php${YNH_PHP_VERSION}-mbstring php${YNH_PHP_VERSION}-redis php${YNH_PHP_VERSION}-tokenizer php${YNH_PHP_VERSION}-xml php${YNH_PHP_VERSION}-zip php${YNH_PHP_VERSION}-pdo php${YNH_PHP_VERSION}-pgsql php${YNH_PHP_VERSION}-fileinfo php${YNH_PHP_VERSION}-imagick" +extra_php_dependencies="php${YNH_PHP_VERSION}-bcmath php${YNH_PHP_VERSION}-cli php${YNH_PHP_VERSION}-ctype php${YNH_PHP_VERSION}-curl php${YNH_PHP_VERSION}-exif php${YNH_PHP_VERSION}-gd php${YNH_PHP_VERSION}-iconv php${YNH_PHP_VERSION}-intl php${YNH_PHP_VERSION}-json php${YNH_PHP_VERSION}-mbstring php${YNH_PHP_VERSION}-redis php${YNH_PHP_VERSION}-tokenizer php${YNH_PHP_VERSION}-xml php${YNH_PHP_VERSION}-zip php${YNH_PHP_VERSION}-pdo php${YNH_PHP_VERSION}-pgsql php${YNH_PHP_VERSION}-fileinfo php${YNH_PHP_VERSION}-imagick php${YNH_PHP_VERSION}-ldap" #================================================= # PERSONAL HELPERS diff --git a/sources/patches/app-auth.patch b/sources/patches/app-auth.patch new file mode 100644 index 00000000..a29356b1 --- /dev/null +++ b/sources/patches/app-auth.patch @@ -0,0 +1,45 @@ +--- a/config/auth.php ++++ b/config/auth.php +@@ -67,25 +67,25 @@ + 'providers' => [ + + // Comment out or remove below for LDAP +- 'users' => [ +- 'driver' => 'eloquent', +- 'model' => App\User::class, +- ], +- +- // Uncomment below for LDAP + // 'users' => [ +- // 'driver' => 'ldap', +- // 'model' => LdapRecord\Models\ActiveDirectory\User::class, +- // 'rules' => [], +- // 'database' => [ +- // 'model' => App\User::class, +- // 'sync_passwords' => false, +- // 'sync_attributes' => [ +- // 'name' => 'cn', +- // 'email' => 'mail', +- // ], +- // ], ++ // 'driver' => 'eloquent', ++ // 'model' => App\User::class, + // ], ++ ++ // Uncomment below for LDAP ++ 'users' => [ ++ 'driver' => 'ldap', ++ 'model' => LdapRecord\Models\ActiveDirectory\User::class, ++ 'rules' => [], ++ 'database' => [ ++ 'model' => App\User::class, ++ 'sync_passwords' => false, ++ 'sync_attributes' => [ ++ 'name' => 'uid', ++ 'email' => 'mail', ++ ], ++ ], ++ ], + ], + + /* diff --git a/sources/patches/app-composer.patch b/sources/patches/app-composer.patch new file mode 100644 index 00000000..831bd329 --- /dev/null +++ b/sources/patches/app-composer.patch @@ -0,0 +1,11 @@ +--- a/composer.json ++++ b/composer.json +@@ -9,6 +9,8 @@ + "ext-bcmath": "*", + "ext-ctype": "*", + "ext-curl": "*", ++ "ext-ldap": "*", ++ "directorytree/ldaprecord-laravel": "*", + "ext-intl": "*", + "ext-json": "*", + "ext-mbstring": "*", diff --git a/sources/patches/app-user.patch b/sources/patches/app-user.patch new file mode 100644 index 00000000..0b265d98 --- /dev/null +++ b/sources/patches/app-user.patch @@ -0,0 +1,18 @@ +--- a/app/User.php ++++ b/app/User.php +@@ -7,10 +7,13 @@ + use Illuminate\Database\Eloquent\SoftDeletes; + use Illuminate\Foundation\Auth\User as Authenticatable; + use App\Util\RateLimit\User as UserRateLimit; ++use Illuminate\Database\Eloquent\Factories\HasFactory; ++use LdapRecord\Laravel\Auth\LdapAuthenticatable; ++use LdapRecord\Laravel\Auth\AuthenticatesWithLdap; + +-class User extends Authenticatable ++class User extends Authenticatable implements LdapAuthenticatable + { +- use Notifiable, SoftDeletes, HasApiTokens, UserRateLimit; ++ use Notifiable, SoftDeletes, HasApiTokens, UserRateLimit, HasFactory, AuthenticatesWithLdap; + + /** + * The attributes that should be mutated to dates. From 054df38468262190219ba67a70b70eaa5e5d0f2d Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Thu, 11 Aug 2022 13:28:54 +0000 Subject: [PATCH 2/3] Auto-update README --- README.md | 1 + README_fr.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e6a4d08a..7af7358e 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ It is also possible to import your data from Instagram. **Shipped version:** 0.11.3~ynh1 + ## Screenshots ![Screenshot of Pixelfed](./doc/screenshots/screenshots.jpg) diff --git a/README_fr.md b/README_fr.md index 86d8e017..a1484f0c 100644 --- a/README_fr.md +++ b/README_fr.md @@ -25,7 +25,8 @@ En plus de reprendre les fonctionnalités d'Instagram, le fonctionnement de Pixe Il est également possible d'importer ses données depuis Instagram. -**Version incluse :** 0.11.3~ynh1 +**Version incluse :** 0.11.3~ynh1 + ## Captures d'écran From ff49cad046293659e69a84c4cf6d2afd1a135a90 Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Thu, 18 Aug 2022 18:08:52 +0000 Subject: [PATCH 3/3] Auto-update README --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index eec29095..22a565ba 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,6 @@ It is also possible to import your data from Instagram. **Shipped version:** 0.11.3~ynh2 - ## Screenshots ![Screenshot of Pixelfed](./doc/screenshots/screenshots.jpg)