Fossil SCM
merge in hash-admin-user-password
Commit
593e801bdfaba3b033bdd6e7ecb6d36ecadd8aac4000f626a87258044b3636c5
Parent
c0d402fe81a8fd9…
6 files changed
+1
+1
+1
+1
+1
+14
+1
| --- src/clone.c | ||
| +++ src/clone.c | ||
| @@ -304,10 +304,11 @@ | ||
| 304 | 304 | db_protect_pop(); |
| 305 | 305 | fossil_print("\nproject-id: %s\n", db_get("project-code", 0)); |
| 306 | 306 | fossil_print("server-id: %s\n", db_get("server-code", 0)); |
| 307 | 307 | zPassword = db_text(0, "SELECT pw FROM user WHERE login=%Q", g.zLogin); |
| 308 | 308 | fossil_print("admin-user: %s (password is \"%s\")\n", g.zLogin, zPassword); |
| 309 | + hash_user_password(g.zLogin); | |
| 309 | 310 | if( zWorkDir!=0 && zWorkDir[0]!=0 && !noOpen ){ |
| 310 | 311 | Blob cmd; |
| 311 | 312 | fossil_print("opening the new %s repository in directory %s...\n", |
| 312 | 313 | zRepo, zWorkDir); |
| 313 | 314 | blob_init(&cmd, 0, 0); |
| 314 | 315 |
| --- 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 |
M
src/db.c
+1
| --- src/db.c | ||
| +++ src/db.c | ||
| @@ -3300,10 +3300,11 @@ | ||
| 3300 | 3300 | fossil_print("project-id: %s\n", db_get("project-code", 0)); |
| 3301 | 3301 | fossil_print("server-id: %s\n", db_get("server-code", 0)); |
| 3302 | 3302 | zPassword = db_text(0, "SELECT pw FROM user WHERE login=%Q", g.zLogin); |
| 3303 | 3303 | fossil_print("admin-user: %s (initial password is \"%s\")\n", |
| 3304 | 3304 | g.zLogin, zPassword); |
| 3305 | + hash_user_password(g.zLogin); | |
| 3305 | 3306 | } |
| 3306 | 3307 | |
| 3307 | 3308 | /* |
| 3308 | 3309 | ** SQL functions for debugging. |
| 3309 | 3310 | ** |
| 3310 | 3311 |
| --- 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 |
+1
| --- src/import.c | ||
| +++ src/import.c | ||
| @@ -2032,7 +2032,8 @@ | ||
| 2032 | 2032 | if( !incrFlag ){ |
| 2033 | 2033 | fossil_print("project-id: %s\n", db_get("project-code", 0)); |
| 2034 | 2034 | fossil_print("server-id: %s\n", db_get("server-code", 0)); |
| 2035 | 2035 | zPassword = db_text(0, "SELECT pw FROM user WHERE login=%Q", g.zLogin); |
| 2036 | 2036 | fossil_print("admin-user: %s (password is \"%s\")\n", g.zLogin, zPassword); |
| 2037 | + hash_user_password(g.zLogin); | |
| 2037 | 2038 | } |
| 2038 | 2039 | } |
| 2039 | 2040 |
| --- 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 @@ | ||
| 2625 | 2625 | fossil_print("project-id: %s\n", db_get("project-code", 0)); |
| 2626 | 2626 | fossil_print("server-id: %s\n", db_get("server-code", 0)); |
| 2627 | 2627 | zPassword = db_text(0, "SELECT pw FROM user WHERE login=%Q", g.zLogin); |
| 2628 | 2628 | fossil_print("admin-user: %s (initial password is \"%s\")\n", |
| 2629 | 2629 | g.zLogin, zPassword); |
| 2630 | + hash_user_password(g.zLogin); | |
| 2630 | 2631 | cache_initialize(); |
| 2631 | 2632 | g.zLogin = 0; |
| 2632 | 2633 | g.userUid = 0; |
| 2633 | 2634 | }else{ |
| 2634 | 2635 | db_open_repository(zRepo); |
| 2635 | 2636 |
| --- 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 |
+1
| --- src/rebuild.c | ||
| +++ src/rebuild.c | ||
| @@ -1397,10 +1397,11 @@ | ||
| 1397 | 1397 | db_end_transaction(0); |
| 1398 | 1398 | fossil_print("project-id: %s\n", db_get("project-code", 0)); |
| 1399 | 1399 | fossil_print("server-id: %s\n", db_get("server-code", 0)); |
| 1400 | 1400 | zPassword = db_text(0, "SELECT pw FROM user WHERE login=%Q", g.zLogin); |
| 1401 | 1401 | fossil_print("admin-user: %s (initial password is \"%s\")\n", g.zLogin, zPassword); |
| 1402 | + hash_user_password(g.zLogin); | |
| 1402 | 1403 | } |
| 1403 | 1404 | |
| 1404 | 1405 | /* |
| 1405 | 1406 | ** COMMAND: deconstruct* |
| 1406 | 1407 | ** |
| 1407 | 1408 |
| --- 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 @@ | ||
| 608 | 608 | db_multi_exec( |
| 609 | 609 | "UPDATE user SET pw=shared_secret(pw,login), mtime=now()" |
| 610 | 610 | " WHERE length(pw)>0 AND length(pw)!=40" |
| 611 | 611 | ); |
| 612 | 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 | +} | |
| 613 | 627 | |
| 614 | 628 | /* |
| 615 | 629 | ** COMMAND: test-prompt-user |
| 616 | 630 | ** |
| 617 | 631 | ** Usage: %fossil test-prompt-user PROMPT |
| 618 | 632 |
| --- 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 |