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.

jamsek 2020-11-04 00:43 trunk
Commit 03f0a4950ccf45eac312194185ff81027f3604b432116e41e4cbb014fee9b6ee
1 file changed +23 -1
+23 -1
--- src/user.c
+++ src/user.c
@@ -335,10 +335,14 @@
335335
**
336336
** > fossil user capabilities USERNAME ?STRING?
337337
**
338338
** Query or set the capabilities for user USERNAME
339339
**
340
+** > fossil user contact USERNAME ?CONTACT-INFO?
341
+**
342
+** Query or set contact information for user USERNAME
343
+**
340344
** > fossil user default ?USERNAME?
341345
**
342346
** Query or set the default user. The default user is the
343347
** user for command-line interaction.
344348
**
@@ -458,13 +462,31 @@
458462
g.argv[4], uid
459463
);
460464
db_protect_pop();
461465
}
462466
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));
463485
}else{
464486
fossil_fatal("user subcommand should be one of: "
465
- "capabilities default list new password");
487
+ "capabilities contact default list new password");
466488
}
467489
}
468490
469491
/*
470492
** Attempt to set the user to zLogin
471493
--- 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

Keyboard Shortcuts

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