@@ -152,34 +152,50 @@
152 152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <li value="15"><b>Check-Out</b>: Check out versions</li>
153 153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <li value="16"><b>Password</b>: Change your own password</li>
154 154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <li value="18"><b>Read-Tkt</b>: View tickets</li>
155 155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <li value="19"><b>Setup:</b> Setup and configure this website</li>
156 156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <li value="20"><b>Tkt-Report:</b> Create new bug summary reports</li>
157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <li value="22"><b>Developer:</b> Inherit privileges of user "developer"</li>
157 158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <li value="23"><b>Write-Tkt</b>: Edit tickets</li>
158 159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </ol>
159 160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </p></li>
160 161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@
161 162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <li><p>
162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ Every user, logged in or not, has the privileges of <b>nobody</b>.
163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ Every user, logged in or not, inherits the privileges of <b>nobody</b>.
163 164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ Any human can login as <b>anonymous</b> since the password is
164 165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ clearly displayed on the login page for them to type. The purpose
165 166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ of requiring anonymous to log in is to prevent access by spiders.
167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ Every logged-in user inherits the privileges of <b>anonymous</b>.
166 168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </p></li>
167 169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@
168 170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </ol>
169 171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </td></tr></table>
170 172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_footer();
171 173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Return true if zPw is a valid password string. A valid
177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** password string is:
178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (1) A zero-length string, or
180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (2) a string that contains a character other than '*'.
181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int isValidPwString(const char *zPw){
183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zPw==0 ) return 0;
184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zPw[0]==0 ) return 1;
185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( zPw[0]=='*' ){ zPw++; }
186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return zPw[0]!=0;
187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
172 188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
173 189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
174 190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** WEBPAGE: /setup_uedit
175 191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
176 192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void user_edit(void){
177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zId, *zLogin, *zInfo, *zCap;
193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zId, *zLogin, *zInfo, *zCap, *zPw;
178 194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *oaa, *oas, *oar, *oaw, *oan, *oai, *oaj, *oao, *oap;
179 195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *oak, *oad, *oac, *oaf, *oam, *oah, *oag, *oae;
180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *oat;
196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *oat, *oav;
181 197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int doWrite;
182 198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int uid;
183 199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int higherUser = 0; /* True if user being edited is SETUP and the */
184 200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* user doing the editing is ADMIN. Disallow editing */
185 201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -208,12 +224,10 @@
208 224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** modified user record. After writing the user record, redirect
209 225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** to the page that displays a list of users.
210 226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
211 227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
doWrite = cgi_all("login","info","pw") && !higherUser;
212 228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( doWrite ){
213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zPw;
214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zLogin;
215 229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char zCap[50];
216 230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i = 0;
217 231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int aa = P("aa")!=0;
218 232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int ad = P("ad")!=0;
219 233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int ae = P("ae")!=0;
@@ -230,10 +244,11 @@
230 244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int af = P("af")!=0;
231 245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int am = P("am")!=0;
232 246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int ah = P("ah")!=0;
233 247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int ag = P("ag")!=0;
234 248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int at = P("at")!=0;
249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int av = P("av")!=0;
235 250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( aa ){ zCap[i++] = 'a'; }
236 251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ac ){ zCap[i++] = 'c'; }
237 252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ad ){ zCap[i++] = 'd'; }
238 253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ae ){ zCap[i++] = 'e'; }
239 254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( af ){ zCap[i++] = 'f'; }
@@ -247,15 +262,16 @@
247 262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ao ){ zCap[i++] = 'o'; }
248 263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ap ){ zCap[i++] = 'p'; }
249 264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ar ){ zCap[i++] = 'r'; }
250 265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( as ){ zCap[i++] = 's'; }
251 266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( at ){ zCap[i++] = 't'; }
267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( av ){ zCap[i++] = 'v'; }
252 268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( aw ){ zCap[i++] = 'w'; }
253 269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
254 270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zCap[i] = 0;
255 271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zPw = P("pw");
256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zPw==0 || zPw[0]==0 ){
272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !isValidPwString(zPw) ){
257 273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zPw = db_text(0, "SELECT pw FROM user WHERE uid=%d", uid);
258 274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
259 275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zLogin = P("login");
260 276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( uid>0 &&
261 277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_exists("SELECT 1 FROM user WHERE login=%Q AND uid!=%d", zLogin, uid)
@@ -280,16 +296,18 @@
280 296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Load the existing information about the user, if any
281 297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
282 298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zLogin = "";
283 299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zInfo = "";
284 300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zCap = "";
301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zPw = "";
285 302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
oaa = oac = oad = oae = oaf = oag = oah = oai = oaj = oak = oam =
286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- oan = oao = oap = oar = oas = oat = oaw = "";
303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ oan = oao = oap = oar = oas = oat = oav = oaw = "";
287 304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( uid ){
288 305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zLogin = db_text("", "SELECT login FROM user WHERE uid=%d", uid);
289 306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zInfo = db_text("", "SELECT info FROM user WHERE uid=%d", uid);
290 307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zCap = db_text("", "SELECT cap FROM user WHERE uid=%d", uid);
308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zPw = db_text("", "SELECT pw FROM user WHERE uid=%d", uid);
291 309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strchr(zCap, 'a') ) oaa = " checked";
292 310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strchr(zCap, 'c') ) oac = " checked";
293 311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strchr(zCap, 'd') ) oad = " checked";
294 312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strchr(zCap, 'e') ) oae = " checked";
295 313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strchr(zCap, 'f') ) oaf = " checked";
@@ -303,10 +321,11 @@
303 321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strchr(zCap, 'o') ) oao = " checked";
304 322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strchr(zCap, 'p') ) oap = " checked";
305 323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strchr(zCap, 'r') ) oar = " checked";
306 324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strchr(zCap, 's') ) oas = " checked";
307 325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strchr(zCap, 't') ) oat = " checked";
326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( strchr(zCap, 'v') ) oav = " checked";
308 327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strchr(zCap, 'w') ) oaw = " checked";
309 328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
310 329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
311 330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Begin generating the page
312 331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -346,10 +365,11 @@
346 365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="checkbox" name="ae"%s(oad)>Email</input><br>
347 366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="checkbox" name="ap"%s(oap)>Password</input><br>
348 367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="checkbox" name="ai"%s(oai)>Check-In</input><br>
349 368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="checkbox" name="ao"%s(oao)>Check-Out</input><br>
350 369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="checkbox" name="ah"%s(oah)>History</input><br>
370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <input type="checkbox" name="av"%s(oav)>Developer</input><br>
351 371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="checkbox" name="ag"%s(oag)>Clone</input><br>
352 372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="checkbox" name="aj"%s(oaj)>Read Wiki</input><br>
353 373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="checkbox" name="af"%s(oaf)>New Wiki</input><br>
354 374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="checkbox" name="am"%s(oam)>Append Wiki</input><br>
355 375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="checkbox" name="ak"%s(oak)>Write Wiki</input><br>
@@ -360,21 +380,30 @@
360 380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="checkbox" name="at"%s(oat)>Tkt Report</input>
361 381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </td>
362 382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </tr>
363 383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <tr>
364 384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <td align="right">Password:</td>
365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <td><input type="password" name="pw" value=""></td>
385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( strcmp(zLogin, "anonymous")==0 ){
386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* User the password for "anonymous" as cleartext */
387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <td><input type="text" name="pw" value="%h(zPw)"></td>
388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( zPw[0] ){
389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Obscure the password for all other users */
390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <td><input type="password" name="pw" value="**********"></td>
391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Show an empty password as an empty input field */
393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <td><input type="password" name="pw" value=""></td>
394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
366 395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </tr>
367 396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !higherUser ){
368 397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <tr>
369 398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <td> </td>
370 399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <td><input type="submit" name="submit" value="Apply Changes">
371 400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </tr>
372 401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
373 402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </table></td></tr></table>
374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <p><b>Notes:</b></p>
375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <ol>
403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <h2>Privileges And Capabilities:</h2>
404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <ul>
376 405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( higherUser ){
377 406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <li><p><font color="blue"><b>
378 407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ User %h(zLogin) has Setup privileges and you only have Admin privileges
379 408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ so you are not permitted to make changes to %h(zLogin).
380 409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </b></font></p></li>
@@ -401,10 +430,15 @@
401 430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ This is recommended ON for most logged-in users but OFF for
402 431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ user "nobody" to avoid problems with spiders trying to walk every
403 432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ historical version of every baseline and file.
404 433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </p></li>
405 434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@
435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <li><p>
436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ The <b>Developer</b> privilege causes all privileges of the user
437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ named "developer" to be inherited by this user.
438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ </p></li>
439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @
406 440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <li><p>
407 441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ The <b>Check-in</b> privilege allows remote users to "push".
408 442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ The <b>Check-out</b> privilege allows remote users to "pull".
409 443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ The <b>Clone</b> privilege allows remote users to "clone".
410 444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </li><p>
@@ -418,39 +452,58 @@
418 452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ ticket report formats.
419 453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </p></li>
420 454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@
421 455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <li><p>
422 456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ Users with the <b>Password</b> privilege are allowed to change their
423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ own password. Recommended ON for most users but OFF for "anonynmous"
424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ and "nobody".
457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ own password. Recommended ON for most users but OFF for special
458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ users "developer, "anonynmous", and "nobody".
425 459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </p></li>
426 460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@
427 461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <li><p>
428 462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ The <b>EMail</b> privilege allows the display of sensitive information
429 463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ such as the email address of users and contact information on tickets.
430 464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ Recommended OFF for "anonymous" and for "nobody".
431 465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </p></li>
432 466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@
467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <li><p>
468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ Login is prohibited if the password is an empty string.
469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ </p></li>
470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ </ul>
471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @
472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <h2>Special Logins</h2>
473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @
474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <ul>
433 475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <li><p>
434 476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ No login is required for user "<b>nobody</b>". The capabilities
435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ of this user are available to anyone without supplying a username or
436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ password. To disable nobody access, make sure there is no user
437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ with an ID of <b>nobody</b> or that the nobody user has no
438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ capabilities enabled. The password for nobody is ignore. To
439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ avoid problems with spiders overloading the server, it is suggested
440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ that the 'h' (History) capability be turned off for user nobody.
477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ of the <b>nobody</b> user are inherited by all users, regardless of
478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ whether or not they are logged in. To disable universal access
479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ to the repository, make sure no user named "<b>nobody</b>" exists or
480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ that the <b>nobody</b> user has no capabilities enabled.
481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ The password for <b>nobody</b> is ignore. To avoid problems with
482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ spiders overloading the server, it is recommended
483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ that the 'h' (History) capability be turned off for the <b>nobody</b>
484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ user.
441 485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </p></li>
442 486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@
443 487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <li><p>
444 488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ Login is required for user "<b>anonymous</b>" but the password
445 489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ is displayed on the login screen beside the password entry box
446 490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ so anybody who can read should be able to login as anonymous.
447 491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ On the other hand, spiders and web-crawlers will typically not
448 492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ be able to login. Set the capabilities of the anonymous user
449 493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ to things that you want any human to be able to do, but not any
450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ spider.
494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ spider. Every other logged-in user inherits the privileges of
495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <b>anonymous</b>.
451 496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </p></li>
497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @
498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <li><p>
499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ The "<b>developer</b>" user is intended as a template for trusted users
500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ with check-in privileges. When adding new trusted users, simply
501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ select the <b>Developer</b> privilege to cause the new user to inherit
502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ all privileges of the "developer" user.
503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ </li></p>
504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ </ul>
452 505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </form>
453 506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_footer();
454 507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
455 508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
456 509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
457 510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!