Fossil SCM
Add 'contact' subcommand to the 'fossil user' command. This enables changing contact information for a given user. If no argument is passed, this displays the current contact info of the passed in username.
Commit
03f0a4950ccf45eac312194185ff81027f3604b432116e41e4cbb014fee9b6ee
Parent
23679d720dc4992…
1 file changed
+23
-1
+23
-1
| --- src/user.c | ||
| +++ src/user.c | ||
| @@ -335,10 +335,14 @@ | ||
| 335 | 335 | ** |
| 336 | 336 | ** > fossil user capabilities USERNAME ?STRING? |
| 337 | 337 | ** |
| 338 | 338 | ** Query or set the capabilities for user USERNAME |
| 339 | 339 | ** |
| 340 | +** > fossil user contact USERNAME ?CONTACT-INFO? | |
| 341 | +** | |
| 342 | +** Query or set contact information for user USERNAME | |
| 343 | +** | |
| 340 | 344 | ** > fossil user default ?USERNAME? |
| 341 | 345 | ** |
| 342 | 346 | ** Query or set the default user. The default user is the |
| 343 | 347 | ** user for command-line interaction. |
| 344 | 348 | ** |
| @@ -458,13 +462,31 @@ | ||
| 458 | 462 | g.argv[4], uid |
| 459 | 463 | ); |
| 460 | 464 | db_protect_pop(); |
| 461 | 465 | } |
| 462 | 466 | fossil_print("%s\n", db_text(0, "SELECT cap FROM user WHERE uid=%d", uid)); |
| 467 | + }else if( n>=2 && strncmp(g.argv[2], "contact", 2)==0 ){ | |
| 468 | + int uid; | |
| 469 | + if( g.argc!=4 && g.argc!=5 ){ | |
| 470 | + usage("contact USERNAME ?CONTACT-INFO?"); | |
| 471 | + } | |
| 472 | + uid = db_int(0, "SELECT uid FROM user WHERE login=%Q", g.argv[3]); | |
| 473 | + if( uid==0 ){ | |
| 474 | + fossil_fatal("no such user: %s", g.argv[3]); | |
| 475 | + } | |
| 476 | + if( g.argc==5 ){ | |
| 477 | + db_unprotect(PROTECT_USER); | |
| 478 | + db_multi_exec( | |
| 479 | + "UPDATE user SET info=%Q, mtime=now() WHERE uid=%d", | |
| 480 | + g.argv[4], uid | |
| 481 | + ); | |
| 482 | + db_protect_pop(); | |
| 483 | + } | |
| 484 | + fossil_print("%s\n", db_text(0, "SELECT info FROM user WHERE uid=%d", uid)); | |
| 463 | 485 | }else{ |
| 464 | 486 | fossil_fatal("user subcommand should be one of: " |
| 465 | - "capabilities default list new password"); | |
| 487 | + "capabilities contact default list new password"); | |
| 466 | 488 | } |
| 467 | 489 | } |
| 468 | 490 | |
| 469 | 491 | /* |
| 470 | 492 | ** Attempt to set the user to zLogin |
| 471 | 493 |
| --- src/user.c | |
| +++ src/user.c | |
| @@ -335,10 +335,14 @@ | |
| 335 | ** |
| 336 | ** > fossil user capabilities USERNAME ?STRING? |
| 337 | ** |
| 338 | ** Query or set the capabilities for user USERNAME |
| 339 | ** |
| 340 | ** > fossil user default ?USERNAME? |
| 341 | ** |
| 342 | ** Query or set the default user. The default user is the |
| 343 | ** user for command-line interaction. |
| 344 | ** |
| @@ -458,13 +462,31 @@ | |
| 458 | g.argv[4], uid |
| 459 | ); |
| 460 | db_protect_pop(); |
| 461 | } |
| 462 | fossil_print("%s\n", db_text(0, "SELECT cap FROM user WHERE uid=%d", uid)); |
| 463 | }else{ |
| 464 | fossil_fatal("user subcommand should be one of: " |
| 465 | "capabilities default list new password"); |
| 466 | } |
| 467 | } |
| 468 | |
| 469 | /* |
| 470 | ** Attempt to set the user to zLogin |
| 471 |
| --- src/user.c | |
| +++ src/user.c | |
| @@ -335,10 +335,14 @@ | |
| 335 | ** |
| 336 | ** > fossil user capabilities USERNAME ?STRING? |
| 337 | ** |
| 338 | ** Query or set the capabilities for user USERNAME |
| 339 | ** |
| 340 | ** > fossil user contact USERNAME ?CONTACT-INFO? |
| 341 | ** |
| 342 | ** Query or set contact information for user USERNAME |
| 343 | ** |
| 344 | ** > fossil user default ?USERNAME? |
| 345 | ** |
| 346 | ** Query or set the default user. The default user is the |
| 347 | ** user for command-line interaction. |
| 348 | ** |
| @@ -458,13 +462,31 @@ | |
| 462 | g.argv[4], uid |
| 463 | ); |
| 464 | db_protect_pop(); |
| 465 | } |
| 466 | fossil_print("%s\n", db_text(0, "SELECT cap FROM user WHERE uid=%d", uid)); |
| 467 | }else if( n>=2 && strncmp(g.argv[2], "contact", 2)==0 ){ |
| 468 | int uid; |
| 469 | if( g.argc!=4 && g.argc!=5 ){ |
| 470 | usage("contact USERNAME ?CONTACT-INFO?"); |
| 471 | } |
| 472 | uid = db_int(0, "SELECT uid FROM user WHERE login=%Q", g.argv[3]); |
| 473 | if( uid==0 ){ |
| 474 | fossil_fatal("no such user: %s", g.argv[3]); |
| 475 | } |
| 476 | if( g.argc==5 ){ |
| 477 | db_unprotect(PROTECT_USER); |
| 478 | db_multi_exec( |
| 479 | "UPDATE user SET info=%Q, mtime=now() WHERE uid=%d", |
| 480 | g.argv[4], uid |
| 481 | ); |
| 482 | db_protect_pop(); |
| 483 | } |
| 484 | fossil_print("%s\n", db_text(0, "SELECT info FROM user WHERE uid=%d", uid)); |
| 485 | }else{ |
| 486 | fossil_fatal("user subcommand should be one of: " |
| 487 | "capabilities contact default list new password"); |
| 488 | } |
| 489 | } |
| 490 | |
| 491 | /* |
| 492 | ** Attempt to set the user to zLogin |
| 493 |