Maik Brauer [EMAIL PROTECTED] writes:
Hi Pawel,
can you give me a short intruduction, what is to do ?
So what I need to modify (Files, Mysql Tables, etc.) to get it work.
Many Thanks for your help
Hello Maik,
I'm sending my reply also to the mailing list, because I hope
it's useful for other Courier users too :)
Below is structure of my tables:
CREATE TABLE `users` (
`user_id` int(11) unsigned NOT NULL auto_increment,
`cryptpw` varchar(128) NOT NULL default '',
`clearpw` varchar(128) NOT NULL default '',
`uid` smallint(5) unsigned NOT NULL default '600',
`gid` smallint(5) unsigned NOT NULL default '600',
`home` varchar(255) NOT NULL default '',
`maildir` varchar(255) NOT NULL default '',
`quota` varchar(128) NOT NULL default '',
`fullname` varchar(128) NOT NULL default '',
`number` varchar(64) NOT NULL default '',
`number_id` enum('','N','D','P','I','O') NOT NULL default '',
`title_id` tinyint(3) unsigned NOT NULL default '0',
`status_id` tinyint(3) unsigned NOT NULL default '1',
`type_id` enum('','P','F','G','E','S','C') NOT NULL default '',
`creator_id` int(11) unsigned NOT NULL default '0',
`create_ts` timestamp(14) NOT NULL,
`life_ts` timestamp(14) NOT NULL default '00',
`locker_id` int(11) unsigned NOT NULL default '0',
`lock_ts` timestamp(14) NOT NULL default '00',
`lock_id` tinyint(3) unsigned NOT NULL default '0',
PRIMARY KEY (`user_id`)
) TYPE=MyISAM;
CREATE TABLE `user_local_part` (
`user_id` int(11) unsigned default '0',
`local_part` varchar(128) NOT NULL default '',
`local_part_id` enum('G','A','P') NOT NULL default 'G',
`forward` varchar(128) default NULL,
KEY `ulp_local_part` (`local_part`)
) TYPE=MyISAM;
Here is a piece of my authmysqlrc file:
MYSQL_USER_TABLEusers
MYSQL_CRYPT_PWFIELD cryptpw
MYSQL_CLEAR_PWFIELD clearpw
MYSQL_UID_FIELD uid
MYSQL_GID_FIELD gid
MYSQL_LOGIN_FIELD user_id
MYSQL_HOME_FIELDhome
MYSQL_NAME_FIELDfullname
MYSQL_QUOTA_FIELD quota
MYSQL_SELECT_CLAUSE \
SELECT ulp.local_part, u.cryptpw, u.clearpw, u.uid, u.gid, \
u.home, '', u.quota, u.fullname \
FROM users AS u, user_local_part AS ulp \
WHERE u.user_id=ulp.user_id AND ulp.local_part='$(local_part)' \
AND (u.status_id=0 OR (u.status_id IN (2, 3) \
AND '$(service)'='courier' AND '$(domain)'!=''))
MYSQL_CHPASS_CLAUSE \
UPDATE users AS u, user_local_part AS ulp \
SET u.create_ts=u.create_ts, \
clearpw='$(newpass)', u.cryptpw='$(newpass_crypt)' \
WHERE u.user_id=ulp.user_id AND ulp.local_part='$(local_part)'
A short comment for the select clause:
If status_id of user is 0, it means that it's active user.
The accounts of users with status_id=2 or status_id=3 have been
soft locked. They still can receive messages, but they can't
use POP3/IMAP/webmail services. If status_id of user is greater
then 3, it means that it's hard locked user. He can't use any
our services and he doesn't receive messages to him.
I'm going to switch to the newest version of MySQL soon and use
view to joining tables. The clauses will be much easier then.
Have a nice day,
Pawel
-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV
___
courier-users mailing list
courier-users@lists.sourceforge.net
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users