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

Crash after activating plugin immediately #29

Open
abdennour opened this issue Jul 31, 2021 · 0 comments
Open

Crash after activating plugin immediately #29

abdennour opened this issue Jul 31, 2021 · 0 comments

Comments

@abdennour
Copy link

i am getting this error

Fatal error: Uncaught TypeError: array_merge(): Argument #2 must be of type array, bool given in 
/var/www/html/user/plugins/yourls-ldap-plugin/plugin.php:286 Stack trace: #0 /var/www/html/user/plugins/yourls-ldap-plugin/plugin.php(286):  array_merge(Array, false)
 #1 /var/www/html/includes/functions-plugins.php(232): ldapauth_merge_users(Array) 
#2 /var/www/html/includes/functions-plugins.php(282): yourls_apply_filter('plugins_loaded', Array, true)
 #3 /var/www/html/includes/Config/Init.php(108): yourls_do_action('plugins_loaded') 
#4 /var/www/html/includes/load-yourls.php(26): YOURLS\Config\Init->__construct(Object(YOURLS\Config\InitDefaults)) 
#5 /var/www/html/admin/index.php(3): require_once('/var/www/html/i...') 
#6 {main} thrown in /var/www/html/user/plugins/yourls-ldap-plugin/plugin.php on line 286

note that user/config.php has been organized to accept values from env vars:

/* configuration for 'yourls-ldap-plugin' */

/**
 * LDAP host name, IP or URL. You can use ldaps://host for LDAP with TLS
 */
define( 'LDAPAUTH_HOST', getenv('LDAPAUTH_HOST') ?: 'ldaps://ldap.example.com' );
/**
 * LDAP server port - often 389 or 636 for TLS (LDAPS)
 */
define( 'LDAPAUTH_PORT', getenv('LDAPAUTH_PORT') ?: '636' );
/**
 * Base DN (location of users)
 */
define( 'LDAPAUTH_BASE', getenv('LDAPAUTH_BASE') ?: 'dc=example,dc=com' );
/**
 * (optional) LDAP field name in which username is store
 */
define( 'LDAPAUTH_USERNAME_FIELD', getenv('LDAPAUTH_USERNAME_FIELD') ?: 'uid');

/**
 * (optional) Defaults to 1, which caches users in the options table.
 * 0 turns off cacheing.
 * Other values are currently undefined, but may be one day
 */
define( 'LDAPAUTH_USERCACHE_TYPE', getenv('LDAPAUTH_USERCACHE_TYPE') ?: 1);

and for runtime, the app is running with these env vars:

- name: LDAPAUTH_HOST
  value: ldap://xxx
- name: LDAPAUTH_PORT
  value: '3268'
- name: LDAPAUTH_BASE
  value: DC=xxx,DC=xxx
- name: LDAPAUTH_USERNAME_FIELD
  value: sAMAccountName
- name: LDAPAUTH_SEARCH_USER
  value: CN=yyy,DC=xxx,DC=xxx
- name: LDAPAUTH_SEARCH_PASS
  value: papapassssapapa
- name: LDAPAUTH_SEARCH_FILTER
  value: (&(objectCategory=Person) .....)
- name: LDAPAUTH_USERCACHE_TYPE
  value: '0'

Now what's wrong knowing that i am basing on this image : https://github.com/abdennour/dockerfiles/blob/master/docker-images/yourls/Dockerfile

I think all relevant info has been mentioned.
To not forget, it's MS AD.. but it should be clear also when you check env vars (.i.e sAMAccountName).

Thanks for support

@mattv8 mattv8 added this to the Yourls 1.9.2 Compatibility milestone Sep 20, 2024
@mattv8 mattv8 added the bug label Sep 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants