Fossil SCM

Fix the fullcap() SQL function so that it correctly expands the capabilities of Admin and Setup users to include everything.

drh 2019-07-26 13:35 trunk
Commit 384fdb6b4ffb54bbb08acfa30a88cfd9ce1e6f7046c007152d23c97d8d8efe49
1 file changed +4
--- src/capabilities.c
+++ src/capabilities.c
@@ -100,10 +100,11 @@
100100
void capability_expand(CapabilityString *pIn){
101101
static char *zNobody = 0;
102102
static char *zAnon = 0;
103103
static char *zReader = 0;
104104
static char *zDev = 0;
105
+ static char *zAdmin = "bcdefghijklmnopqrtwxz234567AD";
105106
int doneV = 0;
106107
107108
if( pIn==0 ){
108109
fossil_free(zNobody); zNobody = 0;
109110
fossil_free(zAnon); zAnon = 0;
@@ -117,10 +118,13 @@
117118
zReader = db_text(0, "SELECT cap FROM user WHERE login='reader'");
118119
zDev = db_text(0, "SELECT cap FROM user WHERE login='developer'");
119120
}
120121
pIn = capability_add(pIn, zAnon);
121122
pIn = capability_add(pIn, zNobody);
123
+ if( pIn->x['a'] || pIn->x['s'] ){
124
+ pIn = capability_add(pIn, zAdmin);
125
+ }
122126
if( pIn->x['v'] ){
123127
pIn = capability_add(pIn, zDev);
124128
doneV = 1;
125129
}
126130
if( pIn->x['u'] ){
127131
--- src/capabilities.c
+++ src/capabilities.c
@@ -100,10 +100,11 @@
100 void capability_expand(CapabilityString *pIn){
101 static char *zNobody = 0;
102 static char *zAnon = 0;
103 static char *zReader = 0;
104 static char *zDev = 0;
 
105 int doneV = 0;
106
107 if( pIn==0 ){
108 fossil_free(zNobody); zNobody = 0;
109 fossil_free(zAnon); zAnon = 0;
@@ -117,10 +118,13 @@
117 zReader = db_text(0, "SELECT cap FROM user WHERE login='reader'");
118 zDev = db_text(0, "SELECT cap FROM user WHERE login='developer'");
119 }
120 pIn = capability_add(pIn, zAnon);
121 pIn = capability_add(pIn, zNobody);
 
 
 
122 if( pIn->x['v'] ){
123 pIn = capability_add(pIn, zDev);
124 doneV = 1;
125 }
126 if( pIn->x['u'] ){
127
--- src/capabilities.c
+++ src/capabilities.c
@@ -100,10 +100,11 @@
100 void capability_expand(CapabilityString *pIn){
101 static char *zNobody = 0;
102 static char *zAnon = 0;
103 static char *zReader = 0;
104 static char *zDev = 0;
105 static char *zAdmin = "bcdefghijklmnopqrtwxz234567AD";
106 int doneV = 0;
107
108 if( pIn==0 ){
109 fossil_free(zNobody); zNobody = 0;
110 fossil_free(zAnon); zAnon = 0;
@@ -117,10 +118,13 @@
118 zReader = db_text(0, "SELECT cap FROM user WHERE login='reader'");
119 zDev = db_text(0, "SELECT cap FROM user WHERE login='developer'");
120 }
121 pIn = capability_add(pIn, zAnon);
122 pIn = capability_add(pIn, zNobody);
123 if( pIn->x['a'] || pIn->x['s'] ){
124 pIn = capability_add(pIn, zAdmin);
125 }
126 if( pIn->x['v'] ){
127 pIn = capability_add(pIn, zDev);
128 doneV = 1;
129 }
130 if( pIn->x['u'] ){
131

Keyboard Shortcuts

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