Hello, I just installed (this morning, now it's 22:00) phpwiki 1.3.6 and am
trying to figure out how to use mysql authentication.
I used the AllUsers (?pagename=AllUsers) plugin to check if it sees my users.
The 'root' user got visible after creating a page named 'root' and changing
root's preferences. I see no change to wiki 'user' and 'member' tables so I
added some users by hand, created their 'home pages', tryed diferent
'auth_crypt_method's and so on with no luck - users can not login with or
without separate DB User Authentication.
my config:
--- cut ---
$DBParams = array(
'dbtype' => 'SQL',
'dsn' => 'mysql://<phpwikiuser>:<phpwikipass>@unix(/var/lib/mysql/mysql.sock)/<phpwikitable>',
'db_session_table' => 'session',
'timeout' => 20
);
define('USE_DB_SESSION',true);
......
if (!defined('ALLOW_HTTP_AUTH_LOGIN')) define('ALLOW_HTTP_AUTH_LOGIN', false);
if (!defined('ALLOW_USER_LOGIN')) define('ALLOW_USER_LOGIN', true);
if (!defined('ALLOW_BOGO_LOGIN')) define('ALLOW_BOGO_LOGIN', true);
if (!defined('REQUIRE_SIGNIN_BEFORE_EDIT')) define('REQUIRE_SIGNIN_BEFORE_EDIT', true);
@ini_set('session.use_trans_sid', 0);
if (!defined('ALLOW_LDAP_LOGIN')) define('ALLOW_LDAP_LOGIN', false);
if (!defined('ALLOW_IMAP_LOGIN')) define('ALLOW_IMAP_LOGIN', false);
$DBAuthParams = array(
'auth_dsn' 'mysql://<phpwikiuser>:<phpwikipass>@unix(/var/lib/mysql/mysql.sock)/<phpwikitable>',
'auth_check' => 'SELECT password FROM wiki_user WHERE userid="$userid"',
'auth_crypt_method' => 'plain',
'auth_update' => 'UPDATE wiki_user SET password="$password" WHERE userid="$userid"',
'pref_select' => 'SELECT preferences from wiki_user WHERE userid="$userid"',
'pref_update' => 'UPDATE wiki_user SET preferences="$pref_blob" WHERE userid="$userid"',
'group_members' => 'SELECT userid FROM wiki_group WHERE user_group="$group"',
'user_groups' => 'SELECT user_group FROM wiki_group WHERE userid="$userid"',
'dummy' => false
);
--- cut ---
* I don't have <phpwikiuser> as username, I replaced the real values this way.
MySQL tables wiki_user and wiki_grop are:
--- cut ---
CREATE TABLE `wiki_user` (
`userid` varchar(48) binary NOT NULL default '',
`preferences` text,
`password` varchar(48) binary default '*',
PRIMARY KEY (`userid`),
UNIQUE KEY `userid` (`userid`)
) TYPE=MyISAM;
CREATE TABLE `wiki_group` (
`userid` char(48) NOT NULL default '',
`user_group` char(48) NOT NULL default 'users',
PRIMARY KEY (`userid`),
KEY `user_group` (`user_group`)
) TYPE=MyISAM;
--- cut ---
So far no user except the admin user defined in index.php can login. All pages
are stored in my mysql server. The 'auth_dsn' for 'DBAuthParams' is just the
same as 'dsn' for 'DBParams'.
Can someone tell me how to do MySQL user authentication? Is it supported?
(I would prefer not to have any user 'home pages' at all if possible)
--
Regards,
Doncho N. Gunchev
|