"passwd",
"space",
"mxspace",
+ "lock",
(char *)0
};
case 3 : //user max space available
usr->mxspace=atoi(locval);
break;
+ case 4 : //lock status
+ usr->lock=atoi(locval);
+ break;
default :
(void) rou_alert(0,"%s field <%s> not used (Bug?)",OPEP,usrfield[i]);
break;
phase=999; //No user found in database
}
break;
- case 1 : //user is existing
+ case 1 : //is user lock?
+ if (usr->lock==1) {
+ (void) transmit(contact,true,"%d 5.6.6 <%s> account lock",EXPIRED,rcptto);
+ phase=999; //No user found in database
+ }
+ break;
+ case 2 : //user is existing
isok=true;
break;
default : //SAFE Guard
#define CMDBAD 502 //command not implemented
#define BADSEQ 503 //out of sequence command
#define DATRJC 521 //Data Rejected
+#define EXPIRED 536 //Contract date expired
#define REJECT 550 //E-mail/domain rejected
#define UKNUSER 551 //Unknown user
#define MALABRT 552 //email data rejected
typedef struct {
char *email; //user emails
char *passwd; //user password
+ u_int lock; //account is lock
u_long space; //user space used
u_long mxspace; //user maximun space
}USRTYP;
dbmysql : mailleur.mysql
@ - ( \
- echo "CREATE USER `id -un`@localhost;"; \
- echo "GRANT ALL PRIVILEGES ON mailleur.* to `id -un`@localhost;";\
+ echo "CREATE USER `id -un`@localhost;"; \
+ echo "CREATE USER apache@localhost;"; \
+ echo "CREATE USER dovecot@localhost;"; \
+ echo "GRANT ALL ON mailleur.* \
+ TO `id -un`@localhost \
+ WITH GRANT OPTION;"; \
echo "FLUSH PRIVILEGES;"; \
echo "CREATE DATABASE mailleur;"; \
) | sudo mariadb -q
ndbmysql:
@-( \
echo "DROP DATABASE mailleur;"; \
+ echo "DROP USER dovecot@localhost;"; \
+ echo "DROP USER apache@localhost;"; \
echo "DROP USER `id -un`@localhost;"; \
) | sudo mariadb
dbpostg : mailleur.postg
@-( \
+ echo "CREATE ROLE apache WITH LOGIN;"; \
+ echo "CREATE ROLE dovecot WITH LOGIN;"; \
echo "create database mailleur;" \
) | psql -q -U postgres template1
@ cat mailleur.postg | psql -q mailleur;
ndbpostg:
@-( \
- echo "drop database mailleur;" \
+ echo "drop database mailleur;"; \
+ echo "DROP ROLE apache;"; \
+ echo "DROP ROLE dovecot;"; \
) | psql -q -U postgres template1
#--------------------------------------------------------------------
space INTEGER //space used by user email
DFLT 0,
mxspace INTEGER //Maximun space available
- DFLT 20000 //to user (20 Gig).
+ DFLT 20000, //to user (20 Gig).
+ locked INTEGER //The account is locked out
+ DFLT 0
);
GRANT SELECT,INSERT,UPDATE,DELETE ON emails TO mailapache;
GRANT SELECT ON emails TO maildove;