Check-in [e2a42f7a68]
Not logged in
Overview

SHA1 Hash:e2a42f7a6800408a6327054c889e77eefb1184c8
Date: 2008-01-29 01:11:27
User: drh
Comment:Error message on "commit" or "user default" if the user does not exist.
Timelines: ancestors | descendants | both | trunk
Other Links: files | ZIP archive | manifest

Tags And Properties
Changes
[hide diffs]

Modified src/checkin.c from [5435deb841] to [fe0fcda106].

@@ -364,10 +364,17 @@
   if( g.aCommitFile && isAMerge ){
     fossil_fatal("cannot do a partial commit of a merge");
   }
 
   user_select();
+  /*
+  ** Check that the user exists.
+  */
+  if( !db_exists("SELECT 1 FROM user WHERE login=%Q", g.zLogin) ){
+    fossil_fatal("no such user: %s", g.zLogin);
+  }
+
   db_begin_transaction();
   rc = unsaved_changes();
   if( rc==0 && !isAMerge && !forceFlag ){
     fossil_panic("nothing has changed");
   }

Modified src/user.c from [fb0522ab92] to [5fc6aec086].

@@ -205,14 +205,19 @@
     );
   }else if( n>=2 && strncmp(g.argv[2],"default",n)==0 ){
     user_select();
     if( g.argc==3 ){
       printf("%s\n", g.zLogin);
-    }else if( g.localOpen ){
-      db_lset("default-user", g.argv[3]);
     }else{
-      db_set("default-user", g.argv[3], 0);
+      if( !db_exists("SELECT 1 FROM user WHERE login=%Q", g.argv[3]) ){
+        fossil_fatal("no such user: %s", g.argv[3]);
+      }
+      if( g.localOpen ){
+        db_lset("default-user", g.argv[3]);
+      }else{
+        db_set("default-user", g.argv[3], 0);
+      }
     }
   }else if( n>=2 && strncmp(g.argv[2],"list",n)==0 ){
     Stmt q;
     db_prepare(&q, "SELECT login, info FROM user ORDER BY login");
     while( db_step(&q)==SQLITE_ROW ){