Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Omit the 'd' capability (the ability to delete wiki and tickets). This capability does not do anything. Apparently, it is a hold-over from the old CVSTrac code. |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
3941824d8547d8c78c310bbfba0b896e |
| User & Date: | drh 2020-03-12 10:50:56.007 |
References
|
2020-03-12
| ||
| 16:56 | An extension of [3941824d] to remove all mention of 'd' capability from the code, not just ifdef or comment it out. Also removes it from the docs and from the default capability set for Developer, dei -> ei. check-in: 55a7643938 user: wyoung tags: eradicate-d-cap | |
Context
|
2020-03-12
| ||
| 17:02 | Removed the favicon byte array added in support of the /favicon.ico URL handler. It's unused since [81b3ce3a1350eaa9], when that page began serving a GIF and now gets the same data from the aLogo byte array. check-in: 1b63f6894f user: wyoung tags: trunk | |
| 16:56 | An extension of [3941824d] to remove all mention of 'd' capability from the code, not just ifdef or comment it out. Also removes it from the docs and from the default capability set for Developer, dei -> ei. check-in: 55a7643938 user: wyoung tags: eradicate-d-cap | |
| 10:50 | Omit the 'd' capability (the ability to delete wiki and tickets). This capability does not do anything. Apparently, it is a hold-over from the old CVSTrac code. check-in: 3941824d85 user: drh tags: trunk | |
| 00:57 | Fix a long-standing error in a printf() specification on the /artifact_stats page that only caused problems when compiling on 32-bit windows using mingw32. check-in: afb4f74808 user: drh tags: trunk | |
Changes
Changes to src/capabilities.c.
| ︙ | ︙ | |||
240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 |
} aCap[] = {
{ 'a', CAPCLASS_SUPER, 0,
"Admin", "Create and delete users" },
{ 'b', CAPCLASS_WIKI|CAPCLASS_TKT, 0,
"Attach", "Add attchments to wiki or tickets" },
{ 'c', CAPCLASS_TKT, 0,
"Append-Tkt", "Append to existing tickets" },
{ 'd', CAPCLASS_WIKI|CAPCLASS_TKT, 0,
"Delete", "Delete wiki or tickets" },
{ 'e', CAPCLASS_DATA, 0,
"View-PII", "View sensitive info such as email addresses" },
{ 'f', CAPCLASS_WIKI, 0,
"New-Wiki", "Create new wiki pages" },
{ 'g', CAPCLASS_DATA, 0,
"Clone", "Clone the repository" },
{ 'h', CAPCLASS_OTHER, 0,
| > > | 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 |
} aCap[] = {
{ 'a', CAPCLASS_SUPER, 0,
"Admin", "Create and delete users" },
{ 'b', CAPCLASS_WIKI|CAPCLASS_TKT, 0,
"Attach", "Add attchments to wiki or tickets" },
{ 'c', CAPCLASS_TKT, 0,
"Append-Tkt", "Append to existing tickets" },
#if 0 /* Not Used */
{ 'd', CAPCLASS_WIKI|CAPCLASS_TKT, 0,
"Delete", "Delete wiki or tickets" },
#endif
{ 'e', CAPCLASS_DATA, 0,
"View-PII", "View sensitive info such as email addresses" },
{ 'f', CAPCLASS_WIKI, 0,
"New-Wiki", "Create new wiki pages" },
{ 'g', CAPCLASS_DATA, 0,
"Clone", "Clone the repository" },
{ 'h', CAPCLASS_OTHER, 0,
|
| ︙ | ︙ | |||
428 429 430 431 432 433 434 |
eType = 1;
}else{
eType = 0;
}
@ <td class="%s(azClass[eType])">%s(azType[eType])</td>
/* Ticket */
| | | 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 |
eType = 1;
}else{
eType = 0;
}
@ <td class="%s(azClass[eType])">%s(azType[eType])</td>
/* Ticket */
if( sqlite3_strglob("*[ascnqtw]*",zCap)==0 ){
eType = 2;
}else if( sqlite3_strglob("*r*",zCap)==0 ){
eType = 1;
}else{
eType = 0;
}
@ <td class="%s(azClass[eType])">%s(azType[eType])</td>
|
| ︙ | ︙ |
Changes to src/login.c.
| ︙ | ︙ | |||
1234 1235 1236 1237 1238 1239 1240 |
p->WrTForum = p->AdminForum =
p->EmailAlert = p->Announce = p->Debug = 1;
/* Fall thru into Read/Write */
case 'i': p->Read = p->Write = 1; break;
case 'o': p->Read = 1; break;
case 'z': p->Zip = 1; break;
| | | 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 |
p->WrTForum = p->AdminForum =
p->EmailAlert = p->Announce = p->Debug = 1;
/* Fall thru into Read/Write */
case 'i': p->Read = p->Write = 1; break;
case 'o': p->Read = 1; break;
case 'z': p->Zip = 1; break;
case 'd': p->Delete = 1; /* Not Used */ break;
case 'h': p->Hyperlink = 1; break;
case 'g': p->Clone = 1; break;
case 'p': p->Password = 1; break;
case 'j': p->RdWiki = 1; break;
case 'k': p->WrWiki = p->RdWiki = p->ApndWiki =1; break;
case 'm': p->ApndWiki = 1; break;
|
| ︙ | ︙ | |||
1318 1319 1320 1321 1322 1323 1324 |
FossilUserPerms *p = (flgs & LOGIN_ANON) ? &g.anon : &g.perm;
if( nCap<0 ) nCap = strlen(zCap);
for(i=0; i<nCap && rc && zCap[i]; i++){
switch( zCap[i] ){
case 'a': rc = p->Admin; break;
case 'b': rc = p->Attach; break;
case 'c': rc = p->ApndTkt; break;
| | | 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 |
FossilUserPerms *p = (flgs & LOGIN_ANON) ? &g.anon : &g.perm;
if( nCap<0 ) nCap = strlen(zCap);
for(i=0; i<nCap && rc && zCap[i]; i++){
switch( zCap[i] ){
case 'a': rc = p->Admin; break;
case 'b': rc = p->Attach; break;
case 'c': rc = p->ApndTkt; break;
case 'd': rc = p->Delete; break; /* Not used */
case 'e': rc = p->RdAddr; break;
case 'f': rc = p->NewWiki; break;
case 'g': rc = p->Clone; break;
case 'h': rc = p->Hyperlink; break;
case 'i': rc = p->Write; break;
case 'j': rc = p->RdWiki; break;
case 'k': rc = p->WrWiki; break;
|
| ︙ | ︙ |
Changes to src/main.c.
| ︙ | ︙ | |||
76 77 78 79 80 81 82 |
/*
** Holds flags for fossil user permissions.
*/
struct FossilUserPerms {
char Setup; /* s: use Setup screens on web interface */
char Admin; /* a: administrative permission */
| | | 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
/*
** Holds flags for fossil user permissions.
*/
struct FossilUserPerms {
char Setup; /* s: use Setup screens on web interface */
char Admin; /* a: administrative permission */
char Delete; /* d: delete wiki or tickets - Not Used */
char Password; /* p: change password */
char Query; /* q: create new reports */
char Write; /* i: xfer inbound. check-in */
char Read; /* o: xfer outbound. check-out */
char Hyperlink; /* h: enable the display of hyperlinks */
char Clone; /* g: clone */
char RdWiki; /* j: view wiki via web */
|
| ︙ | ︙ |
Changes to src/setupuser.c.
| ︙ | ︙ | |||
548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 |
}
@ <li><label><input type="checkbox" name="aa"%s(oa['a']) />
@ Admin%s(B('a'))</label>
@ <li><label><input type="checkbox" name="au"%s(oa['u']) />
@ Reader%s(B('u'))</label>
@ <li><label><input type="checkbox" name="av"%s(oa['v']) />
@ Developer%s(B('v'))</label>
@ <li><label><input type="checkbox" name="ad"%s(oa['d']) />
@ Delete%s(B('d'))</label>
@ <li><label><input type="checkbox" name="ae"%s(oa['e']) />
@ View-PII%s(B('e'))</label>
@ <li><label><input type="checkbox" name="ap"%s(oa['p']) />
@ Password%s(B('p'))</label>
@ <li><label><input type="checkbox" name="ai"%s(oa['i']) />
@ Check-In%s(B('i'))</label>
@ <li><label><input type="checkbox" name="ao"%s(oa['o']) />
| > > | 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 |
}
@ <li><label><input type="checkbox" name="aa"%s(oa['a']) />
@ Admin%s(B('a'))</label>
@ <li><label><input type="checkbox" name="au"%s(oa['u']) />
@ Reader%s(B('u'))</label>
@ <li><label><input type="checkbox" name="av"%s(oa['v']) />
@ Developer%s(B('v'))</label>
#if 0 /* Not Used */
@ <li><label><input type="checkbox" name="ad"%s(oa['d']) />
@ Delete%s(B('d'))</label>
#endif
@ <li><label><input type="checkbox" name="ae"%s(oa['e']) />
@ View-PII%s(B('e'))</label>
@ <li><label><input type="checkbox" name="ap"%s(oa['p']) />
@ Password%s(B('p'))</label>
@ <li><label><input type="checkbox" name="ai"%s(oa['i']) />
@ Check-In%s(B('i'))</label>
@ <li><label><input type="checkbox" name="ao"%s(oa['o']) />
|
| ︙ | ︙ |