@@ -64,33 +64,45 @@
64 64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
strcpy(zCookieName, "fossil_login_");
65 65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
encode16((unsigned char*)g.zTop, (unsigned char*)&zCookieName[13], n);
66 66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
67 67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return zCookieName;
68 68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Redirect to the page specified by the "g" query parameter.
72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Or if there is no "g" query parameter, redirect to the homepage.
73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void redirect_to_g(void){
75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zGoto = P("g");
76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zGoto ){
77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cgi_redirect(zGoto);
78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_redirect_home();
80 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
81 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
69 82 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
70 83 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
71 84 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** WEBPAGE: /login
72 85 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** WEBPAGE: /logout
73 86 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
74 87 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Generate the login page
75 88 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
76 89 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void login_page(void){
77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zUsername, *zPasswd, *zGoto;
90 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zUsername, *zPasswd;
78 91 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zNew1, *zNew2;
79 92 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zAnonPw = 0;
80 93 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int anonFlag;
81 94 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zErrMsg = "";
82 95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
83 96 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
login_check_credentials();
84 97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zUsername = P("u");
85 98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zPasswd = P("p");
86 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zGoto = PD("g","index");
87 99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
anonFlag = P("anon")!=0;
88 100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( P("out")!=0 ){
89 101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zCookieName = login_cookie_name();
90 102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cgi_set_cookie(zCookieName, "", 0, -86400);
91 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cgi_redirect(zGoto);
103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ redirect_to_g();
92 104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
93 105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.okPassword && zPasswd && (zNew1 = P("n1"))!=0 && (zNew2 = P("n2"))!=0 ){
94 106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db_int(1, "SELECT 0 FROM user"
95 107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" WHERE uid=%d AND pw=%Q", g.userUid, zPasswd) ){
96 108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sleep(1);
@@ -109,11 +121,11 @@
109 121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
;
110 122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
111 123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_multi_exec(
112 124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"UPDATE user SET pw=%Q WHERE uid=%d", zNew1, g.userUid
113 125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cgi_redirect(zGoto);
126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ redirect_to_g();
115 127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
116 128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
117 129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
118 130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zUsername!=0 && zPasswd!=0 && zPasswd[0]!=0 ){
119 131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int uid = db_int(0,
@@ -142,11 +154,11 @@
142 154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"UPDATE user SET cookie=%Q, ipaddr=%Q, "
143 155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" cexpire=julianday('now')+%d/86400.0 WHERE uid=%d",
144 156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zCookie, zIpAddr, expires, uid
145 157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
146 158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cgi_redirect(zGoto);
159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ redirect_to_g();
148 160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
149 161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
150 162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_header("Login/Logout");
151 163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ %s(zErrMsg)
152 164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <form action="login" method="POST">
@@ -323,16 +335,16 @@
323 335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void login_set_capabilities(const char *zCap){
324 336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static char *zDev = 0;
325 337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
326 338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; zCap[i]; i++){
327 339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
switch( zCap[i] ){
328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 's': g.okSetup = 1;
340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 's': g.okSetup = 1; /* Fall thru into Admin */
329 341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 'a': g.okAdmin = g.okRdTkt = g.okWrTkt =
330 342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
g.okRdWiki = g.okWrWiki = g.okNewWiki =
331 343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
g.okApndWiki = g.okHistory = g.okClone =
332 344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
g.okNewTkt = g.okPassword = g.okRdAddr =
333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- g.okTktFmt = 1;
345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ g.okTktFmt = 1; /* Fall thru into Read/Write */
334 346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 'i': g.okRead = g.okWrite = 1; break;
335 347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 'o': g.okRead = 1; break;
336 348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 'z': g.okZip = 1; break;
337 349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
338 350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 'd': g.okDelete = 1; break;
339 351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!