Fossil SCM
Use colored bullets to indicate the privileges of "nobody", "anonymous", and "developer" on the user edit page.
Commit
77bdac3b195d12f7e0f8fdd12cf9313cd4008559
Parent
3eac8bc0f925c19…
1 file changed
+75
-38
+75
-38
| --- src/setup.c | ||
| +++ src/setup.c | ||
| @@ -200,14 +200,10 @@ | ||
| 200 | 200 | @ <li><p> |
| 201 | 201 | @ Users with privilege <b>v</b> inherit the combined privileges of |
| 202 | 202 | @ <b>developer</b>, <b>anonymous</b>, and <b>nobody</b>. |
| 203 | 203 | @ </p></li> |
| 204 | 204 | @ |
| 205 | - @ <li><p> | |
| 206 | - @ A blank password disables login for a user. | |
| 207 | - @ </p></li> | |
| 208 | - @ | |
| 209 | 205 | @ </ol> |
| 210 | 206 | @ </td></tr></table> |
| 211 | 207 | style_footer(); |
| 212 | 208 | } |
| 213 | 209 | |
| @@ -231,10 +227,11 @@ | ||
| 231 | 227 | void user_edit(void){ |
| 232 | 228 | const char *zId, *zLogin, *zInfo, *zCap, *zPw; |
| 233 | 229 | char *oaa, *oas, *oar, *oaw, *oan, *oai, *oaj, *oao, *oap; |
| 234 | 230 | char *oak, *oad, *oac, *oaf, *oam, *oah, *oag, *oae; |
| 235 | 231 | char *oat, *oav, *oaz; |
| 232 | + const char *inherit[128]; | |
| 236 | 233 | int doWrite; |
| 237 | 234 | int uid; |
| 238 | 235 | int higherUser = 0; /* True if user being edited is SETUP and the */ |
| 239 | 236 | /* user doing the editing is ADMIN. Disallow editing */ |
| 240 | 237 | |
| @@ -367,10 +364,37 @@ | ||
| 367 | 364 | if( strchr(zCap, 't') ) oat = " checked"; |
| 368 | 365 | if( strchr(zCap, 'v') ) oav = " checked"; |
| 369 | 366 | if( strchr(zCap, 'w') ) oaw = " checked"; |
| 370 | 367 | if( strchr(zCap, 'z') ) oaz = " checked"; |
| 371 | 368 | } |
| 369 | + | |
| 370 | + /* figure out inherited permissions */ | |
| 371 | + memset(inherit, 0, sizeof(inherit)); | |
| 372 | + if( strcmp(zLogin, "developer") ){ | |
| 373 | + char *z1, *z2; | |
| 374 | + z1 = z2 = db_text("","SELECT cap FROM user WHERE login='developer'"); | |
| 375 | + while( *z1 ){ | |
| 376 | + inherit[0x7f & *(z1++)] = "<font color=\"red\">•</font>"; | |
| 377 | + } | |
| 378 | + free(z2); | |
| 379 | + } | |
| 380 | + if( strcmp(zLogin, "anonymous") ){ | |
| 381 | + char *z1, *z2; | |
| 382 | + z1 = z2 = db_text("","SELECT cap FROM user WHERE login='anonymous'"); | |
| 383 | + while( *z1 ){ | |
| 384 | + inherit[0x7f & *(z1++)] = "<font color=\"blue\">•</font>"; | |
| 385 | + } | |
| 386 | + free(z2); | |
| 387 | + } | |
| 388 | + if( strcmp(zLogin, "nobody") ){ | |
| 389 | + char *z1, *z2; | |
| 390 | + z1 = z2 = db_text("","SELECT cap FROM user WHERE login='nobody'"); | |
| 391 | + while( *z1 ){ | |
| 392 | + inherit[0x7f & *(z1++)] = "<font color=\"green\">•</font>"; | |
| 393 | + } | |
| 394 | + free(z2); | |
| 395 | + } | |
| 372 | 396 | |
| 373 | 397 | /* Begin generating the page |
| 374 | 398 | */ |
| 375 | 399 | style_submenu_element("Cancel", "Cancel", "setup_ulist"); |
| 376 | 400 | if( uid ){ |
| @@ -399,32 +423,33 @@ | ||
| 399 | 423 | @ <td><input type="text" name="info" size=40 value="%h(zInfo)"></td> |
| 400 | 424 | @ </tr> |
| 401 | 425 | @ <tr> |
| 402 | 426 | @ <td align="right" valign="top">Capabilities:</td> |
| 403 | 427 | @ <td> |
| 428 | +#define B(x) inherit[x] | |
| 404 | 429 | if( g.okSetup ){ |
| 405 | - @ <input type="checkbox" name="as"%s(oas)>Setup</input><br> | |
| 406 | - } | |
| 407 | - @ <input type="checkbox" name="aa"%s(oaa)>Admin</input><br> | |
| 408 | - @ <input type="checkbox" name="ad"%s(oad)>Delete</input><br> | |
| 409 | - @ <input type="checkbox" name="ae"%s(oad)>Email</input><br> | |
| 410 | - @ <input type="checkbox" name="ap"%s(oap)>Password</input><br> | |
| 411 | - @ <input type="checkbox" name="ai"%s(oai)>Check-In</input><br> | |
| 412 | - @ <input type="checkbox" name="ao"%s(oao)>Check-Out</input><br> | |
| 413 | - @ <input type="checkbox" name="ah"%s(oah)>History</input><br> | |
| 414 | - @ <input type="checkbox" name="av"%s(oav)>Developer</input><br> | |
| 415 | - @ <input type="checkbox" name="ag"%s(oag)>Clone</input><br> | |
| 416 | - @ <input type="checkbox" name="aj"%s(oaj)>Read Wiki</input><br> | |
| 417 | - @ <input type="checkbox" name="af"%s(oaf)>New Wiki</input><br> | |
| 418 | - @ <input type="checkbox" name="am"%s(oam)>Append Wiki</input><br> | |
| 419 | - @ <input type="checkbox" name="ak"%s(oak)>Write Wiki</input><br> | |
| 420 | - @ <input type="checkbox" name="ar"%s(oar)>Read Tkt</input><br> | |
| 421 | - @ <input type="checkbox" name="an"%s(oan)>New Tkt</input><br> | |
| 422 | - @ <input type="checkbox" name="ac"%s(oac)>Append Tkt</input><br> | |
| 423 | - @ <input type="checkbox" name="aw"%s(oaw)>Write Tkt</input><br> | |
| 424 | - @ <input type="checkbox" name="at"%s(oat)>Tkt Report</input><br> | |
| 425 | - @ <input type="checkbox" name="az"%s(oaz)>Download Zip</input> | |
| 430 | + @ <input type="checkbox" name="as"%s(oas)>%s(B('s'))Setup</input><br> | |
| 431 | + } | |
| 432 | + @ <input type="checkbox" name="aa"%s(oaa)>%s(B('a'))Admin</input><br> | |
| 433 | + @ <input type="checkbox" name="ad"%s(oad)>%s(B('d'))Delete</input><br> | |
| 434 | + @ <input type="checkbox" name="ae"%s(oae)>%s(B('e'))Email</input><br> | |
| 435 | + @ <input type="checkbox" name="ap"%s(oap)>%s(B('p'))Password</input><br> | |
| 436 | + @ <input type="checkbox" name="ai"%s(oai)>%s(B('i'))Check-In</input><br> | |
| 437 | + @ <input type="checkbox" name="ao"%s(oao)>%s(B('o'))Check-Out</input><br> | |
| 438 | + @ <input type="checkbox" name="ah"%s(oah)>%s(B('h'))History</input><br> | |
| 439 | + @ <input type="checkbox" name="av"%s(oav)>%s(B('v'))Developer</input><br> | |
| 440 | + @ <input type="checkbox" name="ag"%s(oag)>%s(B('g'))Clone</input><br> | |
| 441 | + @ <input type="checkbox" name="aj"%s(oaj)>%s(B('j'))Read Wiki</input><br> | |
| 442 | + @ <input type="checkbox" name="af"%s(oaf)>%s(B('f'))New Wiki</input><br> | |
| 443 | + @ <input type="checkbox" name="am"%s(oam)>%s(B('m'))Append Wiki</input><br> | |
| 444 | + @ <input type="checkbox" name="ak"%s(oak)>%s(B('k'))Write Wiki</input><br> | |
| 445 | + @ <input type="checkbox" name="ar"%s(oar)>%s(B('r'))Read Tkt</input><br> | |
| 446 | + @ <input type="checkbox" name="an"%s(oan)>%s(B('n'))New Tkt</input><br> | |
| 447 | + @ <input type="checkbox" name="ac"%s(oac)>%s(B('c'))Append Tkt</input><br> | |
| 448 | + @ <input type="checkbox" name="aw"%s(oaw)>%s(B('w'))Write Tkt</input><br> | |
| 449 | + @ <input type="checkbox" name="at"%s(oat)>%s(B('t'))Tkt Report</input><br> | |
| 450 | + @ <input type="checkbox" name="az"%s(oaz)>%s(B('z'))Download Zip</input> | |
| 426 | 451 | @ </td> |
| 427 | 452 | @ </tr> |
| 428 | 453 | @ <tr> |
| 429 | 454 | @ <td align="right">Password:</td> |
| 430 | 455 | if( strcmp(zLogin, "anonymous")==0 ){ |
| @@ -452,18 +477,34 @@ | ||
| 452 | 477 | @ User %h(zLogin) has Setup privileges and you only have Admin privileges |
| 453 | 478 | @ so you are not permitted to make changes to %h(zLogin). |
| 454 | 479 | @ </b></font></p></li> |
| 455 | 480 | @ |
| 456 | 481 | } |
| 457 | - @ | |
| 458 | 482 | @ <li><p> |
| 459 | 483 | @ The <b>Setup</b> user can make arbitrary configuration changes. |
| 460 | 484 | @ An <b>Admin</b> user can add other users and change user privileges |
| 461 | 485 | @ and reset user passwords. Both automatically get all other privileges |
| 462 | 486 | @ listed below. Use these two settings with discretion. |
| 463 | 487 | @ </p></li> |
| 464 | 488 | @ |
| 489 | + @ <li><p> | |
| 490 | + @ The "<font color="green"><big>•</big></font>" mark indicates | |
| 491 | + @ the privileges of "nobody" that are available to all users | |
| 492 | + @ regardless of whether or not they are logged in. | |
| 493 | + @ </p></li> | |
| 494 | + @ | |
| 495 | + @ <li><p> | |
| 496 | + @ The "<font color="blue"><big>•</big></font>" mark indicates | |
| 497 | + @ the privileges of "anonymous" that are inherited by all logged-in users. | |
| 498 | + @ </p></li> | |
| 499 | + @ | |
| 500 | + @ <li><p> | |
| 501 | + @ The "<font color="red"><big>•</big></font>" mark indicates | |
| 502 | + @ the privileges of "developer" that are inherited by all users with | |
| 503 | + @ the <b>Developer</b> privilege. | |
| 504 | + @ </p></li> | |
| 505 | + @ | |
| 465 | 506 | @ <li><p> |
| 466 | 507 | @ The <b>Delete</b> privilege give the user the ability to erase |
| 467 | 508 | @ wiki, tickets, and attachments that have been added by anonymous |
| 468 | 509 | @ users. This capability is intended for deletion of spam. The |
| 469 | 510 | @ delete capability is only in effect for 24 hours after the item |
| @@ -476,21 +517,16 @@ | ||
| 476 | 517 | @ user "nobody" to avoid problems with spiders trying to walk every |
| 477 | 518 | @ historical version of every baseline and file. |
| 478 | 519 | @ </p></li> |
| 479 | 520 | @ |
| 480 | 521 | @ <li><p> |
| 481 | - @ The <b>Zip</b> privilege allows a user to see the download as zip hyperlink | |
| 482 | - @ as well as permit access to the <tt>/zip</tt> page. It can be allowed for | |
| 483 | - @ user "nobody" to grant him access to download artifacts he know from the | |
| 484 | - @ server without giving him other rights like <b>Read</b> or <b>History</b>. | |
| 485 | - @ So automatic package dowloaders could be able to obtain the sources without | |
| 486 | - @ going thru the login procedure. | |
| 487 | - @ </p></li> | |
| 488 | - @ | |
| 489 | - @ <li><p> | |
| 490 | - @ The <b>Developer</b> privilege causes all privileges of the user | |
| 491 | - @ named "developer" to be inherited by this user. | |
| 522 | + @ The <b>Zip</b> privilege allows a user to see the "download as ZIP" | |
| 523 | + @ hyperlink and permits access to the <tt>/zip</tt> page. This allows | |
| 524 | + @ users to download ZIP archives without granting other rights like | |
| 525 | + @ <b>Read</b> or <b>History</b>. This privilege is recommended for | |
| 526 | + @ user <b>nobody</b> so that automatic package downloaders can obtain | |
| 527 | + @ the sources without going through the login procedure. | |
| 492 | 528 | @ </p></li> |
| 493 | 529 | @ |
| 494 | 530 | @ <li><p> |
| 495 | 531 | @ The <b>Check-in</b> privilege allows remote users to "push". |
| 496 | 532 | @ The <b>Check-out</b> privilege allows remote users to "pull". |
| @@ -513,11 +549,12 @@ | ||
| 513 | 549 | @ </p></li> |
| 514 | 550 | @ |
| 515 | 551 | @ <li><p> |
| 516 | 552 | @ The <b>EMail</b> privilege allows the display of sensitive information |
| 517 | 553 | @ such as the email address of users and contact information on tickets. |
| 518 | - @ Recommended OFF for "anonymous" and for "nobody". | |
| 554 | + @ Recommended OFF for "anonymous" and for "nobody" but ON for | |
| 555 | + @ "developer". | |
| 519 | 556 | @ </p></li> |
| 520 | 557 | @ |
| 521 | 558 | @ <li><p> |
| 522 | 559 | @ Login is prohibited if the password is an empty string. |
| 523 | 560 | @ </p></li> |
| 524 | 561 |
| --- src/setup.c | |
| +++ src/setup.c | |
| @@ -200,14 +200,10 @@ | |
| 200 | @ <li><p> |
| 201 | @ Users with privilege <b>v</b> inherit the combined privileges of |
| 202 | @ <b>developer</b>, <b>anonymous</b>, and <b>nobody</b>. |
| 203 | @ </p></li> |
| 204 | @ |
| 205 | @ <li><p> |
| 206 | @ A blank password disables login for a user. |
| 207 | @ </p></li> |
| 208 | @ |
| 209 | @ </ol> |
| 210 | @ </td></tr></table> |
| 211 | style_footer(); |
| 212 | } |
| 213 | |
| @@ -231,10 +227,11 @@ | |
| 231 | void user_edit(void){ |
| 232 | const char *zId, *zLogin, *zInfo, *zCap, *zPw; |
| 233 | char *oaa, *oas, *oar, *oaw, *oan, *oai, *oaj, *oao, *oap; |
| 234 | char *oak, *oad, *oac, *oaf, *oam, *oah, *oag, *oae; |
| 235 | char *oat, *oav, *oaz; |
| 236 | int doWrite; |
| 237 | int uid; |
| 238 | int higherUser = 0; /* True if user being edited is SETUP and the */ |
| 239 | /* user doing the editing is ADMIN. Disallow editing */ |
| 240 | |
| @@ -367,10 +364,37 @@ | |
| 367 | if( strchr(zCap, 't') ) oat = " checked"; |
| 368 | if( strchr(zCap, 'v') ) oav = " checked"; |
| 369 | if( strchr(zCap, 'w') ) oaw = " checked"; |
| 370 | if( strchr(zCap, 'z') ) oaz = " checked"; |
| 371 | } |
| 372 | |
| 373 | /* Begin generating the page |
| 374 | */ |
| 375 | style_submenu_element("Cancel", "Cancel", "setup_ulist"); |
| 376 | if( uid ){ |
| @@ -399,32 +423,33 @@ | |
| 399 | @ <td><input type="text" name="info" size=40 value="%h(zInfo)"></td> |
| 400 | @ </tr> |
| 401 | @ <tr> |
| 402 | @ <td align="right" valign="top">Capabilities:</td> |
| 403 | @ <td> |
| 404 | if( g.okSetup ){ |
| 405 | @ <input type="checkbox" name="as"%s(oas)>Setup</input><br> |
| 406 | } |
| 407 | @ <input type="checkbox" name="aa"%s(oaa)>Admin</input><br> |
| 408 | @ <input type="checkbox" name="ad"%s(oad)>Delete</input><br> |
| 409 | @ <input type="checkbox" name="ae"%s(oad)>Email</input><br> |
| 410 | @ <input type="checkbox" name="ap"%s(oap)>Password</input><br> |
| 411 | @ <input type="checkbox" name="ai"%s(oai)>Check-In</input><br> |
| 412 | @ <input type="checkbox" name="ao"%s(oao)>Check-Out</input><br> |
| 413 | @ <input type="checkbox" name="ah"%s(oah)>History</input><br> |
| 414 | @ <input type="checkbox" name="av"%s(oav)>Developer</input><br> |
| 415 | @ <input type="checkbox" name="ag"%s(oag)>Clone</input><br> |
| 416 | @ <input type="checkbox" name="aj"%s(oaj)>Read Wiki</input><br> |
| 417 | @ <input type="checkbox" name="af"%s(oaf)>New Wiki</input><br> |
| 418 | @ <input type="checkbox" name="am"%s(oam)>Append Wiki</input><br> |
| 419 | @ <input type="checkbox" name="ak"%s(oak)>Write Wiki</input><br> |
| 420 | @ <input type="checkbox" name="ar"%s(oar)>Read Tkt</input><br> |
| 421 | @ <input type="checkbox" name="an"%s(oan)>New Tkt</input><br> |
| 422 | @ <input type="checkbox" name="ac"%s(oac)>Append Tkt</input><br> |
| 423 | @ <input type="checkbox" name="aw"%s(oaw)>Write Tkt</input><br> |
| 424 | @ <input type="checkbox" name="at"%s(oat)>Tkt Report</input><br> |
| 425 | @ <input type="checkbox" name="az"%s(oaz)>Download Zip</input> |
| 426 | @ </td> |
| 427 | @ </tr> |
| 428 | @ <tr> |
| 429 | @ <td align="right">Password:</td> |
| 430 | if( strcmp(zLogin, "anonymous")==0 ){ |
| @@ -452,18 +477,34 @@ | |
| 452 | @ User %h(zLogin) has Setup privileges and you only have Admin privileges |
| 453 | @ so you are not permitted to make changes to %h(zLogin). |
| 454 | @ </b></font></p></li> |
| 455 | @ |
| 456 | } |
| 457 | @ |
| 458 | @ <li><p> |
| 459 | @ The <b>Setup</b> user can make arbitrary configuration changes. |
| 460 | @ An <b>Admin</b> user can add other users and change user privileges |
| 461 | @ and reset user passwords. Both automatically get all other privileges |
| 462 | @ listed below. Use these two settings with discretion. |
| 463 | @ </p></li> |
| 464 | @ |
| 465 | @ <li><p> |
| 466 | @ The <b>Delete</b> privilege give the user the ability to erase |
| 467 | @ wiki, tickets, and attachments that have been added by anonymous |
| 468 | @ users. This capability is intended for deletion of spam. The |
| 469 | @ delete capability is only in effect for 24 hours after the item |
| @@ -476,21 +517,16 @@ | |
| 476 | @ user "nobody" to avoid problems with spiders trying to walk every |
| 477 | @ historical version of every baseline and file. |
| 478 | @ </p></li> |
| 479 | @ |
| 480 | @ <li><p> |
| 481 | @ The <b>Zip</b> privilege allows a user to see the download as zip hyperlink |
| 482 | @ as well as permit access to the <tt>/zip</tt> page. It can be allowed for |
| 483 | @ user "nobody" to grant him access to download artifacts he know from the |
| 484 | @ server without giving him other rights like <b>Read</b> or <b>History</b>. |
| 485 | @ So automatic package dowloaders could be able to obtain the sources without |
| 486 | @ going thru the login procedure. |
| 487 | @ </p></li> |
| 488 | @ |
| 489 | @ <li><p> |
| 490 | @ The <b>Developer</b> privilege causes all privileges of the user |
| 491 | @ named "developer" to be inherited by this user. |
| 492 | @ </p></li> |
| 493 | @ |
| 494 | @ <li><p> |
| 495 | @ The <b>Check-in</b> privilege allows remote users to "push". |
| 496 | @ The <b>Check-out</b> privilege allows remote users to "pull". |
| @@ -513,11 +549,12 @@ | |
| 513 | @ </p></li> |
| 514 | @ |
| 515 | @ <li><p> |
| 516 | @ The <b>EMail</b> privilege allows the display of sensitive information |
| 517 | @ such as the email address of users and contact information on tickets. |
| 518 | @ Recommended OFF for "anonymous" and for "nobody". |
| 519 | @ </p></li> |
| 520 | @ |
| 521 | @ <li><p> |
| 522 | @ Login is prohibited if the password is an empty string. |
| 523 | @ </p></li> |
| 524 |
| --- src/setup.c | |
| +++ src/setup.c | |
| @@ -200,14 +200,10 @@ | |
| 200 | @ <li><p> |
| 201 | @ Users with privilege <b>v</b> inherit the combined privileges of |
| 202 | @ <b>developer</b>, <b>anonymous</b>, and <b>nobody</b>. |
| 203 | @ </p></li> |
| 204 | @ |
| 205 | @ </ol> |
| 206 | @ </td></tr></table> |
| 207 | style_footer(); |
| 208 | } |
| 209 | |
| @@ -231,10 +227,11 @@ | |
| 227 | void user_edit(void){ |
| 228 | const char *zId, *zLogin, *zInfo, *zCap, *zPw; |
| 229 | char *oaa, *oas, *oar, *oaw, *oan, *oai, *oaj, *oao, *oap; |
| 230 | char *oak, *oad, *oac, *oaf, *oam, *oah, *oag, *oae; |
| 231 | char *oat, *oav, *oaz; |
| 232 | const char *inherit[128]; |
| 233 | int doWrite; |
| 234 | int uid; |
| 235 | int higherUser = 0; /* True if user being edited is SETUP and the */ |
| 236 | /* user doing the editing is ADMIN. Disallow editing */ |
| 237 | |
| @@ -367,10 +364,37 @@ | |
| 364 | if( strchr(zCap, 't') ) oat = " checked"; |
| 365 | if( strchr(zCap, 'v') ) oav = " checked"; |
| 366 | if( strchr(zCap, 'w') ) oaw = " checked"; |
| 367 | if( strchr(zCap, 'z') ) oaz = " checked"; |
| 368 | } |
| 369 | |
| 370 | /* figure out inherited permissions */ |
| 371 | memset(inherit, 0, sizeof(inherit)); |
| 372 | if( strcmp(zLogin, "developer") ){ |
| 373 | char *z1, *z2; |
| 374 | z1 = z2 = db_text("","SELECT cap FROM user WHERE login='developer'"); |
| 375 | while( *z1 ){ |
| 376 | inherit[0x7f & *(z1++)] = "<font color=\"red\">•</font>"; |
| 377 | } |
| 378 | free(z2); |
| 379 | } |
| 380 | if( strcmp(zLogin, "anonymous") ){ |
| 381 | char *z1, *z2; |
| 382 | z1 = z2 = db_text("","SELECT cap FROM user WHERE login='anonymous'"); |
| 383 | while( *z1 ){ |
| 384 | inherit[0x7f & *(z1++)] = "<font color=\"blue\">•</font>"; |
| 385 | } |
| 386 | free(z2); |
| 387 | } |
| 388 | if( strcmp(zLogin, "nobody") ){ |
| 389 | char *z1, *z2; |
| 390 | z1 = z2 = db_text("","SELECT cap FROM user WHERE login='nobody'"); |
| 391 | while( *z1 ){ |
| 392 | inherit[0x7f & *(z1++)] = "<font color=\"green\">•</font>"; |
| 393 | } |
| 394 | free(z2); |
| 395 | } |
| 396 | |
| 397 | /* Begin generating the page |
| 398 | */ |
| 399 | style_submenu_element("Cancel", "Cancel", "setup_ulist"); |
| 400 | if( uid ){ |
| @@ -399,32 +423,33 @@ | |
| 423 | @ <td><input type="text" name="info" size=40 value="%h(zInfo)"></td> |
| 424 | @ </tr> |
| 425 | @ <tr> |
| 426 | @ <td align="right" valign="top">Capabilities:</td> |
| 427 | @ <td> |
| 428 | #define B(x) inherit[x] |
| 429 | if( g.okSetup ){ |
| 430 | @ <input type="checkbox" name="as"%s(oas)>%s(B('s'))Setup</input><br> |
| 431 | } |
| 432 | @ <input type="checkbox" name="aa"%s(oaa)>%s(B('a'))Admin</input><br> |
| 433 | @ <input type="checkbox" name="ad"%s(oad)>%s(B('d'))Delete</input><br> |
| 434 | @ <input type="checkbox" name="ae"%s(oae)>%s(B('e'))Email</input><br> |
| 435 | @ <input type="checkbox" name="ap"%s(oap)>%s(B('p'))Password</input><br> |
| 436 | @ <input type="checkbox" name="ai"%s(oai)>%s(B('i'))Check-In</input><br> |
| 437 | @ <input type="checkbox" name="ao"%s(oao)>%s(B('o'))Check-Out</input><br> |
| 438 | @ <input type="checkbox" name="ah"%s(oah)>%s(B('h'))History</input><br> |
| 439 | @ <input type="checkbox" name="av"%s(oav)>%s(B('v'))Developer</input><br> |
| 440 | @ <input type="checkbox" name="ag"%s(oag)>%s(B('g'))Clone</input><br> |
| 441 | @ <input type="checkbox" name="aj"%s(oaj)>%s(B('j'))Read Wiki</input><br> |
| 442 | @ <input type="checkbox" name="af"%s(oaf)>%s(B('f'))New Wiki</input><br> |
| 443 | @ <input type="checkbox" name="am"%s(oam)>%s(B('m'))Append Wiki</input><br> |
| 444 | @ <input type="checkbox" name="ak"%s(oak)>%s(B('k'))Write Wiki</input><br> |
| 445 | @ <input type="checkbox" name="ar"%s(oar)>%s(B('r'))Read Tkt</input><br> |
| 446 | @ <input type="checkbox" name="an"%s(oan)>%s(B('n'))New Tkt</input><br> |
| 447 | @ <input type="checkbox" name="ac"%s(oac)>%s(B('c'))Append Tkt</input><br> |
| 448 | @ <input type="checkbox" name="aw"%s(oaw)>%s(B('w'))Write Tkt</input><br> |
| 449 | @ <input type="checkbox" name="at"%s(oat)>%s(B('t'))Tkt Report</input><br> |
| 450 | @ <input type="checkbox" name="az"%s(oaz)>%s(B('z'))Download Zip</input> |
| 451 | @ </td> |
| 452 | @ </tr> |
| 453 | @ <tr> |
| 454 | @ <td align="right">Password:</td> |
| 455 | if( strcmp(zLogin, "anonymous")==0 ){ |
| @@ -452,18 +477,34 @@ | |
| 477 | @ User %h(zLogin) has Setup privileges and you only have Admin privileges |
| 478 | @ so you are not permitted to make changes to %h(zLogin). |
| 479 | @ </b></font></p></li> |
| 480 | @ |
| 481 | } |
| 482 | @ <li><p> |
| 483 | @ The <b>Setup</b> user can make arbitrary configuration changes. |
| 484 | @ An <b>Admin</b> user can add other users and change user privileges |
| 485 | @ and reset user passwords. Both automatically get all other privileges |
| 486 | @ listed below. Use these two settings with discretion. |
| 487 | @ </p></li> |
| 488 | @ |
| 489 | @ <li><p> |
| 490 | @ The "<font color="green"><big>•</big></font>" mark indicates |
| 491 | @ the privileges of "nobody" that are available to all users |
| 492 | @ regardless of whether or not they are logged in. |
| 493 | @ </p></li> |
| 494 | @ |
| 495 | @ <li><p> |
| 496 | @ The "<font color="blue"><big>•</big></font>" mark indicates |
| 497 | @ the privileges of "anonymous" that are inherited by all logged-in users. |
| 498 | @ </p></li> |
| 499 | @ |
| 500 | @ <li><p> |
| 501 | @ The "<font color="red"><big>•</big></font>" mark indicates |
| 502 | @ the privileges of "developer" that are inherited by all users with |
| 503 | @ the <b>Developer</b> privilege. |
| 504 | @ </p></li> |
| 505 | @ |
| 506 | @ <li><p> |
| 507 | @ The <b>Delete</b> privilege give the user the ability to erase |
| 508 | @ wiki, tickets, and attachments that have been added by anonymous |
| 509 | @ users. This capability is intended for deletion of spam. The |
| 510 | @ delete capability is only in effect for 24 hours after the item |
| @@ -476,21 +517,16 @@ | |
| 517 | @ user "nobody" to avoid problems with spiders trying to walk every |
| 518 | @ historical version of every baseline and file. |
| 519 | @ </p></li> |
| 520 | @ |
| 521 | @ <li><p> |
| 522 | @ The <b>Zip</b> privilege allows a user to see the "download as ZIP" |
| 523 | @ hyperlink and permits access to the <tt>/zip</tt> page. This allows |
| 524 | @ users to download ZIP archives without granting other rights like |
| 525 | @ <b>Read</b> or <b>History</b>. This privilege is recommended for |
| 526 | @ user <b>nobody</b> so that automatic package downloaders can obtain |
| 527 | @ the sources without going through the login procedure. |
| 528 | @ </p></li> |
| 529 | @ |
| 530 | @ <li><p> |
| 531 | @ The <b>Check-in</b> privilege allows remote users to "push". |
| 532 | @ The <b>Check-out</b> privilege allows remote users to "pull". |
| @@ -513,11 +549,12 @@ | |
| 549 | @ </p></li> |
| 550 | @ |
| 551 | @ <li><p> |
| 552 | @ The <b>EMail</b> privilege allows the display of sensitive information |
| 553 | @ such as the email address of users and contact information on tickets. |
| 554 | @ Recommended OFF for "anonymous" and for "nobody" but ON for |
| 555 | @ "developer". |
| 556 | @ </p></li> |
| 557 | @ |
| 558 | @ <li><p> |
| 559 | @ Login is prohibited if the password is an empty string. |
| 560 | @ </p></li> |
| 561 |