Fossil SCM

Add a new capability that allows signup for email notification. Change the name of the older "EMail" privilege to "View-PII" to avoid confusion.

drh 2018-06-20 19:04 trunk
Commit 25eafed11494e801c28babfbc5784f877c3aa0b7ea675f970b2c6038b0d4255f
--- src/login.c
+++ src/login.c
@@ -1198,10 +1198,11 @@
11981198
p->NewTkt = p->Password = p->RdAddr =
11991199
p->TktFmt = p->Attach = p->ApndTkt =
12001200
p->ModWiki = p->ModTkt = p->Delete =
12011201
p->RdForum = p->WrForum = p->ModForum =
12021202
p->WrTForum = p->AdminForum =
1203
+ p->EmailAlert =
12031204
p->WrUnver = p->Private = 1;
12041205
/* Fall thru into Read/Write */
12051206
case 'i': p->Read = p->Write = 1; break;
12061207
case 'o': p->Read = 1; break;
12071208
case 'z': p->Zip = 1; break;
@@ -1232,10 +1233,12 @@
12321233
case '6': p->AdminForum = 1;
12331234
case '5': p->ModForum = 1;
12341235
case '4': p->WrTForum = 1;
12351236
case '3': p->WrForum = 1;
12361237
case '2': p->RdForum = 1; break;
1238
+
1239
+ case '7': p->EmailAlert = 1; break;
12371240
12381241
/* The "u" privileges is a little different. It recursively
12391242
** inherits all privileges of the user named "reader" */
12401243
case 'u': {
12411244
if( (flags & LOGIN_IGNORE_UV)==0 ){
12421245
--- src/login.c
+++ src/login.c
@@ -1198,10 +1198,11 @@
1198 p->NewTkt = p->Password = p->RdAddr =
1199 p->TktFmt = p->Attach = p->ApndTkt =
1200 p->ModWiki = p->ModTkt = p->Delete =
1201 p->RdForum = p->WrForum = p->ModForum =
1202 p->WrTForum = p->AdminForum =
 
1203 p->WrUnver = p->Private = 1;
1204 /* Fall thru into Read/Write */
1205 case 'i': p->Read = p->Write = 1; break;
1206 case 'o': p->Read = 1; break;
1207 case 'z': p->Zip = 1; break;
@@ -1232,10 +1233,12 @@
1232 case '6': p->AdminForum = 1;
1233 case '5': p->ModForum = 1;
1234 case '4': p->WrTForum = 1;
1235 case '3': p->WrForum = 1;
1236 case '2': p->RdForum = 1; break;
 
 
1237
1238 /* The "u" privileges is a little different. It recursively
1239 ** inherits all privileges of the user named "reader" */
1240 case 'u': {
1241 if( (flags & LOGIN_IGNORE_UV)==0 ){
1242
--- src/login.c
+++ src/login.c
@@ -1198,10 +1198,11 @@
1198 p->NewTkt = p->Password = p->RdAddr =
1199 p->TktFmt = p->Attach = p->ApndTkt =
1200 p->ModWiki = p->ModTkt = p->Delete =
1201 p->RdForum = p->WrForum = p->ModForum =
1202 p->WrTForum = p->AdminForum =
1203 p->EmailAlert =
1204 p->WrUnver = p->Private = 1;
1205 /* Fall thru into Read/Write */
1206 case 'i': p->Read = p->Write = 1; break;
1207 case 'o': p->Read = 1; break;
1208 case 'z': p->Zip = 1; break;
@@ -1232,10 +1233,12 @@
1233 case '6': p->AdminForum = 1;
1234 case '5': p->ModForum = 1;
1235 case '4': p->WrTForum = 1;
1236 case '3': p->WrForum = 1;
1237 case '2': p->RdForum = 1; break;
1238
1239 case '7': p->EmailAlert = 1; break;
1240
1241 /* The "u" privileges is a little different. It recursively
1242 ** inherits all privileges of the user named "reader" */
1243 case 'u': {
1244 if( (flags & LOGIN_IGNORE_UV)==0 ){
1245
+1
--- src/main.c
+++ src/main.c
@@ -88,10 +88,11 @@
8888
char RdForum; /* 2: Read forum posts */
8989
char WrForum; /* 3: Create new forum posts */
9090
char WrTForum; /* 4: Post to forums not subject to moderation */
9191
char ModForum; /* 5: Moderate (approve or reject) forum posts */
9292
char AdminForum; /* 6: Edit forum posts by other users */
93
+ char EmailAlert; /* 7: Sign up for email notifications */
9394
};
9495
9596
#ifdef FOSSIL_ENABLE_TCL
9697
/*
9798
** All Tcl related context information is in this structure. This structure
9899
--- src/main.c
+++ src/main.c
@@ -88,10 +88,11 @@
88 char RdForum; /* 2: Read forum posts */
89 char WrForum; /* 3: Create new forum posts */
90 char WrTForum; /* 4: Post to forums not subject to moderation */
91 char ModForum; /* 5: Moderate (approve or reject) forum posts */
92 char AdminForum; /* 6: Edit forum posts by other users */
 
93 };
94
95 #ifdef FOSSIL_ENABLE_TCL
96 /*
97 ** All Tcl related context information is in this structure. This structure
98
--- src/main.c
+++ src/main.c
@@ -88,10 +88,11 @@
88 char RdForum; /* 2: Read forum posts */
89 char WrForum; /* 3: Create new forum posts */
90 char WrTForum; /* 4: Post to forums not subject to moderation */
91 char ModForum; /* 5: Moderate (approve or reject) forum posts */
92 char AdminForum; /* 6: Edit forum posts by other users */
93 char EmailAlert; /* 7: Sign up for email notifications */
94 };
95
96 #ifdef FOSSIL_ENABLE_TCL
97 /*
98 ** All Tcl related context information is in this structure. This structure
99
+15 -9
--- src/setup.c
+++ src/setup.c
@@ -305,11 +305,12 @@
305305
@ <tr><th valign="top">c</th>
306306
@ <td><i>Append-Tkt:</i> Append to tickets</td></tr>
307307
@ <tr><th valign="top">d</th>
308308
@ <td><i>Delete:</i> Delete wiki and tickets</td></tr>
309309
@ <tr><th valign="top">e</th>
310
- @ <td><i>Email:</i> View sensitive data such as EMail addresses</td></tr>
310
+ @ <td><i>View-PII:</i> \
311
+ @ View sensitive data such as email addresses</td></tr>
311312
@ <tr><th valign="top">f</th>
312313
@ <td><i>New-Wiki:</i> Create new wiki pages</td></tr>
313314
@ <tr><th valign="top">g</th>
314315
@ <td><i>Clone:</i> Clone the repository</td></tr>
315316
@ <tr><th valign="top">h</th>
@@ -361,11 +362,13 @@
361362
@ <td><i>Forum-Trusted:</i> Add pre-approved forum posts </td></tr>
362363
@ <tr><th valign="top">5</th>
363364
@ <td><i>Forum-Moderator:</i> Approve or disapprove forum posts</td></tr>
364365
@ <tr><th valign="top">6</th>
365366
@ <td><i>Forum-Supervisor:</i> \
366
- @ Edit forum posts submitted by others</td></tr>
367
+ @ <tr><th valign="top">7</th>
368
+ @ <td><i>Email-Notify:</i> \
369
+ @ Sign up for email notifications</td></tr>
367370
@ </table>
368371
}
369372
370373
/*
371374
** WEBPAGE: setup_ulist_notes
@@ -502,11 +505,11 @@
502505
503506
zCap[i] = 0;
504507
zPw = P("pw");
505508
zLogin = P("login");
506509
if( strlen(zLogin)==0 ){
507
- char *zRef = cgi_referer("setup_ulist");
510
+ const char *zRef = cgi_referer("setup_ulist");
508511
style_header("User Creation Error");
509512
@ <span class="loginError">Empty login not allowed.</span>
510513
@
511514
@ <p><a href="setup_uedit?id=%d(uid)&referer=%T(zRef)">
512515
@ [Bummer]</a></p>
@@ -518,11 +521,11 @@
518521
}else{
519522
zPw = db_text(0, "SELECT pw FROM user WHERE uid=%d", uid);
520523
}
521524
zOldLogin = db_text(0, "SELECT login FROM user WHERE uid=%d", uid);
522525
if( db_exists("SELECT 1 FROM user WHERE login=%Q AND uid!=%d",zLogin,uid) ){
523
- char *zRef = cgi_referer("setup_ulist");
526
+ const char *zRef = cgi_referer("setup_ulist");
524527
style_header("User Creation Error");
525528
@ <span class="loginError">Login "%h(zLogin)" is already used by
526529
@ a different user.</span>
527530
@
528531
@ <p><a href="setup_uedit?id=%d(uid)&referer=%T(zRef)">
@@ -566,11 +569,11 @@
566569
blob_reset(&sql);
567570
admin_log( "Updated user [%q] in all login groups "
568571
"with capabilities [%q].",
569572
zLogin, zCap );
570573
if( zErr ){
571
- char *zRef = cgi_referer("setup_ulist");
574
+ const char *zRef = cgi_referer("setup_ulist");
572575
style_header("User Change Error");
573576
admin_log( "Error updating user '%q': %s'.", zLogin, zErr );
574577
@ <span class="loginError">%h(zErr)</span>
575578
@
576579
@ <p><a href="setup_uedit?id=%d(uid)&referer=%T(zRef)">
@@ -698,11 +701,11 @@
698701
@ <label><input type="checkbox" name="av"%s(oa['v']) />
699702
@ Developer%s(B('v'))</label><br />
700703
@ <label><input type="checkbox" name="ad"%s(oa['d']) />
701704
@ Delete%s(B('d'))</label><br />
702705
@ <label><input type="checkbox" name="ae"%s(oa['e']) />
703
- @ Email%s(B('e'))</label><br />
706
+ @ View-PII%s(B('e'))</label><br />
704707
@ <label><input type="checkbox" name="ap"%s(oa['p']) />
705708
@ Password%s(B('p'))</label><br />
706709
@ <label><input type="checkbox" name="ai"%s(oa['i']) />
707710
@ Check-In%s(B('i'))</label><br />
708711
@ <label><input type="checkbox" name="ao"%s(oa['o']) />
@@ -752,11 +755,13 @@
752755
@ <label><input type="checkbox" name="a4"%s(oa['4']) />
753756
@ WriteTrusted Forum%s(B('4'))</label><br>
754757
@ <label><input type="checkbox" name="a5"%s(oa['5']) />
755758
@ Moderate Forum%s(B('5'))</label><br>
756759
@ <label><input type="checkbox" name="a6"%s(oa['6']) />
757
- @ Supervise Forum%s(B('6'))</label>
760
+ @ Supervise Forum%s(B('6'))</label><br>
761
+ @ <label><input type="checkbox" name="a7"%s(oa['7']) />
762
+ @ Email Alerts%s(B('7'))</label>
758763
@ </td></tr>
759764
@ </table>
760765
@ </td>
761766
@ </tr>
762767
@ <tr>
@@ -900,12 +905,13 @@
900905
@ <span class="usertype">anonymous</span>,
901906
@ and <span class="usertype">nobody</span>.
902907
@ </p></li>
903908
@
904909
@ <li><p>
905
- @ The <span class="capability">EMail</span> privilege allows the display of
906
- @ sensitive information such as the email address of users and contact
910
+ @ The <span class="capability">View-PII</span> privilege allows the display
911
+ @ of personally-identifiable information information such as the
912
+ @ email address of users and contact
907913
@ information on tickets. Recommended OFF for
908914
@ <span class="usertype">anonymous</span> and for
909915
@ <span class="usertype">nobody</span> but ON for
910916
@ <span class="usertype">developer</span>.
911917
@ </p></li>
912918
--- src/setup.c
+++ src/setup.c
@@ -305,11 +305,12 @@
305 @ <tr><th valign="top">c</th>
306 @ <td><i>Append-Tkt:</i> Append to tickets</td></tr>
307 @ <tr><th valign="top">d</th>
308 @ <td><i>Delete:</i> Delete wiki and tickets</td></tr>
309 @ <tr><th valign="top">e</th>
310 @ <td><i>Email:</i> View sensitive data such as EMail addresses</td></tr>
 
311 @ <tr><th valign="top">f</th>
312 @ <td><i>New-Wiki:</i> Create new wiki pages</td></tr>
313 @ <tr><th valign="top">g</th>
314 @ <td><i>Clone:</i> Clone the repository</td></tr>
315 @ <tr><th valign="top">h</th>
@@ -361,11 +362,13 @@
361 @ <td><i>Forum-Trusted:</i> Add pre-approved forum posts </td></tr>
362 @ <tr><th valign="top">5</th>
363 @ <td><i>Forum-Moderator:</i> Approve or disapprove forum posts</td></tr>
364 @ <tr><th valign="top">6</th>
365 @ <td><i>Forum-Supervisor:</i> \
366 @ Edit forum posts submitted by others</td></tr>
 
 
367 @ </table>
368 }
369
370 /*
371 ** WEBPAGE: setup_ulist_notes
@@ -502,11 +505,11 @@
502
503 zCap[i] = 0;
504 zPw = P("pw");
505 zLogin = P("login");
506 if( strlen(zLogin)==0 ){
507 char *zRef = cgi_referer("setup_ulist");
508 style_header("User Creation Error");
509 @ <span class="loginError">Empty login not allowed.</span>
510 @
511 @ <p><a href="setup_uedit?id=%d(uid)&referer=%T(zRef)">
512 @ [Bummer]</a></p>
@@ -518,11 +521,11 @@
518 }else{
519 zPw = db_text(0, "SELECT pw FROM user WHERE uid=%d", uid);
520 }
521 zOldLogin = db_text(0, "SELECT login FROM user WHERE uid=%d", uid);
522 if( db_exists("SELECT 1 FROM user WHERE login=%Q AND uid!=%d",zLogin,uid) ){
523 char *zRef = cgi_referer("setup_ulist");
524 style_header("User Creation Error");
525 @ <span class="loginError">Login "%h(zLogin)" is already used by
526 @ a different user.</span>
527 @
528 @ <p><a href="setup_uedit?id=%d(uid)&referer=%T(zRef)">
@@ -566,11 +569,11 @@
566 blob_reset(&sql);
567 admin_log( "Updated user [%q] in all login groups "
568 "with capabilities [%q].",
569 zLogin, zCap );
570 if( zErr ){
571 char *zRef = cgi_referer("setup_ulist");
572 style_header("User Change Error");
573 admin_log( "Error updating user '%q': %s'.", zLogin, zErr );
574 @ <span class="loginError">%h(zErr)</span>
575 @
576 @ <p><a href="setup_uedit?id=%d(uid)&referer=%T(zRef)">
@@ -698,11 +701,11 @@
698 @ <label><input type="checkbox" name="av"%s(oa['v']) />
699 @ Developer%s(B('v'))</label><br />
700 @ <label><input type="checkbox" name="ad"%s(oa['d']) />
701 @ Delete%s(B('d'))</label><br />
702 @ <label><input type="checkbox" name="ae"%s(oa['e']) />
703 @ Email%s(B('e'))</label><br />
704 @ <label><input type="checkbox" name="ap"%s(oa['p']) />
705 @ Password%s(B('p'))</label><br />
706 @ <label><input type="checkbox" name="ai"%s(oa['i']) />
707 @ Check-In%s(B('i'))</label><br />
708 @ <label><input type="checkbox" name="ao"%s(oa['o']) />
@@ -752,11 +755,13 @@
752 @ <label><input type="checkbox" name="a4"%s(oa['4']) />
753 @ WriteTrusted Forum%s(B('4'))</label><br>
754 @ <label><input type="checkbox" name="a5"%s(oa['5']) />
755 @ Moderate Forum%s(B('5'))</label><br>
756 @ <label><input type="checkbox" name="a6"%s(oa['6']) />
757 @ Supervise Forum%s(B('6'))</label>
 
 
758 @ </td></tr>
759 @ </table>
760 @ </td>
761 @ </tr>
762 @ <tr>
@@ -900,12 +905,13 @@
900 @ <span class="usertype">anonymous</span>,
901 @ and <span class="usertype">nobody</span>.
902 @ </p></li>
903 @
904 @ <li><p>
905 @ The <span class="capability">EMail</span> privilege allows the display of
906 @ sensitive information such as the email address of users and contact
 
907 @ information on tickets. Recommended OFF for
908 @ <span class="usertype">anonymous</span> and for
909 @ <span class="usertype">nobody</span> but ON for
910 @ <span class="usertype">developer</span>.
911 @ </p></li>
912
--- src/setup.c
+++ src/setup.c
@@ -305,11 +305,12 @@
305 @ <tr><th valign="top">c</th>
306 @ <td><i>Append-Tkt:</i> Append to tickets</td></tr>
307 @ <tr><th valign="top">d</th>
308 @ <td><i>Delete:</i> Delete wiki and tickets</td></tr>
309 @ <tr><th valign="top">e</th>
310 @ <td><i>View-PII:</i> \
311 @ View sensitive data such as email addresses</td></tr>
312 @ <tr><th valign="top">f</th>
313 @ <td><i>New-Wiki:</i> Create new wiki pages</td></tr>
314 @ <tr><th valign="top">g</th>
315 @ <td><i>Clone:</i> Clone the repository</td></tr>
316 @ <tr><th valign="top">h</th>
@@ -361,11 +362,13 @@
362 @ <td><i>Forum-Trusted:</i> Add pre-approved forum posts </td></tr>
363 @ <tr><th valign="top">5</th>
364 @ <td><i>Forum-Moderator:</i> Approve or disapprove forum posts</td></tr>
365 @ <tr><th valign="top">6</th>
366 @ <td><i>Forum-Supervisor:</i> \
367 @ <tr><th valign="top">7</th>
368 @ <td><i>Email-Notify:</i> \
369 @ Sign up for email notifications</td></tr>
370 @ </table>
371 }
372
373 /*
374 ** WEBPAGE: setup_ulist_notes
@@ -502,11 +505,11 @@
505
506 zCap[i] = 0;
507 zPw = P("pw");
508 zLogin = P("login");
509 if( strlen(zLogin)==0 ){
510 const char *zRef = cgi_referer("setup_ulist");
511 style_header("User Creation Error");
512 @ <span class="loginError">Empty login not allowed.</span>
513 @
514 @ <p><a href="setup_uedit?id=%d(uid)&referer=%T(zRef)">
515 @ [Bummer]</a></p>
@@ -518,11 +521,11 @@
521 }else{
522 zPw = db_text(0, "SELECT pw FROM user WHERE uid=%d", uid);
523 }
524 zOldLogin = db_text(0, "SELECT login FROM user WHERE uid=%d", uid);
525 if( db_exists("SELECT 1 FROM user WHERE login=%Q AND uid!=%d",zLogin,uid) ){
526 const char *zRef = cgi_referer("setup_ulist");
527 style_header("User Creation Error");
528 @ <span class="loginError">Login "%h(zLogin)" is already used by
529 @ a different user.</span>
530 @
531 @ <p><a href="setup_uedit?id=%d(uid)&referer=%T(zRef)">
@@ -566,11 +569,11 @@
569 blob_reset(&sql);
570 admin_log( "Updated user [%q] in all login groups "
571 "with capabilities [%q].",
572 zLogin, zCap );
573 if( zErr ){
574 const char *zRef = cgi_referer("setup_ulist");
575 style_header("User Change Error");
576 admin_log( "Error updating user '%q': %s'.", zLogin, zErr );
577 @ <span class="loginError">%h(zErr)</span>
578 @
579 @ <p><a href="setup_uedit?id=%d(uid)&referer=%T(zRef)">
@@ -698,11 +701,11 @@
701 @ <label><input type="checkbox" name="av"%s(oa['v']) />
702 @ Developer%s(B('v'))</label><br />
703 @ <label><input type="checkbox" name="ad"%s(oa['d']) />
704 @ Delete%s(B('d'))</label><br />
705 @ <label><input type="checkbox" name="ae"%s(oa['e']) />
706 @ View-PII%s(B('e'))</label><br />
707 @ <label><input type="checkbox" name="ap"%s(oa['p']) />
708 @ Password%s(B('p'))</label><br />
709 @ <label><input type="checkbox" name="ai"%s(oa['i']) />
710 @ Check-In%s(B('i'))</label><br />
711 @ <label><input type="checkbox" name="ao"%s(oa['o']) />
@@ -752,11 +755,13 @@
755 @ <label><input type="checkbox" name="a4"%s(oa['4']) />
756 @ WriteTrusted Forum%s(B('4'))</label><br>
757 @ <label><input type="checkbox" name="a5"%s(oa['5']) />
758 @ Moderate Forum%s(B('5'))</label><br>
759 @ <label><input type="checkbox" name="a6"%s(oa['6']) />
760 @ Supervise Forum%s(B('6'))</label><br>
761 @ <label><input type="checkbox" name="a7"%s(oa['7']) />
762 @ Email Alerts%s(B('7'))</label>
763 @ </td></tr>
764 @ </table>
765 @ </td>
766 @ </tr>
767 @ <tr>
@@ -900,12 +905,13 @@
905 @ <span class="usertype">anonymous</span>,
906 @ and <span class="usertype">nobody</span>.
907 @ </p></li>
908 @
909 @ <li><p>
910 @ The <span class="capability">View-PII</span> privilege allows the display
911 @ of personally-identifiable information information such as the
912 @ email address of users and contact
913 @ information on tickets. Recommended OFF for
914 @ <span class="usertype">anonymous</span> and for
915 @ <span class="usertype">nobody</span> but ON for
916 @ <span class="usertype">developer</span>.
917 @ </p></li>
918

Keyboard Shortcuts

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