Fossil SCM

merge in hash-admin-user-password

preben 2023-09-29 13:35 trunk
Commit 593e801bdfaba3b033bdd6e7ecb6d36ecadd8aac4000f626a87258044b3636c5
--- src/clone.c
+++ src/clone.c
@@ -304,10 +304,11 @@
304304
db_protect_pop();
305305
fossil_print("\nproject-id: %s\n", db_get("project-code", 0));
306306
fossil_print("server-id: %s\n", db_get("server-code", 0));
307307
zPassword = db_text(0, "SELECT pw FROM user WHERE login=%Q", g.zLogin);
308308
fossil_print("admin-user: %s (password is \"%s\")\n", g.zLogin, zPassword);
309
+ hash_user_password(g.zLogin);
309310
if( zWorkDir!=0 && zWorkDir[0]!=0 && !noOpen ){
310311
Blob cmd;
311312
fossil_print("opening the new %s repository in directory %s...\n",
312313
zRepo, zWorkDir);
313314
blob_init(&cmd, 0, 0);
314315
--- src/clone.c
+++ src/clone.c
@@ -304,10 +304,11 @@
304 db_protect_pop();
305 fossil_print("\nproject-id: %s\n", db_get("project-code", 0));
306 fossil_print("server-id: %s\n", db_get("server-code", 0));
307 zPassword = db_text(0, "SELECT pw FROM user WHERE login=%Q", g.zLogin);
308 fossil_print("admin-user: %s (password is \"%s\")\n", g.zLogin, zPassword);
 
309 if( zWorkDir!=0 && zWorkDir[0]!=0 && !noOpen ){
310 Blob cmd;
311 fossil_print("opening the new %s repository in directory %s...\n",
312 zRepo, zWorkDir);
313 blob_init(&cmd, 0, 0);
314
--- src/clone.c
+++ src/clone.c
@@ -304,10 +304,11 @@
304 db_protect_pop();
305 fossil_print("\nproject-id: %s\n", db_get("project-code", 0));
306 fossil_print("server-id: %s\n", db_get("server-code", 0));
307 zPassword = db_text(0, "SELECT pw FROM user WHERE login=%Q", g.zLogin);
308 fossil_print("admin-user: %s (password is \"%s\")\n", g.zLogin, zPassword);
309 hash_user_password(g.zLogin);
310 if( zWorkDir!=0 && zWorkDir[0]!=0 && !noOpen ){
311 Blob cmd;
312 fossil_print("opening the new %s repository in directory %s...\n",
313 zRepo, zWorkDir);
314 blob_init(&cmd, 0, 0);
315
+1
--- src/db.c
+++ src/db.c
@@ -3300,10 +3300,11 @@
33003300
fossil_print("project-id: %s\n", db_get("project-code", 0));
33013301
fossil_print("server-id: %s\n", db_get("server-code", 0));
33023302
zPassword = db_text(0, "SELECT pw FROM user WHERE login=%Q", g.zLogin);
33033303
fossil_print("admin-user: %s (initial password is \"%s\")\n",
33043304
g.zLogin, zPassword);
3305
+ hash_user_password(g.zLogin);
33053306
}
33063307
33073308
/*
33083309
** SQL functions for debugging.
33093310
**
33103311
--- src/db.c
+++ src/db.c
@@ -3300,10 +3300,11 @@
3300 fossil_print("project-id: %s\n", db_get("project-code", 0));
3301 fossil_print("server-id: %s\n", db_get("server-code", 0));
3302 zPassword = db_text(0, "SELECT pw FROM user WHERE login=%Q", g.zLogin);
3303 fossil_print("admin-user: %s (initial password is \"%s\")\n",
3304 g.zLogin, zPassword);
 
3305 }
3306
3307 /*
3308 ** SQL functions for debugging.
3309 **
3310
--- src/db.c
+++ src/db.c
@@ -3300,10 +3300,11 @@
3300 fossil_print("project-id: %s\n", db_get("project-code", 0));
3301 fossil_print("server-id: %s\n", db_get("server-code", 0));
3302 zPassword = db_text(0, "SELECT pw FROM user WHERE login=%Q", g.zLogin);
3303 fossil_print("admin-user: %s (initial password is \"%s\")\n",
3304 g.zLogin, zPassword);
3305 hash_user_password(g.zLogin);
3306 }
3307
3308 /*
3309 ** SQL functions for debugging.
3310 **
3311
--- src/import.c
+++ src/import.c
@@ -2032,7 +2032,8 @@
20322032
if( !incrFlag ){
20332033
fossil_print("project-id: %s\n", db_get("project-code", 0));
20342034
fossil_print("server-id: %s\n", db_get("server-code", 0));
20352035
zPassword = db_text(0, "SELECT pw FROM user WHERE login=%Q", g.zLogin);
20362036
fossil_print("admin-user: %s (password is \"%s\")\n", g.zLogin, zPassword);
2037
+ hash_user_password(g.zLogin);
20372038
}
20382039
}
20392040
--- src/import.c
+++ src/import.c
@@ -2032,7 +2032,8 @@
2032 if( !incrFlag ){
2033 fossil_print("project-id: %s\n", db_get("project-code", 0));
2034 fossil_print("server-id: %s\n", db_get("server-code", 0));
2035 zPassword = db_text(0, "SELECT pw FROM user WHERE login=%Q", g.zLogin);
2036 fossil_print("admin-user: %s (password is \"%s\")\n", g.zLogin, zPassword);
 
2037 }
2038 }
2039
--- src/import.c
+++ src/import.c
@@ -2032,7 +2032,8 @@
2032 if( !incrFlag ){
2033 fossil_print("project-id: %s\n", db_get("project-code", 0));
2034 fossil_print("server-id: %s\n", db_get("server-code", 0));
2035 zPassword = db_text(0, "SELECT pw FROM user WHERE login=%Q", g.zLogin);
2036 fossil_print("admin-user: %s (password is \"%s\")\n", g.zLogin, zPassword);
2037 hash_user_password(g.zLogin);
2038 }
2039 }
2040
+1
--- src/main.c
+++ src/main.c
@@ -2625,10 +2625,11 @@
26252625
fossil_print("project-id: %s\n", db_get("project-code", 0));
26262626
fossil_print("server-id: %s\n", db_get("server-code", 0));
26272627
zPassword = db_text(0, "SELECT pw FROM user WHERE login=%Q", g.zLogin);
26282628
fossil_print("admin-user: %s (initial password is \"%s\")\n",
26292629
g.zLogin, zPassword);
2630
+ hash_user_password(g.zLogin);
26302631
cache_initialize();
26312632
g.zLogin = 0;
26322633
g.userUid = 0;
26332634
}else{
26342635
db_open_repository(zRepo);
26352636
--- src/main.c
+++ src/main.c
@@ -2625,10 +2625,11 @@
2625 fossil_print("project-id: %s\n", db_get("project-code", 0));
2626 fossil_print("server-id: %s\n", db_get("server-code", 0));
2627 zPassword = db_text(0, "SELECT pw FROM user WHERE login=%Q", g.zLogin);
2628 fossil_print("admin-user: %s (initial password is \"%s\")\n",
2629 g.zLogin, zPassword);
 
2630 cache_initialize();
2631 g.zLogin = 0;
2632 g.userUid = 0;
2633 }else{
2634 db_open_repository(zRepo);
2635
--- src/main.c
+++ src/main.c
@@ -2625,10 +2625,11 @@
2625 fossil_print("project-id: %s\n", db_get("project-code", 0));
2626 fossil_print("server-id: %s\n", db_get("server-code", 0));
2627 zPassword = db_text(0, "SELECT pw FROM user WHERE login=%Q", g.zLogin);
2628 fossil_print("admin-user: %s (initial password is \"%s\")\n",
2629 g.zLogin, zPassword);
2630 hash_user_password(g.zLogin);
2631 cache_initialize();
2632 g.zLogin = 0;
2633 g.userUid = 0;
2634 }else{
2635 db_open_repository(zRepo);
2636
--- src/rebuild.c
+++ src/rebuild.c
@@ -1397,10 +1397,11 @@
13971397
db_end_transaction(0);
13981398
fossil_print("project-id: %s\n", db_get("project-code", 0));
13991399
fossil_print("server-id: %s\n", db_get("server-code", 0));
14001400
zPassword = db_text(0, "SELECT pw FROM user WHERE login=%Q", g.zLogin);
14011401
fossil_print("admin-user: %s (initial password is \"%s\")\n", g.zLogin, zPassword);
1402
+ hash_user_password(g.zLogin);
14021403
}
14031404
14041405
/*
14051406
** COMMAND: deconstruct*
14061407
**
14071408
--- src/rebuild.c
+++ src/rebuild.c
@@ -1397,10 +1397,11 @@
1397 db_end_transaction(0);
1398 fossil_print("project-id: %s\n", db_get("project-code", 0));
1399 fossil_print("server-id: %s\n", db_get("server-code", 0));
1400 zPassword = db_text(0, "SELECT pw FROM user WHERE login=%Q", g.zLogin);
1401 fossil_print("admin-user: %s (initial password is \"%s\")\n", g.zLogin, zPassword);
 
1402 }
1403
1404 /*
1405 ** COMMAND: deconstruct*
1406 **
1407
--- src/rebuild.c
+++ src/rebuild.c
@@ -1397,10 +1397,11 @@
1397 db_end_transaction(0);
1398 fossil_print("project-id: %s\n", db_get("project-code", 0));
1399 fossil_print("server-id: %s\n", db_get("server-code", 0));
1400 zPassword = db_text(0, "SELECT pw FROM user WHERE login=%Q", g.zLogin);
1401 fossil_print("admin-user: %s (initial password is \"%s\")\n", g.zLogin, zPassword);
1402 hash_user_password(g.zLogin);
1403 }
1404
1405 /*
1406 ** COMMAND: deconstruct*
1407 **
1408
+14
--- src/user.c
+++ src/user.c
@@ -608,10 +608,24 @@
608608
db_multi_exec(
609609
"UPDATE user SET pw=shared_secret(pw,login), mtime=now()"
610610
" WHERE length(pw)>0 AND length(pw)!=40"
611611
);
612612
}
613
+
614
+/*
615
+** Ensure that the password for a user is hashed.
616
+*/
617
+void hash_user_password(const char *zUser){
618
+ sqlite3_create_function(g.db, "shared_secret", 2, SQLITE_UTF8, 0,
619
+ sha1_shared_secret_sql_function, 0, 0);
620
+ db_unprotect(PROTECT_USER);
621
+ db_multi_exec(
622
+ "UPDATE user SET pw=shared_secret(pw,login), mtime=now()"
623
+ " WHERE login=%Q AND length(pw)>0 AND length(pw)!=40", zUser
624
+ );
625
+ db_protect_pop();
626
+}
613627
614628
/*
615629
** COMMAND: test-prompt-user
616630
**
617631
** Usage: %fossil test-prompt-user PROMPT
618632
--- src/user.c
+++ src/user.c
@@ -608,10 +608,24 @@
608 db_multi_exec(
609 "UPDATE user SET pw=shared_secret(pw,login), mtime=now()"
610 " WHERE length(pw)>0 AND length(pw)!=40"
611 );
612 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
613
614 /*
615 ** COMMAND: test-prompt-user
616 **
617 ** Usage: %fossil test-prompt-user PROMPT
618
--- src/user.c
+++ src/user.c
@@ -608,10 +608,24 @@
608 db_multi_exec(
609 "UPDATE user SET pw=shared_secret(pw,login), mtime=now()"
610 " WHERE length(pw)>0 AND length(pw)!=40"
611 );
612 }
613
614 /*
615 ** Ensure that the password for a user is hashed.
616 */
617 void hash_user_password(const char *zUser){
618 sqlite3_create_function(g.db, "shared_secret", 2, SQLITE_UTF8, 0,
619 sha1_shared_secret_sql_function, 0, 0);
620 db_unprotect(PROTECT_USER);
621 db_multi_exec(
622 "UPDATE user SET pw=shared_secret(pw,login), mtime=now()"
623 " WHERE login=%Q AND length(pw)>0 AND length(pw)!=40", zUser
624 );
625 db_protect_pop();
626 }
627
628 /*
629 ** COMMAND: test-prompt-user
630 **
631 ** Usage: %fossil test-prompt-user PROMPT
632

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button