Fossil SCM

Fixes to the capability reduction on subrepositories.

drh 2011-03-28 21:46 UTC sub-repos
Commit 4b545a8a0243c1072e0e05c578dbaf7ea9bd16aa
1 file changed +2 -6
+2 -6
--- src/login.c
+++ src/login.c
@@ -504,11 +504,10 @@
504504
505505
/*
506506
** Memory of settings
507507
*/
508508
static int login_anon_once = 1;
509
-static char login_settings[26];
510509
511510
/*
512511
** Add the default privileges of users "nobody" and "anonymous" as appropriate
513512
** for the user g.zLogin.
514513
*/
@@ -533,13 +532,10 @@
533532
void login_set_capabilities(const char *zCap){
534533
static char *zDev = 0;
535534
static char *zUser = 0;
536535
int i;
537536
for(i=0; zCap[i]; i++){
538
- int c = zCap[i];
539
- if( c<'a' || c>'z' ) continue;
540
- login_settings[c-'a'] = 1;
541537
switch( zCap[i] ){
542538
case 's': g.okSetup = 1; /* Fall thru into Admin */
543539
case 'a': g.okAdmin = g.okRdTkt = g.okWrTkt = g.okZip =
544540
g.okRdWiki = g.okWrWiki = g.okNewWiki =
545541
g.okApndWiki = g.okHistory = g.okClone =
@@ -674,11 +670,12 @@
674670
fossil_free(z);
675671
}
676672
seen['u'-'a'] = 0;
677673
seen['v'-'a'] = 0;
678674
for(i=0; i<sizeof(seen); i++){
679
- if( seen[i] && login_settings[i] ) zNew[nNew++] = i+'a';
675
+ char c = i+'a';
676
+ if( seen[i] && login_has_capability(&c,1) ) zNew[nNew++] = i+'a';
680677
}
681678
zNew[nNew] = 0;
682679
683680
/* Turn off all capabilities */
684681
g.okSetup = 0;
@@ -701,11 +698,10 @@
701698
g.okAttach = 0;
702699
g.okTktFmt = 0;
703700
g.okRdAddr = 0;
704701
g.okZip = 0;
705702
g.okPrivate = 0;
706
- memset(login_settings, 0, sizeof(login_settings));
707703
708704
/* Set the reduced capabilities */
709705
login_set_capabilities(zNew);
710706
login_anon_once = 1;
711707
login_set_anon_nobody_capabilities();
712708
--- src/login.c
+++ src/login.c
@@ -504,11 +504,10 @@
504
505 /*
506 ** Memory of settings
507 */
508 static int login_anon_once = 1;
509 static char login_settings[26];
510
511 /*
512 ** Add the default privileges of users "nobody" and "anonymous" as appropriate
513 ** for the user g.zLogin.
514 */
@@ -533,13 +532,10 @@
533 void login_set_capabilities(const char *zCap){
534 static char *zDev = 0;
535 static char *zUser = 0;
536 int i;
537 for(i=0; zCap[i]; i++){
538 int c = zCap[i];
539 if( c<'a' || c>'z' ) continue;
540 login_settings[c-'a'] = 1;
541 switch( zCap[i] ){
542 case 's': g.okSetup = 1; /* Fall thru into Admin */
543 case 'a': g.okAdmin = g.okRdTkt = g.okWrTkt = g.okZip =
544 g.okRdWiki = g.okWrWiki = g.okNewWiki =
545 g.okApndWiki = g.okHistory = g.okClone =
@@ -674,11 +670,12 @@
674 fossil_free(z);
675 }
676 seen['u'-'a'] = 0;
677 seen['v'-'a'] = 0;
678 for(i=0; i<sizeof(seen); i++){
679 if( seen[i] && login_settings[i] ) zNew[nNew++] = i+'a';
 
680 }
681 zNew[nNew] = 0;
682
683 /* Turn off all capabilities */
684 g.okSetup = 0;
@@ -701,11 +698,10 @@
701 g.okAttach = 0;
702 g.okTktFmt = 0;
703 g.okRdAddr = 0;
704 g.okZip = 0;
705 g.okPrivate = 0;
706 memset(login_settings, 0, sizeof(login_settings));
707
708 /* Set the reduced capabilities */
709 login_set_capabilities(zNew);
710 login_anon_once = 1;
711 login_set_anon_nobody_capabilities();
712
--- src/login.c
+++ src/login.c
@@ -504,11 +504,10 @@
504
505 /*
506 ** Memory of settings
507 */
508 static int login_anon_once = 1;
 
509
510 /*
511 ** Add the default privileges of users "nobody" and "anonymous" as appropriate
512 ** for the user g.zLogin.
513 */
@@ -533,13 +532,10 @@
532 void login_set_capabilities(const char *zCap){
533 static char *zDev = 0;
534 static char *zUser = 0;
535 int i;
536 for(i=0; zCap[i]; i++){
 
 
 
537 switch( zCap[i] ){
538 case 's': g.okSetup = 1; /* Fall thru into Admin */
539 case 'a': g.okAdmin = g.okRdTkt = g.okWrTkt = g.okZip =
540 g.okRdWiki = g.okWrWiki = g.okNewWiki =
541 g.okApndWiki = g.okHistory = g.okClone =
@@ -674,11 +670,12 @@
670 fossil_free(z);
671 }
672 seen['u'-'a'] = 0;
673 seen['v'-'a'] = 0;
674 for(i=0; i<sizeof(seen); i++){
675 char c = i+'a';
676 if( seen[i] && login_has_capability(&c,1) ) zNew[nNew++] = i+'a';
677 }
678 zNew[nNew] = 0;
679
680 /* Turn off all capabilities */
681 g.okSetup = 0;
@@ -701,11 +698,10 @@
698 g.okAttach = 0;
699 g.okTktFmt = 0;
700 g.okRdAddr = 0;
701 g.okZip = 0;
702 g.okPrivate = 0;
 
703
704 /* Set the reduced capabilities */
705 login_set_capabilities(zNew);
706 login_anon_once = 1;
707 login_set_anon_nobody_capabilities();
708

Keyboard Shortcuts

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