[ldapauth] Add addon config

- Update mentions of .htconfig.php
This commit is contained in:
Hypolite Petovan 2018-06-27 23:14:29 -04:00
parent 723625f95f
commit 858d09e865
3 changed files with 99 additions and 40 deletions

View file

@ -10,28 +10,29 @@ However, it's possible with an option to automate the creation of a Friendica ba
Note when using with Windows Active Directory: you may need to set TLS_CACERT in your site Note when using with Windows Active Directory: you may need to set TLS_CACERT in your site
ldap.conf file to the signing cert for your LDAP server. ldap.conf file to the signing cert for your LDAP server.
The configuration options for this module may be set in the .htconfig.php file The configuration options for this module may be set in the config/local.ini.php file
e.g.: e.g.:
// ldap hostname server - required [ldapauth]
$a->config['ldapauth']['ldap_server'] = 'host.example.com'; // ldap hostname server - required
// dn to search users - required ldap_server = host.example.com
$a->config['ldapauth']['ldap_searchdn'] = 'ou=users,dc=example,dc=com'; // dn to search users - required
// attribute to find username - required ldap_searchdn = ou=users,dc=example,dc=com
$a->config['ldapauth']['ldap_userattr'] = 'uid'; // attribute to find username - required
ldap_userattr = uid
// admin dn - optional - only if ldap server dont have anonymous access // admin dn - optional - only if ldap server dont have anonymous access
$a->config['ldapauth']['ldap_binddn'] = 'cn=admin,dc=example,dc=com'; ldap_binddn = cn=admin,dc=example,dc=com
// admin password - optional - only if ldap server dont have anonymous access // admin password - optional - only if ldap server dont have anonymous access
$a->config['ldapauth']['ldap_bindpw'] = 'password'; ldap_bindpw = password
// for create Friendica account if user exist in ldap // for create Friendica account if user exist in ldap
// required an email and a simple (beautiful) nickname on user ldap object // required an email and a simple (beautiful) nickname on user ldap object
// active account creation - optional - default none // active account creation - optional - default none
$a->config['ldapauth']['ldap_autocreateaccount'] = 'true'; ldap_autocreateaccount = true
// attribute to get email - optional - default : 'mail' // attribute to get email - optional - default : 'mail'
$a->config['ldapauth']['ldap_autocreateaccount_emailattribute'] = 'mail'; ldap_autocreateaccount_emailattribute = mail
// attribute to get nickname - optional - default : 'givenName' // attribute to get nickname - optional - default : 'givenName'
$a->config['ldapauth']['ldap_autocreateaccount_nameattribute'] = 'givenName'; ldap_autocreateaccount_nameattribute = givenName
...etc. ...etc.

View file

@ -0,0 +1,50 @@
<?php return <<<INI
; Warning: Don't change this file! It only holds the default config values for this addon.
; Instead overwrite these config values in config/local.ini.php in your Friendica directory
[ldapauth]
; ldap_server (String)
; ldap hostname server - required
; Example: ldap_server = host.example.com
ldap_server =
; ldap_binddn (String)
; admin dn - optional - only if ldap server dont have anonymous access
; Example: ldap_binddn = cn=admin,dc=example,dc=com
ldap_binddn =
; ldap_bindpw (String)
; admin password - optional - only if ldap server dont have anonymous access
ldap_bindpw =
; ldap_searchdn (String)
; dn to search users - required
; Example: ldap_searchdn = ou=users,dc=example,dc=com
ldap_searchdn =
; ldap_userattr (String)
; attribute to find username - required
; Example: ldap_userattr = uid
ldap_userattr =
; ldap_group (String)
; DN of the group whose member can auth on Friendica - optional
ldap_group =
; ldap_autocreateaccount (Boolean)
; for create Friendica account if user exist in ldap
; required an email and a simple (beautiful) nickname on user ldap object
; active account creation - optional - default none
ldap_autocreateaccount = true
; ldap_autocreateaccount_emailattribute (String)
; attribute to get email - optional - default : 'mail'
ldap_autocreateaccount_emailattribute = mail
; ldap_autocreateaccount_nameattribute (String)
; attribute to get nickname - optional - default : 'givenName'
ldap_autocreateaccount_nameattribute = givenName
INI;
//Keep this line

View file

@ -26,29 +26,30 @@
* Note when using with Windows Active Directory: you may need to set TLS_CACERT in your site * Note when using with Windows Active Directory: you may need to set TLS_CACERT in your site
* ldap.conf file to the signing cert for your LDAP server. * ldap.conf file to the signing cert for your LDAP server.
* *
* The configuration options for this module may be set in the .htconfig.php file * The configuration options for this module may be set in the config/local.ini.php file
* e.g.: * e.g.:
* *
* // ldap hostname server - required * [ldapauth]
* $a->config['ldapauth']['ldap_server'] = 'host.example.com'; * ; ldap hostname server - required
* // dn to search users - required * ldap_server = host.example.com
* $a->config['ldapauth']['ldap_searchdn'] = 'ou=users,dc=example,dc=com'; * ; dn to search users - required
* // attribute to find username - required * ldap_searchdn = ou=users,dc=example,dc=com
* $a->config['ldapauth']['ldap_userattr'] = 'uid'; * ; attribute to find username - required
* ldap_userattr = uid
* *
* // admin dn - optional - only if ldap server dont have anonymous access * ; admin dn - optional - only if ldap server dont have anonymous access
* $a->config['ldapauth']['ldap_binddn'] = 'cn=admin,dc=example,dc=com'; * ldap_binddn = cn=admin,dc=example,dc=com
* // admin password - optional - only if ldap server dont have anonymous access * ; admin password - optional - only if ldap server dont have anonymous access
* $a->config['ldapauth']['ldap_bindpw'] = 'password'; * ldap_bindpw = password
* *
* // for create Friendica account if user exist in ldap * ; for create Friendica account if user exist in ldap
* // required an email and a simple (beautiful) nickname on user ldap object * ; required an email and a simple (beautiful) nickname on user ldap object
* // active account creation - optional - default none * ; active account creation - optional - default none
* $a->config['ldapauth']['ldap_autocreateaccount'] = 'true'; * ldap_autocreateaccount = true
* // attribute to get email - optional - default : 'mail' * ; attribute to get email - optional - default : 'mail'
* $a->config['ldapauth']['ldap_autocreateaccount_emailattribute'] = 'mail'; * ldap_autocreateaccount_emailattribute = mail
* // attribute to get nickname - optional - default : 'givenName' * ; attribute to get nickname - optional - default : 'givenName'
* $a->config['ldapauth']['ldap_autocreateaccount_nameattribute'] = 'cn'; * ldap_autocreateaccount_nameattribute = cn
* *
* ...etc. * ...etc.
*/ */
@ -58,14 +59,21 @@ use Friendica\Model\User;
function ldapauth_install() function ldapauth_install()
{ {
Addon::registerHook('load_config', 'addon/ldapauth/ldapauth.php', 'ldapauth_load_config');
Addon::registerHook('authenticate', 'addon/ldapauth/ldapauth.php', 'ldapauth_hook_authenticate'); Addon::registerHook('authenticate', 'addon/ldapauth/ldapauth.php', 'ldapauth_hook_authenticate');
} }
function ldapauth_uninstall() function ldapauth_uninstall()
{ {
Addon::unregisterHook('load_config', 'addon/ldapauth/ldapauth.php', 'ldapauth_load_config');
Addon::unregisterHook('authenticate', 'addon/ldapauth/ldapauth.php', 'ldapauth_hook_authenticate'); Addon::unregisterHook('authenticate', 'addon/ldapauth/ldapauth.php', 'ldapauth_hook_authenticate');
} }
function ldapauth_load_config(\Friendica\App $a)
{
$a->loadConfigFile(__DIR__. '/config/ldapauth.ini.php');
}
function ldapauth_hook_authenticate($a, &$b) function ldapauth_hook_authenticate($a, &$b)
{ {
if (ldapauth_authenticate($b['username'], $b['password'])) { if (ldapauth_authenticate($b['username'], $b['password'])) {