Fossil SCM
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.
Commit
3941824d8547d8c78c310bbfba0b896e65b9579eec37351d697cf4d86f351833
Parent
afb4f7480840471…
4 files changed
+3
-1
+2
-2
+1
-1
+2
+3
-1
| --- src/capabilities.c | ||
| +++ src/capabilities.c | ||
| @@ -242,12 +242,14 @@ | ||
| 242 | 242 | "Admin", "Create and delete users" }, |
| 243 | 243 | { 'b', CAPCLASS_WIKI|CAPCLASS_TKT, 0, |
| 244 | 244 | "Attach", "Add attchments to wiki or tickets" }, |
| 245 | 245 | { 'c', CAPCLASS_TKT, 0, |
| 246 | 246 | "Append-Tkt", "Append to existing tickets" }, |
| 247 | +#if 0 /* Not Used */ | |
| 247 | 248 | { 'd', CAPCLASS_WIKI|CAPCLASS_TKT, 0, |
| 248 | 249 | "Delete", "Delete wiki or tickets" }, |
| 250 | +#endif | |
| 249 | 251 | { 'e', CAPCLASS_DATA, 0, |
| 250 | 252 | "View-PII", "View sensitive info such as email addresses" }, |
| 251 | 253 | { 'f', CAPCLASS_WIKI, 0, |
| 252 | 254 | "New-Wiki", "Create new wiki pages" }, |
| 253 | 255 | { 'g', CAPCLASS_DATA, 0, |
| @@ -430,11 +432,11 @@ | ||
| 430 | 432 | eType = 0; |
| 431 | 433 | } |
| 432 | 434 | @ <td class="%s(azClass[eType])">%s(azType[eType])</td> |
| 433 | 435 | |
| 434 | 436 | /* Ticket */ |
| 435 | - if( sqlite3_strglob("*[ascdnqtw]*",zCap)==0 ){ | |
| 437 | + if( sqlite3_strglob("*[ascnqtw]*",zCap)==0 ){ | |
| 436 | 438 | eType = 2; |
| 437 | 439 | }else if( sqlite3_strglob("*r*",zCap)==0 ){ |
| 438 | 440 | eType = 1; |
| 439 | 441 | }else{ |
| 440 | 442 | eType = 0; |
| 441 | 443 |
| --- src/capabilities.c | |
| +++ src/capabilities.c | |
| @@ -242,12 +242,14 @@ | |
| 242 | "Admin", "Create and delete users" }, |
| 243 | { 'b', CAPCLASS_WIKI|CAPCLASS_TKT, 0, |
| 244 | "Attach", "Add attchments to wiki or tickets" }, |
| 245 | { 'c', CAPCLASS_TKT, 0, |
| 246 | "Append-Tkt", "Append to existing tickets" }, |
| 247 | { 'd', CAPCLASS_WIKI|CAPCLASS_TKT, 0, |
| 248 | "Delete", "Delete wiki or tickets" }, |
| 249 | { 'e', CAPCLASS_DATA, 0, |
| 250 | "View-PII", "View sensitive info such as email addresses" }, |
| 251 | { 'f', CAPCLASS_WIKI, 0, |
| 252 | "New-Wiki", "Create new wiki pages" }, |
| 253 | { 'g', CAPCLASS_DATA, 0, |
| @@ -430,11 +432,11 @@ | |
| 430 | eType = 0; |
| 431 | } |
| 432 | @ <td class="%s(azClass[eType])">%s(azType[eType])</td> |
| 433 | |
| 434 | /* Ticket */ |
| 435 | if( sqlite3_strglob("*[ascdnqtw]*",zCap)==0 ){ |
| 436 | eType = 2; |
| 437 | }else if( sqlite3_strglob("*r*",zCap)==0 ){ |
| 438 | eType = 1; |
| 439 | }else{ |
| 440 | eType = 0; |
| 441 |
| --- src/capabilities.c | |
| +++ src/capabilities.c | |
| @@ -242,12 +242,14 @@ | |
| 242 | "Admin", "Create and delete users" }, |
| 243 | { 'b', CAPCLASS_WIKI|CAPCLASS_TKT, 0, |
| 244 | "Attach", "Add attchments to wiki or tickets" }, |
| 245 | { 'c', CAPCLASS_TKT, 0, |
| 246 | "Append-Tkt", "Append to existing tickets" }, |
| 247 | #if 0 /* Not Used */ |
| 248 | { 'd', CAPCLASS_WIKI|CAPCLASS_TKT, 0, |
| 249 | "Delete", "Delete wiki or tickets" }, |
| 250 | #endif |
| 251 | { 'e', CAPCLASS_DATA, 0, |
| 252 | "View-PII", "View sensitive info such as email addresses" }, |
| 253 | { 'f', CAPCLASS_WIKI, 0, |
| 254 | "New-Wiki", "Create new wiki pages" }, |
| 255 | { 'g', CAPCLASS_DATA, 0, |
| @@ -430,11 +432,11 @@ | |
| 432 | eType = 0; |
| 433 | } |
| 434 | @ <td class="%s(azClass[eType])">%s(azType[eType])</td> |
| 435 | |
| 436 | /* Ticket */ |
| 437 | if( sqlite3_strglob("*[ascnqtw]*",zCap)==0 ){ |
| 438 | eType = 2; |
| 439 | }else if( sqlite3_strglob("*r*",zCap)==0 ){ |
| 440 | eType = 1; |
| 441 | }else{ |
| 442 | eType = 0; |
| 443 |
+2
-2
| --- src/login.c | ||
| +++ src/login.c | ||
| @@ -1236,11 +1236,11 @@ | ||
| 1236 | 1236 | /* Fall thru into Read/Write */ |
| 1237 | 1237 | case 'i': p->Read = p->Write = 1; break; |
| 1238 | 1238 | case 'o': p->Read = 1; break; |
| 1239 | 1239 | case 'z': p->Zip = 1; break; |
| 1240 | 1240 | |
| 1241 | - case 'd': p->Delete = 1; break; | |
| 1241 | + case 'd': p->Delete = 1; /* Not Used */ break; | |
| 1242 | 1242 | case 'h': p->Hyperlink = 1; break; |
| 1243 | 1243 | case 'g': p->Clone = 1; break; |
| 1244 | 1244 | case 'p': p->Password = 1; break; |
| 1245 | 1245 | |
| 1246 | 1246 | case 'j': p->RdWiki = 1; break; |
| @@ -1320,11 +1320,11 @@ | ||
| 1320 | 1320 | for(i=0; i<nCap && rc && zCap[i]; i++){ |
| 1321 | 1321 | switch( zCap[i] ){ |
| 1322 | 1322 | case 'a': rc = p->Admin; break; |
| 1323 | 1323 | case 'b': rc = p->Attach; break; |
| 1324 | 1324 | case 'c': rc = p->ApndTkt; break; |
| 1325 | - case 'd': rc = p->Delete; break; | |
| 1325 | + case 'd': rc = p->Delete; break; /* Not used */ | |
| 1326 | 1326 | case 'e': rc = p->RdAddr; break; |
| 1327 | 1327 | case 'f': rc = p->NewWiki; break; |
| 1328 | 1328 | case 'g': rc = p->Clone; break; |
| 1329 | 1329 | case 'h': rc = p->Hyperlink; break; |
| 1330 | 1330 | case 'i': rc = p->Write; break; |
| 1331 | 1331 |
| --- src/login.c | |
| +++ src/login.c | |
| @@ -1236,11 +1236,11 @@ | |
| 1236 | /* Fall thru into Read/Write */ |
| 1237 | case 'i': p->Read = p->Write = 1; break; |
| 1238 | case 'o': p->Read = 1; break; |
| 1239 | case 'z': p->Zip = 1; break; |
| 1240 | |
| 1241 | case 'd': p->Delete = 1; break; |
| 1242 | case 'h': p->Hyperlink = 1; break; |
| 1243 | case 'g': p->Clone = 1; break; |
| 1244 | case 'p': p->Password = 1; break; |
| 1245 | |
| 1246 | case 'j': p->RdWiki = 1; break; |
| @@ -1320,11 +1320,11 @@ | |
| 1320 | for(i=0; i<nCap && rc && zCap[i]; i++){ |
| 1321 | switch( zCap[i] ){ |
| 1322 | case 'a': rc = p->Admin; break; |
| 1323 | case 'b': rc = p->Attach; break; |
| 1324 | case 'c': rc = p->ApndTkt; break; |
| 1325 | case 'd': rc = p->Delete; break; |
| 1326 | case 'e': rc = p->RdAddr; break; |
| 1327 | case 'f': rc = p->NewWiki; break; |
| 1328 | case 'g': rc = p->Clone; break; |
| 1329 | case 'h': rc = p->Hyperlink; break; |
| 1330 | case 'i': rc = p->Write; break; |
| 1331 |
| --- src/login.c | |
| +++ src/login.c | |
| @@ -1236,11 +1236,11 @@ | |
| 1236 | /* Fall thru into Read/Write */ |
| 1237 | case 'i': p->Read = p->Write = 1; break; |
| 1238 | case 'o': p->Read = 1; break; |
| 1239 | case 'z': p->Zip = 1; break; |
| 1240 | |
| 1241 | case 'd': p->Delete = 1; /* Not Used */ break; |
| 1242 | case 'h': p->Hyperlink = 1; break; |
| 1243 | case 'g': p->Clone = 1; break; |
| 1244 | case 'p': p->Password = 1; break; |
| 1245 | |
| 1246 | case 'j': p->RdWiki = 1; break; |
| @@ -1320,11 +1320,11 @@ | |
| 1320 | for(i=0; i<nCap && rc && zCap[i]; i++){ |
| 1321 | switch( zCap[i] ){ |
| 1322 | case 'a': rc = p->Admin; break; |
| 1323 | case 'b': rc = p->Attach; break; |
| 1324 | case 'c': rc = p->ApndTkt; break; |
| 1325 | case 'd': rc = p->Delete; break; /* Not used */ |
| 1326 | case 'e': rc = p->RdAddr; break; |
| 1327 | case 'f': rc = p->NewWiki; break; |
| 1328 | case 'g': rc = p->Clone; break; |
| 1329 | case 'h': rc = p->Hyperlink; break; |
| 1330 | case 'i': rc = p->Write; break; |
| 1331 |
+1
-1
| --- src/main.c | ||
| +++ src/main.c | ||
| @@ -78,11 +78,11 @@ | ||
| 78 | 78 | ** Holds flags for fossil user permissions. |
| 79 | 79 | */ |
| 80 | 80 | struct FossilUserPerms { |
| 81 | 81 | char Setup; /* s: use Setup screens on web interface */ |
| 82 | 82 | char Admin; /* a: administrative permission */ |
| 83 | - char Delete; /* d: delete wiki or tickets */ | |
| 83 | + char Delete; /* d: delete wiki or tickets - Not Used */ | |
| 84 | 84 | char Password; /* p: change password */ |
| 85 | 85 | char Query; /* q: create new reports */ |
| 86 | 86 | char Write; /* i: xfer inbound. check-in */ |
| 87 | 87 | char Read; /* o: xfer outbound. check-out */ |
| 88 | 88 | char Hyperlink; /* h: enable the display of hyperlinks */ |
| 89 | 89 |
| --- src/main.c | |
| +++ src/main.c | |
| @@ -78,11 +78,11 @@ | |
| 78 | ** Holds flags for fossil user permissions. |
| 79 | */ |
| 80 | struct FossilUserPerms { |
| 81 | char Setup; /* s: use Setup screens on web interface */ |
| 82 | char Admin; /* a: administrative permission */ |
| 83 | char Delete; /* d: delete wiki or tickets */ |
| 84 | char Password; /* p: change password */ |
| 85 | char Query; /* q: create new reports */ |
| 86 | char Write; /* i: xfer inbound. check-in */ |
| 87 | char Read; /* o: xfer outbound. check-out */ |
| 88 | char Hyperlink; /* h: enable the display of hyperlinks */ |
| 89 |
| --- src/main.c | |
| +++ src/main.c | |
| @@ -78,11 +78,11 @@ | |
| 78 | ** Holds flags for fossil user permissions. |
| 79 | */ |
| 80 | struct FossilUserPerms { |
| 81 | char Setup; /* s: use Setup screens on web interface */ |
| 82 | char Admin; /* a: administrative permission */ |
| 83 | char Delete; /* d: delete wiki or tickets - Not Used */ |
| 84 | char Password; /* p: change password */ |
| 85 | char Query; /* q: create new reports */ |
| 86 | char Write; /* i: xfer inbound. check-in */ |
| 87 | char Read; /* o: xfer outbound. check-out */ |
| 88 | char Hyperlink; /* h: enable the display of hyperlinks */ |
| 89 |
+2
| --- src/setupuser.c | ||
| +++ src/setupuser.c | ||
| @@ -550,12 +550,14 @@ | ||
| 550 | 550 | @ Admin%s(B('a'))</label> |
| 551 | 551 | @ <li><label><input type="checkbox" name="au"%s(oa['u']) /> |
| 552 | 552 | @ Reader%s(B('u'))</label> |
| 553 | 553 | @ <li><label><input type="checkbox" name="av"%s(oa['v']) /> |
| 554 | 554 | @ Developer%s(B('v'))</label> |
| 555 | +#if 0 /* Not Used */ | |
| 555 | 556 | @ <li><label><input type="checkbox" name="ad"%s(oa['d']) /> |
| 556 | 557 | @ Delete%s(B('d'))</label> |
| 558 | +#endif | |
| 557 | 559 | @ <li><label><input type="checkbox" name="ae"%s(oa['e']) /> |
| 558 | 560 | @ View-PII%s(B('e'))</label> |
| 559 | 561 | @ <li><label><input type="checkbox" name="ap"%s(oa['p']) /> |
| 560 | 562 | @ Password%s(B('p'))</label> |
| 561 | 563 | @ <li><label><input type="checkbox" name="ai"%s(oa['i']) /> |
| 562 | 564 |
| --- src/setupuser.c | |
| +++ src/setupuser.c | |
| @@ -550,12 +550,14 @@ | |
| 550 | @ Admin%s(B('a'))</label> |
| 551 | @ <li><label><input type="checkbox" name="au"%s(oa['u']) /> |
| 552 | @ Reader%s(B('u'))</label> |
| 553 | @ <li><label><input type="checkbox" name="av"%s(oa['v']) /> |
| 554 | @ Developer%s(B('v'))</label> |
| 555 | @ <li><label><input type="checkbox" name="ad"%s(oa['d']) /> |
| 556 | @ Delete%s(B('d'))</label> |
| 557 | @ <li><label><input type="checkbox" name="ae"%s(oa['e']) /> |
| 558 | @ View-PII%s(B('e'))</label> |
| 559 | @ <li><label><input type="checkbox" name="ap"%s(oa['p']) /> |
| 560 | @ Password%s(B('p'))</label> |
| 561 | @ <li><label><input type="checkbox" name="ai"%s(oa['i']) /> |
| 562 |
| --- src/setupuser.c | |
| +++ src/setupuser.c | |
| @@ -550,12 +550,14 @@ | |
| 550 | @ Admin%s(B('a'))</label> |
| 551 | @ <li><label><input type="checkbox" name="au"%s(oa['u']) /> |
| 552 | @ Reader%s(B('u'))</label> |
| 553 | @ <li><label><input type="checkbox" name="av"%s(oa['v']) /> |
| 554 | @ Developer%s(B('v'))</label> |
| 555 | #if 0 /* Not Used */ |
| 556 | @ <li><label><input type="checkbox" name="ad"%s(oa['d']) /> |
| 557 | @ Delete%s(B('d'))</label> |
| 558 | #endif |
| 559 | @ <li><label><input type="checkbox" name="ae"%s(oa['e']) /> |
| 560 | @ View-PII%s(B('e'))</label> |
| 561 | @ <li><label><input type="checkbox" name="ap"%s(oa['p']) /> |
| 562 | @ Password%s(B('p'))</label> |
| 563 | @ <li><label><input type="checkbox" name="ai"%s(oa['i']) /> |
| 564 |