diff options
author | Andreas Gohr <andi@splitbrain.org> | 2006-01-21 19:11:49 +0100 |
---|---|---|
committer | Andreas Gohr <andi@splitbrain.org> | 2006-01-21 19:11:49 +0100 |
commit | a16dd68e698185f207e0bd3cf3b3f22619417519 (patch) | |
tree | 25dde2ced4efdf039919b6825ab9c7bfbfff348b /inc/auth/plain.php | |
parent | dbc31b0931cdab7a717606d1861b4c8ebf5ad5c0 (diff) | |
download | rpg-a16dd68e698185f207e0bd3cf3b3f22619417519.tar.gz rpg-a16dd68e698185f207e0bd3cf3b3f22619417519.tar.bz2 |
streamlining auth backends :!:
This patch is a start to make all the auth backend mor alike in
configuration and to update all backend to the new OO method.
This patch changed some config placeholders and thus may break
existing configs! Here is a list of the new place holders used
in MySQL and LDAP:
%{user} - the login name
%{group} - a group name
%{pass} - the password (cleartext or crypted)
%{dgroup} - the default group
%{guid} - a group id
%{uid} - a user id
%{name} - full name of a user
%{email} - email of a user
%{dn} - DN for a user (LDAP only)
The LDAP backend was enhanced a little bit. The default group
now is always added to the list of returned groups. A different
Server Port can be configured.
More changes will follow.
darcs-hash:20060121181149-7ad00-79de68aa7f87aef87dcff9dd7afd50adda859289.gz
Diffstat (limited to 'inc/auth/plain.php')
-rw-r--r-- | inc/auth/plain.php | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/inc/auth/plain.php b/inc/auth/plain.php deleted file mode 100644 index d9569c3fd..000000000 --- a/inc/auth/plain.php +++ /dev/null @@ -1,120 +0,0 @@ -<?php -/** - * Plaintext authentication backend - * - * If you want to authenticate against something - * else then the builtin flatfile auth system - * you have to reimplement the "required auth - * functions" - * - * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * @author Andreas Gohr <andi@splitbrain.org> - */ - -// we only accept page ids for auth_plain -if(isset($_REQUEST['u'])) - $_REQUEST['u'] = cleanID($_REQUEST['u']); - -/** - * Check user+password [required auth function] - * - * Checks if the given user exists and the given - * plaintext password is correct - * - * @author Andreas Gohr <andi@splitbrain.org> - * @return bool - */ -function auth_checkPass($user,$pass){ - $users = auth_plain_loadUserData(); - - if(!isset($users[$user])) return false; - - return auth_verifyPassword($pass,$users[$user]['pass']); -} - -/** - * Return user info [required auth function] - * - * Returns info about the given user needs to contain - * at least these fields: - * - * name string full name of the user - * mail string email addres of the user - * grps array list of groups the user is in - * - * @author Andreas Gohr <andi@splitbrain.org> - */ -function auth_getUserData($user){ - static $users = null; - - if($users == null) { - $users = auth_plain_loadUserData(); - } - return $users[$user]; -} - -/** - * Create a new User [required auth function] - * - * Returns false if the user already exists, null when an error - * occured and the cleartext password of the new user if - * everything went well. - * - * The new user HAS TO be added to the default group by this - * function! - * - * @author Andreas Gohr <andi@splitbrain.org> - */ -function auth_createUser($user,$pass,$name,$mail){ - global $conf; - - $users = auth_plain_loadUserData(); - if(isset($users[$user])) return false; - - $userline = join(':',array($user, - auth_cryptPassword($pass), - $name, - $mail, - $conf['defaultgroup'])); - $userline .= "\n"; - $fh = fopen(DOKU_CONF.'users.auth.php','a'); - if($fh){ - fwrite($fh,$userline); - fclose($fh); - return $pass; - } - msg('The users.auth.php file is not writable. Please inform the Wiki-Admin',-1); - return null; -} - -/** - * Load all user data - * - * Used by the plaintext auth functions - * loads the user file into a datastructure - * - * @author Andreas Gohr <andi@splitbrain.org> - */ -function auth_plain_loadUserData(){ - $data = array(); - if(!@file_exists(DOKU_CONF.'users.auth.php')){ - return $data; - } - $lines = file(DOKU_CONF.'users.auth.php'); - foreach($lines as $line){ - $line = preg_replace('/#.*$/','',$line); //ignore comments - $line = trim($line); - if(empty($line)) continue; - - $row = split(":",$line,5); - $groups = split(",",$row[4]); - $data[$row[0]]['pass'] = $row[1]; - $data[$row[0]]['name'] = urldecode($row[2]); - $data[$row[0]]['mail'] = $row[3]; - $data[$row[0]]['grps'] = $groups; - } - return $data; -} - - -//Setup VIM: ex: et ts=2 enc=utf-8 : |