]> SAFE projects GIT repository - jmp/mailleur/commitdiff
Added the lock flag with database emails table
authorJean-Marc Pigeon (Delson) <jmp@safe.ca>
Fri, 27 Jun 2025 14:23:24 +0000 (10:23 -0400)
committerJean-Marc Pigeon (Delson) <jmp@safe.ca>
Fri, 27 Jun 2025 14:23:24 +0000 (10:23 -0400)
lib/devsql.c
lib/lvleml.c
lib/unieml.h
lib/unisql.h
sql/Makefile
sql/mailleur.sql

index 7ecc6f8eb4ca55f2cd65e20ea9f229a929d752d0..837d364ca8f82d42640cf490711e5e8a1174046c 100644 (file)
@@ -40,6 +40,7 @@ const char *usrfield[]={
           "passwd",
           "space",
           "mxspace",
+          "lock",
           (char *)0
           };
 
@@ -316,6 +317,9 @@ while (proceed==true) {
           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;
index 0f1cc22b7e09aad696356178536c0cbb75d1f6f3..509e135df6e150b30dd52ebc28da18dc630b2ed2 100644 (file)
@@ -284,7 +284,13 @@ while (proceed==true) {
         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
index d391976ab8b561b6b95d6b23740aef4507be1d95..ba172943305e77080eff5cf07a2be56dc1072ddd 100644 (file)
@@ -22,6 +22,7 @@
 #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
index d830c65f284be701b9b7f953427c73cd80e3ac95..273319e2cd89e07cfe2aff9c91ca515f60602700 100644 (file)
@@ -20,6 +20,7 @@ typedef enum    {
 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;
index 7e1ca5bcd0ce0906209f0638978749252d0558bc..6668308dfc266759155ab56edca57b90275eed98 100644 (file)
@@ -24,8 +24,12 @@ mailleur.mysql                                       \
 
 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
@@ -37,11 +41,15 @@ dbmysql     :  mailleur.mysql
 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;
@@ -50,7 +58,9 @@ dbpostg       :  mailleur.postg
 
 ndbpostg:
           @-(                                          \
-            echo "drop database mailleur;"             \
+            echo "drop database mailleur;";            \
+            echo "DROP ROLE apache;";                  \
+            echo "DROP ROLE dovecot;";                 \
             ) | psql -q -U postgres template1
 
 #--------------------------------------------------------------------
index 3df5cb8d60082430846caa83a281eba1bbd8804e..51a6bc5b1f570dd22de545a971045b5be7d0daab 100644 (file)
@@ -55,7 +55,9 @@ CREATE TABLE emails   (
        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;