Fossil SCM

Merged in inherit-priv-mark-sub branch (readability improvements for user administration page).

stephan 2014-09-26 16:35 trunk merge
Commit 4bba5e1ca4a0d34d1bab620916a8a5973cd6ea28
1 file changed +61 -61
+61 -61
--- src/setup.c
+++ src/setup.c
@@ -441,38 +441,38 @@
441441
if( fossil_strcmp(zLogin, "developer") ){
442442
char *z1, *z2;
443443
z1 = z2 = db_text(0,"SELECT cap FROM user WHERE login='developer'");
444444
while( z1 && *z1 ){
445445
inherit[0x7f & *(z1++)] =
446
- "<span class=\"ueditInheritDeveloper\">&bull;</span>";
446
+ "<span class=\"ueditInheritDeveloper\"><sub>D</sub></span>";
447447
}
448448
free(z2);
449449
}
450450
if( fossil_strcmp(zLogin, "reader") ){
451451
char *z1, *z2;
452452
z1 = z2 = db_text(0,"SELECT cap FROM user WHERE login='reader'");
453453
while( z1 && *z1 ){
454454
inherit[0x7f & *(z1++)] =
455
- "<span class=\"ueditInheritReader\">&bull;</span>";
455
+ "<span class=\"ueditInheritReader\"><sub>R</sub></span>";
456456
}
457457
free(z2);
458458
}
459459
if( fossil_strcmp(zLogin, "anonymous") ){
460460
char *z1, *z2;
461461
z1 = z2 = db_text(0,"SELECT cap FROM user WHERE login='anonymous'");
462462
while( z1 && *z1 ){
463463
inherit[0x7f & *(z1++)] =
464
- "<span class=\"ueditInheritAnonymous\">&bull;</span>";
464
+ "<span class=\"ueditInheritAnonymous\"><sub>A</sub></span>";
465465
}
466466
free(z2);
467467
}
468468
if( fossil_strcmp(zLogin, "nobody") ){
469469
char *z1, *z2;
470470
z1 = z2 = db_text(0,"SELECT cap FROM user WHERE login='nobody'");
471471
while( z1 && *z1 ){
472472
inherit[0x7f & *(z1++)] =
473
- "<span class=\"ueditInheritNobody\">&bull;</span>";
473
+ "<span class=\"ueditInheritNobody\"><sub>N</sub></span>";
474474
}
475475
free(z2);
476476
}
477477
478478
/* Begin generating the page
@@ -516,63 +516,63 @@
516516
@ <td class="usetupEditLabel">Capabilities:</td>
517517
@ <td>
518518
#define B(x) inherit[x]
519519
@ <table border=0><tr><td valign="top">
520520
if( g.perm.Setup ){
521
- @ <label><input type="checkbox" name="as"%s(oa['s']) />%s(B('s'))Setup
522
- @ </label><br />
523
- }
524
- @ <label><input type="checkbox" name="aa"%s(oa['a']) />%s(B('a'))Admin
525
- @ </label><br />
526
- @ <label><input type="checkbox" name="ad"%s(oa['d']) />%s(B('d'))Delete
527
- @ </label><br />
528
- @ <label><input type="checkbox" name="ae"%s(oa['e']) />%s(B('e'))Email
529
- @ </label><br />
530
- @ <label><input type="checkbox" name="ap"%s(oa['p']) />%s(B('p'))Password
531
- @ </label><br />
532
- @ <label><input type="checkbox" name="ai"%s(oa['i']) />%s(B('i'))Check-In
533
- @ </label><br />
534
- @ <label><input type="checkbox" name="ao"%s(oa['o']) />%s(B('o'))Check-Out
535
- @ </label><br />
536
- @ <label><input type="checkbox" name="ah"%s(oa['h']) />%s(B('h'))Hyperlinks
537
- @ </label><br />
538
- @ <label><input type="checkbox" name="ab"%s(oa['b']) />%s(B('b'))Attachments
539
- @ </label><br />
540
- @ </td><td><td width="40"></td><td valign="top">
541
- @ <label><input type="checkbox" name="au"%s(oa['u']) />%s(B('u'))Reader
542
- @ </label><br />
543
- @ <label><input type="checkbox" name="av"%s(oa['v']) />%s(B('v'))Developer
544
- @ </label><br />
545
- @ <label><input type="checkbox" name="ag"%s(oa['g']) />%s(B('g'))Clone
546
- @ </label><br />
547
- @ <label><input type="checkbox" name="aj"%s(oa['j']) />%s(B('j'))Read Wiki
548
- @ </label><br />
549
- @ <label><input type="checkbox" name="af"%s(oa['f']) />%s(B('f'))New Wiki
550
- @ </label><br />
551
- @ <label><input type="checkbox" name="am"%s(oa['m']) />%s(B('m'))Append Wiki
552
- @ </label><br />
553
- @ <label><input type="checkbox" name="ak"%s(oa['k']) />%s(B('k'))Write Wiki
554
- @ </label><br />
555
- @ <label><input type="checkbox" name="al"%s(oa['l']) />%s(B('l'))Moderate
556
- @ Wiki</label><br />
557
- @ </td><td><td width="40"></td><td valign="top">
558
- @ <label><input type="checkbox" name="ar"%s(oa['r']) />%s(B('r'))Read Ticket
559
- @ </label><br />
560
- @ <label><input type="checkbox" name="an"%s(oa['n']) />%s(B('n'))New Tickets
561
- @ </label><br />
562
- @ <label><input type="checkbox" name="ac"%s(oa['c']) />%s(B('c'))Append
563
- @ To Ticket </label><br />
564
- @ <label><input type="checkbox" name="aw"%s(oa['w']) />%s(B('w'))Write
565
- @ Tickets </label><br />
566
- @ <label><input type="checkbox" name="aq"%s(oa['q']) />%s(B('q'))Moderate
567
- @ Tickets </label><br />
568
- @ <label><input type="checkbox" name="at"%s(oa['t']) />%s(B('t'))Ticket
569
- @ Report </label><br />
570
- @ <label><input type="checkbox" name="ax"%s(oa['x']) />%s(B('x'))Private
571
- @ </label><br />
572
- @ <label><input type="checkbox" name="az"%s(oa['z']) />%s(B('z'))Download
573
- @ Zip </label>
521
+ @ <label><input type="checkbox" name="as"%s(oa['s']) />
522
+ @ Setup%s(B('s'))</label><br />
523
+ }
524
+ @ <label><input type="checkbox" name="aa"%s(oa['a']) />
525
+ @ Admin%s(B('a'))</label><br />
526
+ @ <label><input type="checkbox" name="ad"%s(oa['d']) />
527
+ @ Delete%s(B('d'))</label><br />
528
+ @ <label><input type="checkbox" name="ae"%s(oa['e']) />
529
+ @ Email%s(B('e'))</label><br />
530
+ @ <label><input type="checkbox" name="ap"%s(oa['p']) />
531
+ @ Password%s(B('p'))</label><br />
532
+ @ <label><input type="checkbox" name="ai"%s(oa['i']) />
533
+ @ Check-In%s(B('i'))</label><br />
534
+ @ <label><input type="checkbox" name="ao"%s(oa['o']) />
535
+ @ Check-Out%s(B('o'))</label><br />
536
+ @ <label><input type="checkbox" name="ah"%s(oa['h']) />
537
+ @ Hyperlinks%s(B('h'))</label><br />
538
+ @ <label><input type="checkbox" name="ab"%s(oa['b']) />
539
+ @ Attachments%s(B('b'))</label><br />
540
+ @ </td><td><td width="40"></td><td valign="top">
541
+ @ <label><input type="checkbox" name="au"%s(oa['u']) />
542
+ @ Reader%s(B('u'))</label><br />
543
+ @ <label><input type="checkbox" name="av"%s(oa['v']) />
544
+ @ Developer%s(B('v'))</label><br />
545
+ @ <label><input type="checkbox" name="ag"%s(oa['g']) />
546
+ @ Clone%s(B('g'))</label><br />
547
+ @ <label><input type="checkbox" name="aj"%s(oa['j']) />
548
+ @ Read Wiki%s(B('j'))</label><br />
549
+ @ <label><input type="checkbox" name="af"%s(oa['f']) />
550
+ @ New Wiki%s(B('f'))</label><br />
551
+ @ <label><input type="checkbox" name="am"%s(oa['m']) />
552
+ @ Append Wiki%s(B('m'))</label><br />
553
+ @ <label><input type="checkbox" name="ak"%s(oa['k']) />
554
+ @ Write Wiki%s(B('k'))</label><br />
555
+ @ <label><input type="checkbox" name="al"%s(oa['l']) />
556
+ @ Moderate Wiki%s(B('l'))</label><br />
557
+ @ </td><td><td width="40"></td><td valign="top">
558
+ @ <label><input type="checkbox" name="ar"%s(oa['r']) />
559
+ @ Read Ticket%s(B('r'))</label><br />
560
+ @ <label><input type="checkbox" name="an"%s(oa['n']) />
561
+ @ New Tickets%s(B('n'))</label><br />
562
+ @ <label><input type="checkbox" name="ac"%s(oa['c']) />
563
+ @ Append To Ticket%s(B('c'))</label><br />
564
+ @ <label><input type="checkbox" name="aw"%s(oa['w']) />
565
+ @ Write Tickets%s(B('w'))</label><br />
566
+ @ <label><input type="checkbox" name="aq"%s(oa['q']) />
567
+ @ Moderate Tickets%s(B('q'))</label><br />
568
+ @ <label><input type="checkbox" name="at"%s(oa['t']) />
569
+ @ Ticket Report%s(B('t'))</label><br />
570
+ @ <label><input type="checkbox" name="ax"%s(oa['x']) />
571
+ @ Private%s(B('x'))</label><br />
572
+ @ <label><input type="checkbox" name="az"%s(oa['z']) />
573
+ @ Download Zip%s(B('z'))</label>
574574
@ </td></tr></table>
575575
@ </td>
576576
@ </tr>
577577
if( !login_is_special(zLogin) ){
578578
@ <tr>
@@ -622,30 +622,30 @@
622622
@ and reset user passwords. Both automatically get all other privileges
623623
@ listed below. Use these two settings with discretion.
624624
@ </p></li>
625625
@
626626
@ <li><p>
627
- @ The "<span class="ueditInheritNobody"><big>&bull;</big></span>" mark
627
+ @ The "<span class="ueditInheritNobody"><sub>N</sub></span>" subscript suffix
628628
@ indicates the privileges of <span class="usertype">nobody</span> that
629629
@ are available to all users regardless of whether or not they are logged in.
630630
@ </p></li>
631631
@
632632
@ <li><p>
633
- @ The "<span class="ueditInheritAnonymous"><big>&bull;</big></span>" mark
633
+ @ The "<span class="ueditInheritAnonymous"><sub>A</sub></span>" subscript suffix
634634
@ indicates the privileges of <span class="usertype">anonymous</span> that
635635
@ are inherited by all logged-in users.
636636
@ </p></li>
637637
@
638638
@ <li><p>
639
- @ The "<span class="ueditInheritDeveloper"><big>&bull;</big></span>" mark
639
+ @ The "<span class="ueditInheritDeveloper"><sub>D</sub></span>" subscript suffix
640640
@ indicates the privileges of <span class="usertype">developer</span> that
641641
@ are inherited by all users with the
642642
@ <span class="capability">Developer</span> privilege.
643643
@ </p></li>
644644
@
645645
@ <li><p>
646
- @ The "<span class="ueditInheritReader"><big>&bull;</big></span>" mark
646
+ @ The "<span class="ueditInheritReader"><sub>R</sub></span>" subscript suffix
647647
@ indicates the privileges of <span class="usertype">reader</span> that
648648
@ are inherited by all users with the <span class="capability">Reader</span>
649649
@ privilege.
650650
@ </p></li>
651651
@
652652
--- src/setup.c
+++ src/setup.c
@@ -441,38 +441,38 @@
441 if( fossil_strcmp(zLogin, "developer") ){
442 char *z1, *z2;
443 z1 = z2 = db_text(0,"SELECT cap FROM user WHERE login='developer'");
444 while( z1 && *z1 ){
445 inherit[0x7f & *(z1++)] =
446 "<span class=\"ueditInheritDeveloper\">&bull;</span>";
447 }
448 free(z2);
449 }
450 if( fossil_strcmp(zLogin, "reader") ){
451 char *z1, *z2;
452 z1 = z2 = db_text(0,"SELECT cap FROM user WHERE login='reader'");
453 while( z1 && *z1 ){
454 inherit[0x7f & *(z1++)] =
455 "<span class=\"ueditInheritReader\">&bull;</span>";
456 }
457 free(z2);
458 }
459 if( fossil_strcmp(zLogin, "anonymous") ){
460 char *z1, *z2;
461 z1 = z2 = db_text(0,"SELECT cap FROM user WHERE login='anonymous'");
462 while( z1 && *z1 ){
463 inherit[0x7f & *(z1++)] =
464 "<span class=\"ueditInheritAnonymous\">&bull;</span>";
465 }
466 free(z2);
467 }
468 if( fossil_strcmp(zLogin, "nobody") ){
469 char *z1, *z2;
470 z1 = z2 = db_text(0,"SELECT cap FROM user WHERE login='nobody'");
471 while( z1 && *z1 ){
472 inherit[0x7f & *(z1++)] =
473 "<span class=\"ueditInheritNobody\">&bull;</span>";
474 }
475 free(z2);
476 }
477
478 /* Begin generating the page
@@ -516,63 +516,63 @@
516 @ <td class="usetupEditLabel">Capabilities:</td>
517 @ <td>
518 #define B(x) inherit[x]
519 @ <table border=0><tr><td valign="top">
520 if( g.perm.Setup ){
521 @ <label><input type="checkbox" name="as"%s(oa['s']) />%s(B('s'))Setup
522 @ </label><br />
523 }
524 @ <label><input type="checkbox" name="aa"%s(oa['a']) />%s(B('a'))Admin
525 @ </label><br />
526 @ <label><input type="checkbox" name="ad"%s(oa['d']) />%s(B('d'))Delete
527 @ </label><br />
528 @ <label><input type="checkbox" name="ae"%s(oa['e']) />%s(B('e'))Email
529 @ </label><br />
530 @ <label><input type="checkbox" name="ap"%s(oa['p']) />%s(B('p'))Password
531 @ </label><br />
532 @ <label><input type="checkbox" name="ai"%s(oa['i']) />%s(B('i'))Check-In
533 @ </label><br />
534 @ <label><input type="checkbox" name="ao"%s(oa['o']) />%s(B('o'))Check-Out
535 @ </label><br />
536 @ <label><input type="checkbox" name="ah"%s(oa['h']) />%s(B('h'))Hyperlinks
537 @ </label><br />
538 @ <label><input type="checkbox" name="ab"%s(oa['b']) />%s(B('b'))Attachments
539 @ </label><br />
540 @ </td><td><td width="40"></td><td valign="top">
541 @ <label><input type="checkbox" name="au"%s(oa['u']) />%s(B('u'))Reader
542 @ </label><br />
543 @ <label><input type="checkbox" name="av"%s(oa['v']) />%s(B('v'))Developer
544 @ </label><br />
545 @ <label><input type="checkbox" name="ag"%s(oa['g']) />%s(B('g'))Clone
546 @ </label><br />
547 @ <label><input type="checkbox" name="aj"%s(oa['j']) />%s(B('j'))Read Wiki
548 @ </label><br />
549 @ <label><input type="checkbox" name="af"%s(oa['f']) />%s(B('f'))New Wiki
550 @ </label><br />
551 @ <label><input type="checkbox" name="am"%s(oa['m']) />%s(B('m'))Append Wiki
552 @ </label><br />
553 @ <label><input type="checkbox" name="ak"%s(oa['k']) />%s(B('k'))Write Wiki
554 @ </label><br />
555 @ <label><input type="checkbox" name="al"%s(oa['l']) />%s(B('l'))Moderate
556 @ Wiki</label><br />
557 @ </td><td><td width="40"></td><td valign="top">
558 @ <label><input type="checkbox" name="ar"%s(oa['r']) />%s(B('r'))Read Ticket
559 @ </label><br />
560 @ <label><input type="checkbox" name="an"%s(oa['n']) />%s(B('n'))New Tickets
561 @ </label><br />
562 @ <label><input type="checkbox" name="ac"%s(oa['c']) />%s(B('c'))Append
563 @ To Ticket </label><br />
564 @ <label><input type="checkbox" name="aw"%s(oa['w']) />%s(B('w'))Write
565 @ Tickets </label><br />
566 @ <label><input type="checkbox" name="aq"%s(oa['q']) />%s(B('q'))Moderate
567 @ Tickets </label><br />
568 @ <label><input type="checkbox" name="at"%s(oa['t']) />%s(B('t'))Ticket
569 @ Report </label><br />
570 @ <label><input type="checkbox" name="ax"%s(oa['x']) />%s(B('x'))Private
571 @ </label><br />
572 @ <label><input type="checkbox" name="az"%s(oa['z']) />%s(B('z'))Download
573 @ Zip </label>
574 @ </td></tr></table>
575 @ </td>
576 @ </tr>
577 if( !login_is_special(zLogin) ){
578 @ <tr>
@@ -622,30 +622,30 @@
622 @ and reset user passwords. Both automatically get all other privileges
623 @ listed below. Use these two settings with discretion.
624 @ </p></li>
625 @
626 @ <li><p>
627 @ The "<span class="ueditInheritNobody"><big>&bull;</big></span>" mark
628 @ indicates the privileges of <span class="usertype">nobody</span> that
629 @ are available to all users regardless of whether or not they are logged in.
630 @ </p></li>
631 @
632 @ <li><p>
633 @ The "<span class="ueditInheritAnonymous"><big>&bull;</big></span>" mark
634 @ indicates the privileges of <span class="usertype">anonymous</span> that
635 @ are inherited by all logged-in users.
636 @ </p></li>
637 @
638 @ <li><p>
639 @ The "<span class="ueditInheritDeveloper"><big>&bull;</big></span>" mark
640 @ indicates the privileges of <span class="usertype">developer</span> that
641 @ are inherited by all users with the
642 @ <span class="capability">Developer</span> privilege.
643 @ </p></li>
644 @
645 @ <li><p>
646 @ The "<span class="ueditInheritReader"><big>&bull;</big></span>" mark
647 @ indicates the privileges of <span class="usertype">reader</span> that
648 @ are inherited by all users with the <span class="capability">Reader</span>
649 @ privilege.
650 @ </p></li>
651 @
652
--- src/setup.c
+++ src/setup.c
@@ -441,38 +441,38 @@
441 if( fossil_strcmp(zLogin, "developer") ){
442 char *z1, *z2;
443 z1 = z2 = db_text(0,"SELECT cap FROM user WHERE login='developer'");
444 while( z1 && *z1 ){
445 inherit[0x7f & *(z1++)] =
446 "<span class=\"ueditInheritDeveloper\"><sub>D</sub></span>";
447 }
448 free(z2);
449 }
450 if( fossil_strcmp(zLogin, "reader") ){
451 char *z1, *z2;
452 z1 = z2 = db_text(0,"SELECT cap FROM user WHERE login='reader'");
453 while( z1 && *z1 ){
454 inherit[0x7f & *(z1++)] =
455 "<span class=\"ueditInheritReader\"><sub>R</sub></span>";
456 }
457 free(z2);
458 }
459 if( fossil_strcmp(zLogin, "anonymous") ){
460 char *z1, *z2;
461 z1 = z2 = db_text(0,"SELECT cap FROM user WHERE login='anonymous'");
462 while( z1 && *z1 ){
463 inherit[0x7f & *(z1++)] =
464 "<span class=\"ueditInheritAnonymous\"><sub>A</sub></span>";
465 }
466 free(z2);
467 }
468 if( fossil_strcmp(zLogin, "nobody") ){
469 char *z1, *z2;
470 z1 = z2 = db_text(0,"SELECT cap FROM user WHERE login='nobody'");
471 while( z1 && *z1 ){
472 inherit[0x7f & *(z1++)] =
473 "<span class=\"ueditInheritNobody\"><sub>N</sub></span>";
474 }
475 free(z2);
476 }
477
478 /* Begin generating the page
@@ -516,63 +516,63 @@
516 @ <td class="usetupEditLabel">Capabilities:</td>
517 @ <td>
518 #define B(x) inherit[x]
519 @ <table border=0><tr><td valign="top">
520 if( g.perm.Setup ){
521 @ <label><input type="checkbox" name="as"%s(oa['s']) />
522 @ Setup%s(B('s'))</label><br />
523 }
524 @ <label><input type="checkbox" name="aa"%s(oa['a']) />
525 @ Admin%s(B('a'))</label><br />
526 @ <label><input type="checkbox" name="ad"%s(oa['d']) />
527 @ Delete%s(B('d'))</label><br />
528 @ <label><input type="checkbox" name="ae"%s(oa['e']) />
529 @ Email%s(B('e'))</label><br />
530 @ <label><input type="checkbox" name="ap"%s(oa['p']) />
531 @ Password%s(B('p'))</label><br />
532 @ <label><input type="checkbox" name="ai"%s(oa['i']) />
533 @ Check-In%s(B('i'))</label><br />
534 @ <label><input type="checkbox" name="ao"%s(oa['o']) />
535 @ Check-Out%s(B('o'))</label><br />
536 @ <label><input type="checkbox" name="ah"%s(oa['h']) />
537 @ Hyperlinks%s(B('h'))</label><br />
538 @ <label><input type="checkbox" name="ab"%s(oa['b']) />
539 @ Attachments%s(B('b'))</label><br />
540 @ </td><td><td width="40"></td><td valign="top">
541 @ <label><input type="checkbox" name="au"%s(oa['u']) />
542 @ Reader%s(B('u'))</label><br />
543 @ <label><input type="checkbox" name="av"%s(oa['v']) />
544 @ Developer%s(B('v'))</label><br />
545 @ <label><input type="checkbox" name="ag"%s(oa['g']) />
546 @ Clone%s(B('g'))</label><br />
547 @ <label><input type="checkbox" name="aj"%s(oa['j']) />
548 @ Read Wiki%s(B('j'))</label><br />
549 @ <label><input type="checkbox" name="af"%s(oa['f']) />
550 @ New Wiki%s(B('f'))</label><br />
551 @ <label><input type="checkbox" name="am"%s(oa['m']) />
552 @ Append Wiki%s(B('m'))</label><br />
553 @ <label><input type="checkbox" name="ak"%s(oa['k']) />
554 @ Write Wiki%s(B('k'))</label><br />
555 @ <label><input type="checkbox" name="al"%s(oa['l']) />
556 @ Moderate Wiki%s(B('l'))</label><br />
557 @ </td><td><td width="40"></td><td valign="top">
558 @ <label><input type="checkbox" name="ar"%s(oa['r']) />
559 @ Read Ticket%s(B('r'))</label><br />
560 @ <label><input type="checkbox" name="an"%s(oa['n']) />
561 @ New Tickets%s(B('n'))</label><br />
562 @ <label><input type="checkbox" name="ac"%s(oa['c']) />
563 @ Append To Ticket%s(B('c'))</label><br />
564 @ <label><input type="checkbox" name="aw"%s(oa['w']) />
565 @ Write Tickets%s(B('w'))</label><br />
566 @ <label><input type="checkbox" name="aq"%s(oa['q']) />
567 @ Moderate Tickets%s(B('q'))</label><br />
568 @ <label><input type="checkbox" name="at"%s(oa['t']) />
569 @ Ticket Report%s(B('t'))</label><br />
570 @ <label><input type="checkbox" name="ax"%s(oa['x']) />
571 @ Private%s(B('x'))</label><br />
572 @ <label><input type="checkbox" name="az"%s(oa['z']) />
573 @ Download Zip%s(B('z'))</label>
574 @ </td></tr></table>
575 @ </td>
576 @ </tr>
577 if( !login_is_special(zLogin) ){
578 @ <tr>
@@ -622,30 +622,30 @@
622 @ and reset user passwords. Both automatically get all other privileges
623 @ listed below. Use these two settings with discretion.
624 @ </p></li>
625 @
626 @ <li><p>
627 @ The "<span class="ueditInheritNobody"><sub>N</sub></span>" subscript suffix
628 @ indicates the privileges of <span class="usertype">nobody</span> that
629 @ are available to all users regardless of whether or not they are logged in.
630 @ </p></li>
631 @
632 @ <li><p>
633 @ The "<span class="ueditInheritAnonymous"><sub>A</sub></span>" subscript suffix
634 @ indicates the privileges of <span class="usertype">anonymous</span> that
635 @ are inherited by all logged-in users.
636 @ </p></li>
637 @
638 @ <li><p>
639 @ The "<span class="ueditInheritDeveloper"><sub>D</sub></span>" subscript suffix
640 @ indicates the privileges of <span class="usertype">developer</span> that
641 @ are inherited by all users with the
642 @ <span class="capability">Developer</span> privilege.
643 @ </p></li>
644 @
645 @ <li><p>
646 @ The "<span class="ueditInheritReader"><sub>R</sub></span>" subscript suffix
647 @ indicates the privileges of <span class="usertype">reader</span> that
648 @ are inherited by all users with the <span class="capability">Reader</span>
649 @ privilege.
650 @ </p></li>
651 @
652

Keyboard Shortcuts

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