<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-2" http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Jan Kundrát napsal(a):<br>
<br>
<pre wrap="">Pokud je to na druhou stranu treba z nejakeho jineho stroje, zrejme
sessions pouzivas spatne.
</pre>
<br>
VL:<br>
Ano. Asi používám sessions špatně:<br>
<br>
<small><i><font color="#ff0000">class Login:<br>
def check(cls, fn):<br>
def _check(self, *args, **kwargs):<br>
if cherrypy.session.has_key('userid'):<br>
# Uživatel je zalogován; povol přístup<br>
return fn(self, *args, **kwargs)<br>
else:<br>
# Uživatel není zalogován.<br>
# Podívej se, zda se zrovna nepokouší připojit<br>
try:<br>
submit = kwargs['login']<br>
user = kwargs['loginUser']<br>
password = kwargs['loginPassword']<br>
except KeyError:<br>
# Ne, to nebyl pokus o zalogování. Pusť uživatele<br>
# na stránku.<br>
return self.loginPage(cherrypy.url())<br>
<br>
# Nyní zkontroluj user id podle user a password<br>
userrights = self.getUserId(user, password)<br>
if userrights is None:<br>
# Chybný username nebo password<br>
return self.loginPage(cherrypy.url(), 'Neplatné
jméno nebo heslo.')<br>
# Uživatel je zalogován, uložím userid v sessions<br>
cherrypy.session['userid'] = user<br>
<br>
return fn(self, *args, **kwargs)<br>
<br>
return _check<br>
check = classmethod(check)<br>
</font></i><br>
Tohoto mechanizmu používám při volání zabezpečených stránek, kde
příchozího a jeho oprávnění ověřuji v modulu <i><font color="#ff0000">getUserId(user,
password)<br>
</font></i></small>
<br>
<br>
</body>
</html>