@@ -117,36 +117,41 @@
117 117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <p style="clear:both">
118 118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <b>Notes:</b>
119 119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <ol>
120 120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <li><p>The permission flags are as follows:</p>
121 121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <table>
122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr><td>s</td><td></td><td>Setup: Superuser can do anything</td></tr>
122 123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <tr><td>a</td><td width="10"></td>
123 124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <td>Admin: Create or delete users and ticket report formats</td></tr>
124 125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <tr><td>d</td><td></td>
125 126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <td>Delete: Erase anonymous wiki, tickets, and attachments</td></tr>
126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <tr><td>h</td><td></td>
127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <td>History: Access older version of code, tickets, or wiki</td></tr>
127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr><td>p</td><td></td><td>Password: Change password</td></tr>
128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr><td>q</td><td></td><td>Query: Create or edit report formats</td></tr>
128 129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <tr><td>i</td><td></td>
129 130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <td>Check-in: Add new code to the repository</td></tr>
130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <tr><td>j</td><td></td><td>Read-Wiki: View wiki pages</td></tr>
131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <tr><td>k</td><td></td><td>Wiki: Create or modify wiki pages</td></tr>
132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <tr><td>n</td><td></td><td>New: Create new tickets</td></tr>
133 131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <tr><td>o</td><td></td>
134 132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <td>Check-out: Read code out of the repository</td></tr>
135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <tr><td>p</td><td></td><td>Password: Change password</td></tr>
136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <tr><td>q</td><td></td><td>Query: Create or edit report formats</td></tr>
137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <tr><td>r</td><td></td><td>Read: View tickets and change histories</td></tr>
138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <tr><td>s</td><td></td><td>Setup: Change CVSTrac options</td></tr>
139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <tr><td>w</td><td></td><td>Write: Edit tickets</td></tr>
133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr><td>h</td><td></td>
134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <td>History: Access older version of code, tickets, or wiki</td></tr>
135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr><td>g</td><td></td><td>Clone: Clone the repository</td></tr>
136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr><td>j</td><td></td><td>Read-Wiki: View wiki pages</td></tr>
137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr><td>f</td><td></td><td>New-Wiki: Create new wiki pages</td></tr>
138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr><td>m</td><td></td><td>Append-Wiki: Append to wiki pages</td></tr>
139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr><td>k</td><td></td><td>Write-Wiki: Modify wiki pages</td></tr>
140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr><td>r</td><td></td>
141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <td>Read-Tkt: View tickets and change histories</td></tr>
142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr><td>n</td><td></td><td>New-Tkt: Create new tickets</td></tr>
143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr><td>c</td><td></td><td>Append-Tkt: Append to tickets</td></tr>
144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr><td>w</td><td></td><td>Write-Tkt: Edit tickets</td></tr>
140 145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </table>
141 146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </p></li>
142 147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@
143 148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <li><p>
144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ If a user named "<b>anonymous</b>" exists, then anyone can access
145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ the server without having to log in. The permissions on the
146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ anonymous user determine the access rights for anyone who is not
147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ logged in.
149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ Every user, logged in or not, has the privileges of <b>nobody</b>.
150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ Any human can login as <b>anonymous</b> since the password is
151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ clearly displayed on the login page for them to type. The purpose
152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ of requiring anonymous to log in is to prevent access by spiders.
148 153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </p></li>
149 154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@
150 155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </ol>
151 156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_footer();
152 157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -155,11 +160,11 @@
155 160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** WEBPAGE: /setup_uedit
156 161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
157 162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void user_edit(void){
158 163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zId, *zLogin, *zInfo, *zCap;
159 164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *oaa, *oas, *oar, *oaw, *oan, *oai, *oaj, *oao, *oap ;
160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *oak, *oad, *oaq, *oac, *oaf, *oam, *oah;
165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *oak, *oad, *oaq, *oac, *oaf, *oam, *oah, *oag;
161 166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int doWrite;
162 167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int uid;
163 168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int higherUser = 0; /* True if user being edited is SETUP and the */
164 169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* user doing the editing is ADMIN. Disallow editing */
165 170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -208,15 +213,17 @@
208 213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int aw = P("aw")!=0;
209 214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int ac = P("ac")!=0;
210 215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int af = P("af")!=0;
211 216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int am = P("am")!=0;
212 217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int ah = P("ah")!=0;
218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int ag = P("ag")!=0;
213 219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( aa ){ zCap[i++] = 'a'; }
214 220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ac ){ zCap[i++] = 'c'; }
215 221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ad ){ zCap[i++] = 'd'; }
216 222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( af ){ zCap[i++] = 'f'; }
217 223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ah ){ zCap[i++] = 'h'; }
224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( ag ){ zCap[i++] = 'g'; }
218 225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ai ){ zCap[i++] = 'i'; }
219 226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( aj ){ zCap[i++] = 'j'; }
220 227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ak ){ zCap[i++] = 'k'; }
221 228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( am ){ zCap[i++] = 'm'; }
222 229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( an ){ zCap[i++] = 'n'; }
@@ -256,20 +263,21 @@
256 263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Load the existing information about the user, if any
257 264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
258 265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zLogin = "";
259 266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zInfo = "";
260 267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zCap = "";
261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- oaa = oac = oad = oaf = oah = oai = oaj = oak = oam =
268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ oaa = oac = oad = oaf = oag = oah = oai = oaj = oak = oam =
262 269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
oan = oao = oap = oaq = oar = oas = oaw = "";
263 270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( uid ){
264 271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zLogin = db_text("", "SELECT login FROM user WHERE uid=%d", uid);
265 272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zInfo = db_text("", "SELECT info FROM user WHERE uid=%d", uid);
266 273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zCap = db_text("", "SELECT cap FROM user WHERE uid=%d", uid);
267 274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strchr(zCap, 'a') ) oaa = " checked";
268 275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strchr(zCap, 'c') ) oac = " checked";
269 276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strchr(zCap, 'd') ) oad = " checked";
270 277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strchr(zCap, 'f') ) oaf = " checked";
278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( strchr(zCap, 'g') ) oag = " checked";
271 279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strchr(zCap, 'h') ) oah = " checked";
272 280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strchr(zCap, 'i') ) oai = " checked";
273 281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strchr(zCap, 'j') ) oaj = " checked";
274 282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strchr(zCap, 'k') ) oak = " checked";
275 283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strchr(zCap, 'm') ) oam = " checked";
@@ -320,10 +328,11 @@
320 328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="checkbox" name="ap"%s(oap)>Password</input><br>
321 329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="checkbox" name="aq"%s(oaq)>Query</input><br>
322 330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="checkbox" name="ai"%s(oai)>Check-In</input><br>
323 331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="checkbox" name="ao"%s(oao)>Check-Out</input><br>
324 332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="checkbox" name="ah"%s(oah)>History</input><br>
333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <input type="checkbox" name="ag"%s(oag)>Clone</input><br>
325 334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="checkbox" name="aj"%s(oaj)>Read Wiki</input><br>
326 335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="checkbox" name="af"%s(oaf)>New Wiki</input><br>
327 336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="checkbox" name="am"%s(oam)>Append Wiki</input><br>
328 337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="checkbox" name="ak"%s(oak)>Write Wiki</input><br>
329 338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="checkbox" name="ar"%s(oar)>Read Tkt</input><br>
@@ -373,11 +382,11 @@
373 382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </p></li>
374 383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@
375 384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <li><p>
376 385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ The <b>History</b> privilege allows a user to see a timeline
377 386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ with hyperlinks to version information, to download ZIP archives
378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ of individual versions, and to clone the repository.
387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ of individual versions.
379 388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </p></li>
380 389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@
381 390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <li><p>
382 391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ No login is required for user "<b>nobody</b>". The capabilities
383 392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ of this user are available to anyone without supplying a username or
384 393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!