def post(self): """ """ username = self.get_argument("username") password = self.get_argument("password") try: connect_mongo.db.user.find_one({"username": username, "password": password}) if "username" == username & "password" == password: session = SessionManager(self) session.set('catId',username) self.write("<script>alert('ورود موفقیت آمیز بود')</script>") else: self.render("Login.html") # doc = connect_mongo.db.user.find_one({"username": username, "password": password}) # docc = doc["_id"] # if docc > 0: # session = SessionManager(self) # session.set('loginid', docc) # k = session.get('loginid') # self.render("index.html") except: k = 1 self.render("Login.html", k=k)
def sets_session_id_on_cookies(self): test_case = self class StubHandler(SessionMixin): settings = { 'pycket': { 'engine': 'redis', } } def get_secure_cookie(self, name): test_case.assertEqual(name, 'PYCKET_ID') self.cookie_set = True return None def set_secure_cookie(self, name, value, expires_days, expires): test_case.assertEqual(name, 'PYCKET_ID') test_case.assertIsInstance(value, str) test_case.assertGreater(len(value), 0) self.cookie_retrieved = True handler = StubHandler() session_manager = SessionManager(handler) session_manager.set('some-object', 'Some object') self.assertTrue(handler.cookie_retrieved) self.assertTrue(handler.cookie_set)
def retrieves_object_with_dict_key(self): handler = StubHandler() manager = SessionManager(handler) manager.set('foo', 'bar') self.assertEqual(manager['foo'], 'bar')
def retrieves_session_with_same_data_as_saved(self): handler = StubHandler() manager = SessionManager(handler) manager.set('some-object', {'foo': 'bar'}) self.assertEqual(manager.get('some-object')['foo'], 'bar')
def gets_all_available_keys_from_session(self): handler = StubHandler() manager = SessionManager(handler) manager.set('foo', 'FOO') manager.set('bar', 'BAR') self.assertListEqual(sorted(manager.keys()), sorted(['foo', 'bar']))
def still_retrieves_object_if_not_passed_from_expiration(self): handler = StubHandler() manager = SessionManager(handler) manager.set('foo', 'bar') time.sleep(1) self.assertEqual(manager.get('foo'), 'bar')
def keeps_previous_items_when_setting_new_ones(self): handler = StubHandler() manager = SessionManager(handler) manager.set('some-object', {'foo': 'bar'}) manager.set('some-object2', {'foo2': 'bar2'}) self.assertEqual(manager.get('some-object')['foo'], 'bar') self.assertEqual(manager.get('some-object2')['foo2'], 'bar2')
def deletes_item_using_command(self): handler = StubHandler() manager = SessionManager(handler) manager.set('some-object', {'foo': 'bar'}) del manager['some-object'] self.assertIsNone(manager.get('some-object'))
class RequestHandler(base.RequestHandler): def __init__(self, *args, **kwargs): super(RequestHandler, self).__init__(*args, **kwargs) self.session = SessionManager(self) def get_template_path(self): return settings.base.template_path @gen.coroutine def prepare(self): try: user_id = self.session.get(settings.redis.USER_KEY) if user_id: user = yield self.console_user_model.GetUserFromId(user_id) if user: yield self.Login(user) except: pass def _handle_request_exception(self, error): if self._finished: return if isinstance(error, errors.Error): self.render_error(error) elif isinstance(error, MissingArgumentError): self.render_error(errors.ParamInvalidError(error.arg_name)) else: super(RequestHandler, self)._handle_request_exception(error) def render_error(self, error): data = { 'code': u'', 'message': u'操作发生错误' } if isinstance(error, errors.PermissionDeny): data['code'] = error.error_code data['message'] = error.error_message self.render('global_error.html', data=data) @gen.coroutine def Login(self, user): if user['status'] in ['locked']: raise gen.Return(False) user['privileges'] = [] roles = user['roles'] for r in roles: role = yield self.role_model.GetRoleFromName(r) if role: privileges = role['privileges'] user['privileges'].extend(privileges) self.session.set(settings.redis.USER_KEY, user['_id']) self.current_user = user raise gen.Return(True)
def cannot_retrieve_object_if_passed_from_expiration(self): handler = StubHandler() manager = SessionManager(handler) manager.driver.EXPIRE_SECONDS = 1 manager.set('foo', 'bar') time.sleep(manager.driver.EXPIRE_SECONDS + 1) self.assertIsNone(manager.get('foo'))
def saves_session_object_on_redis_with_same_session_id_as_cookie(self): handler = StubHandler() manager = SessionManager(handler) manager.set('some-object', {'foo': 'bar'}) raw_session = self.client.get(handler.session_id) session = pickle.loads(raw_session) self.assertEqual(session['some-object']['foo'], 'bar')
def deletes_multiple_session_objects_at_once(self): handler = StubHandler() manager = SessionManager(handler) manager.set('some-object', {'foo': 'bar'}) manager.set('some-object2', {'foo2': 'bar2'}) manager.delete('some-object', 'some-object2') raw_session = self.client.get(handler.session_id) session = pickle.loads(raw_session) self.assertEqual(list(session.keys()), [])
def deletes_objects_from_session(self): handler = StubHandler() manager = SessionManager(handler) manager.set('some-object', {'foo': 'bar'}) manager.set('some-object2', {'foo2': 'bar2'}) manager.delete('some-object') raw_session = self.client.get(handler.session_id) session = pickle.loads(raw_session) self.assertEqual(session.keys(), ['some-object2'])
def get(self, *args, **kwargs): # redis_instance.set(name='name', value='EHSAN') # self.write(redis_instance.get(name='name')) session = SessionManager(self) # session.set('key', 'OMG') session.set(name='key', value='OMG') # session['key'] = 'OMG' self.write(session.get(self, 'key')) self.write(str(session.get('key'))) # self.write(str(session.keys())) self.write(str(session.iterkeys())) # self.write(session['key']) self.write('done')
def uses_custom_sessions_database_if_provided(self): handler = StubHandler() handler.settings = { 'pycket': { 'engine': 'redis', 'storage': { 'db_sessions': 10, 'db_notifications': 11, } }, } manager = SessionManager(handler) manager.set('foo', 'bar') self.assertEqual(manager.driver.client.connection_pool._available_connections[0].db, 10)
def iterates_without_method_over_keys(self): handler = StubHandler() manager = SessionManager(handler) manager.set('foo', 'FOO') manager.set('bar', 'BAR') iterations = 0 for key in manager: self.assertTrue(key in manager) iterations += 1 self.assertEqual(iterations, 2)
def uses_custom_sessions_database_if_provided(self): handler = StubHandler() handler.settings = { 'pycket': { 'engine': 'redis', 'storage': { 'db_sessions': 10, 'db_notifications': 11, } }, } manager = SessionManager(handler) manager.set('foo', 'bar') self.assertEqual( manager.driver.client.connection_pool._available_connections[0].db, 10)
def does_not_set_session_id_if_already_exists(self): class StubHandler(SessionMixin): settings = { 'pycket': { 'engine': 'redis', } } def get_secure_cookie(self, name): self.cookie_retrieved = True return 'some-id' handler = StubHandler() manager = SessionManager(handler) manager.set('some-object', 'Some object') self.assertTrue(handler.cookie_retrieved)
def sets_session_id_to_last_a_browser_session_as_default(self): test_case = self class StubHandler(SessionMixin): settings = { 'pycket': { 'engine': 'redis', } } def get_secure_cookie(self, name): return None def set_secure_cookie(self, name, value, expires_days, expires): test_case.assertIsNone(expires_days) test_case.assertIsNone(expires) handler = StubHandler() manager = SessionManager(handler) manager.set('some-object', 'Some object')
def repasses_cookies_options(self): test_case = self class StubHandler(SessionMixin): settings = { 'pycket': { 'engine': 'redis', 'cookies': { 'foo': 'bar', } }, } def get_secure_cookie(self, name): return None def set_secure_cookie(self, *args, **kwargs): test_case.assertEqual(kwargs['foo'], 'bar') handler = StubHandler() manager = SessionManager(handler) manager.set('some-object', 'Some object')
def uses_custom_expires_days_if_provided(self): test_case = self class StubHandler(SessionMixin): settings = { 'pycket': { 'engine': 'redis', 'cookies': { 'expires_days': 'St. Neversday', } }, } def get_secure_cookie(self, name): return None def set_secure_cookie(self, *args, **kwargs): test_case.assertEqual(kwargs['expires_days'], 'St. Neversday') handler = StubHandler() manager = SessionManager(handler) manager.set('some-object', 'Some object')
def post(self): session = SessionManager(self) session.set('server', self.get_argument("server")) session.set('user', self.get_argument("username")) sessionid = self.get_current_session() tpl_fields = TemplateFields() tpl_fields['post'] = True tpl_fields['ip'] = self.request.remote_ip tpl_fields['server'] = self.get_argument("server") tpl_fields['username'] = self.get_argument("username") tpl_fields['next'] = self.get_argument('next', '/') # build this up to pass unto cred = {'server': self.get_argument('server'), 'username': self.get_argument('username'), 'password': self.get_argument('password'), 'sessionid': sessionid } connect = VimHelper.Authenticate(self, cred) logging.debug("LoginHandler: result of VimHelper.Authenticate: %s" % connect) if connect is "authenticated": session.set('authenticated', True) tpl_fields['vierror'] = connect self.redirect(tpl_fields['next']) return True else: tpl_fields['authenticated'] = False tpl_fields['vierror'] = connect logging.debug("LoginHandler: next: %s" % next) self.render("login.html", fields=tpl_fields)
def set(cls, handler, name, value): # Debug.dprint(text='INSIDE SESSION SET') Debug.dprint(text='name: ' + name, type='data') Debug.dprint(text='value: ' + str(value), type='data') session = SessionManager(handler) session.set(name=name, value=value)
def get(self): if self.get_argument("logout", None): self.clear_cookie("username") session = SessionManager(self) session.set('catId', None) self.redirect("/")