def process_session(self, environ): request = environ["leanengine.request"] context.local.current = context.Current() context.local.current.meta = { "remote_address": get_remote_address(request), } if environ["_app_params"]["session_token"] not in (None, ""): session_token = environ["_app_params"]["session_token"] if self.fetch_user: user = leancloud.User.become(session_token) context.local.current.user = user context.local.user = user context.local.current.session_token = session_token return try: data = json.loads(request.get_data(as_text=True)) except ValueError: context.local.user = None return if "user" in data and data["user"]: user = leancloud.User() user._update_data(data["user"]) context.local.current.user = user context.local.current.session_token = user.get_session_token() context.local.user = user return context.local.user = None
def login(): if request.method == 'POST': u = leancloud.User() username = request.form.get('email') password = request.form.get('pass') try: u.login(username,password) except LeanCloudError as e: message = ['text-danger',] if e.code == 210: message.append("用户名/密码 错误") elif e.code == 211: message.append("不存在的用户") else: message.append(e.error) return render_template('login.html',message=message) if u.get('isAuth'): r = redirect('/admin') else: r = redirect('/rockaroll') response = make_response(r) response.set_cookie('token',value=u._session_token,expires=datetime.now()+timedelta(hours=6)) return response else: return redirect('/')
def department(): token = request.cookies.get('token') if not token: return redirect('/') u = leancloud.User() try: u.become(token) except LeanCloudError as e: if e.code == 211: return redirect('/') u.login() if not u.get('isAuth'): return redirect('/') if request.method == 'GET': result = leancloud.Query.do_cloud_query("select * from SignUp where sex='男' or sex='女' limit 10000").results count = len(result) return render_template('dep3.html',result=result,count=count) else: dp = request.form.get('department') T = leancloud.Object.extend('SignUp') q = T.query q.equal_to('department',dp) result = q.find() count = len(result) return render_template('dep3.post.html',result=result,count=count)
def test_fix_search(self): user = leancloud.User().become( "eyJhbGciOiJIUzI1NiIsImlhdCI6MTUyOTkxNTQyMywiZXhwIjoxNTMzNTE1NDIzfQ.IjQi.ttcDTMSAszLP7F3TJieiCCzYV6j0o0D8pMFgnMkGCwI" ) ret = cloudfunc.run('search', keyword="测", belongGroupId="8") print(ret) assert (type(ret) == dict)
def process_session(self, environ): request = environ['leanengine.request'] context.local.current = context.Current() context.local.current.meta = { 'remote_address': get_remote_address(request), } if environ['_app_params']['session_token'] not in (None, ''): session_token = environ['_app_params']['session_token'] if self.fetch_user: user = leancloud.User.become(session_token) context.local.current.user = user context.local.user = user context.local.current.session_token = session_token return try: data = json.loads(request.get_data(as_text=True)) except ValueError: context.local.user = None return if 'user' in data and data['user']: user = leancloud.User() user._update_data(data['user']) context.local.current.user = user context.local.current.session_token = user.get_session_token() context.local.user = user return context.local.user = None
def userLogin(cls, userName, password): user = leancloud.User() try: user.login(userName, password) return user.session_token except LeanCloudError as err: return err.error
def test_create_marks(self): leancloud.User().become(session_token) Model = leancloud.Object.extend('Marks') obj = Model() obj.set("isPublic", 1) obj.set("goodsId", 2) obj.save()
def search(): string = request.args.get('s') token = request.cookies.get('token') if not token: return redirect('/') u = leancloud.User() try: u.become(token) except LeanCloudError as e: if e.code == 211: return redirect('/') u.login() if not u.get('isAuth'): return redirect('/') if string: T = leancloud.Object.extend('SignUp') q1 = T.query;q2 = T.query q1.equal_to('sex','男');q2.equal_to('sex','女') s1 = leancloud.Query.or_(q1,q2) s2 = T.query;s3 = T.query;s4 = T.query result = leancloud.Query.or_( leancloud.Query.and_(s2.contains('name',string),s1), leancloud.Query.and_(s3.contains('mobilePhoneNumber',string),s1), leancloud.Query.and_(s4.contains('email',string),s1) ) result = result.find() map(lambda x:x.fetch(),result) count = len(result) else: q = leancloud.Query.do_cloud_query( "select * from SignUp where sex='男' or sex='女'" ) result = q.results count = len(result) return render_template('dep2.html',result=result,count=count)
def create_user(): user = leancloud.User() user.set_username('tobe') user.set_mobile_phone_number(TOBE_PHONE) user.set_email(TOBE_EMAIL) user.set_password(TOBE_PASS) user.sign_up()
def test_current_user(): # type: () -> None saved_user = leancloud.User() saved_user.set("username", "user{0}".format(int(time.time()))) saved_user.set("password", "password") saved_user.set_email("{0}@leancloud.rocks".format(int(time.time()))) saved_user.sign_up() session_token = saved_user.get_session_token() @engine.define def current_user(): user = engine.current.user TestCurrentUser = leancloud.Object.extend("TestCurrentUser") o = TestCurrentUser() o.set("user", user) o.set({"yetAnotherUser": user}) o.save() TestCurrentUser.query.equal_to("user", user).find() assert user.get("username") == saved_user.get("username") # test current assert engine.current.session_token == session_token assert user.get("username") is engine.current.user.get("username") assert "remote_address" in engine.current.meta response = requests.get( url + "/__engine/1/functions/current_user", headers={ "x-avoscloud-application-id": TEST_APP_ID, "x-avoscloud-application-key": TEST_APP_KEY, "x-avoscloud-session-token": session_token, "x-lc-hook-key": TEST_HOOK_KEY, }, ) assert response.status_code == 200 @engine.before_save("Xxx") def before_xxx_save(xxx): assert engine.current.user.get("username") == saved_user.get( "username") response = requests.post( url + "/__engine/1/functions/Xxx/beforeSave", headers={ "x-avoscloud-application-id": TEST_APP_ID, "x-avoscloud-application-key": TEST_APP_KEY, "x-lc-hook-key": TEST_HOOK_KEY, }, json={ "object": {}, "user": { "username": saved_user.get("username") } }, ) assert_equal(response.status_code, 200) # cleanup saved_user.destroy()
def test_create_notes(self): leancloud.User().become(session_token) Model = leancloud.Object.extend('Notes') obj = Model() obj.set("note", "这个东西不错,哈哈哈") obj.set("isPublic", 1) obj.set("goodsId", 1) obj.save()
def test_modify_user(self): user = leancloud.User().become(session_token) print(user.dump()) ret = cloudfunc.run('modifyUserInfo', password="******", firstName="晓华", lastName="郑", email="[email protected]", defaultGroupId=2, avatar="https://www.gravatar.com/avatar/0efa74fe76da7681da2939b3214e5cdf?s=328&d=identicon&r=PG", ) print(ret) assert (type(ret) == dict)
def dispatch_on_login(params): func = _cloud_codes.get('__on_login__User') if not func: return user = leancloud.User() user._finish_fetch(params['object'], True) return func(user)
def test_query_position(self): user = leancloud.User().become(session_token) Model = leancloud.Object.extend('Position') query = Model.query query.skip(0) query.limit(2) todo_list = query.find() for todo in todo_list: print(todo.dump())
def test_query_space(self): user = leancloud.User().become(session_token) Space = leancloud.Object.extend('Space') query = Space.query query.skip(0) query.limit(2) todo_list = query.find() for todo in todo_list: print(todo.dump())
def test_create_space(self): leancloud.User().become(session_token) Model = leancloud.Object.extend('Space') obj = Model() obj.set("name", "客厅") obj.set("isPublic", 1) obj.set("avatar", "http://www.baidu.com") obj.set("groupId", 2) obj.save()
def main(year, month, appid, appkey, username, password): leancloud.init(appid, appkey) user = leancloud.User() user.login(username, password) logger.info('User login OK') export_month_data(year, month) user.logout() logger.info('User logged out')
def createNewUser(cls, userName, email, password): user = leancloud.User() user.set_username(userName) user.set_password(password) user.set_email(email) try: user.sign_up() return "注册成功" except LeanCloudError as err: return err.error
def test_query_goods(self): user = leancloud.User().become(session_token) Model = leancloud.Object.extend('Goods') query = Model.query query.skip(0) query.limit(2) query.equal_to("type", 2) todo_list = query.find() for todo in todo_list: print(todo.dump())
def test_create_position(self): leancloud.User().become(session_token) Model = leancloud.Object.extend('Position') obj = Model() obj.set("name", "入口处") obj.set("isPublic", 1) obj.set("avatar", "http://www.baidu.com") obj.set("coordinate", "coordinatecoordinatecoordinate") obj.set("spaceId", 1) obj.save()
def webtest(num): token = request.cookies.get('token') if not token: return redirect('/') u = leancloud.User() try: u.become(token) except LeanCloudError as e: if e.code == 211: return redirect('/') u.login() w = checkUserWeb(u) schedule = w.get('passNum') if request.method == 'GET': num = int(num) if num == schedule+1 or schedule == 4: if num == 1: return render_template('web/web1.html',answer=u.id[-6:-2]) elif num == 2: return render_template('web/web2.html',answer=u.id[-4:]) elif num == 3: subtitle = request.args.get('subtitle') if subtitle == '2': return render_template('web/web4.html') else: return render_template('web/web3.html') elif num == 4: return render_template('web/web5.html') else: return redirect('web/%d'%(schedule+1)) else: if num == '1' or num == '2': answer = request.form.get('answer') if num == '1': if u.id[-6:-2] == answer: if schedule != 4: w.set('passNum',1) w.save() return redirect('/web/2') if num == '2': if u.id[-4:] == answer: if schedule != 4: w.set('passNum',2) w.save() return redirect('/web/3') elif num == '3': if schedule != 4: w.set('passNum',3) w.save() return """nice jobs,now you can go next.""",200 else: try: return render_template('web/web%s.html'%num,error=1) except: abort(404)
def test_current_user(): # type: () -> None saved_user = leancloud.User() saved_user.set('username', 'user{0}'.format(int(time.time()))) saved_user.set('password', 'password') saved_user.set_email('{0}@leancloud.rocks'.format(int(time.time()))) saved_user.sign_up() session_token = saved_user.get_session_token() @engine.define def current_user(): user = engine.current.user TestCurrentUser = leancloud.Object.extend('TestCurrentUser') o = TestCurrentUser() o.set('user', user) o.set({'yetAnotherUser': user}) o.save() TestCurrentUser.query.equal_to('user', user).find() assert user.get('username') == saved_user.get('username') # test current assert engine.current.session_token == session_token assert user.get('username') is engine.current.user.get('username') assert 'remote_address' in engine.current.meta response = requests.get(url + '/__engine/1/functions/current_user', headers={ 'x-avoscloud-application-id': TEST_APP_ID, 'x-avoscloud-application-key': TEST_APP_KEY, 'x-avoscloud-session-token': session_token, 'x-lc-hook-key': TEST_HOOK_KEY, }) assert response.status_code == 200 @engine.before_save('Xxx') def before_xxx_save(xxx): assert engine.current.user.get('username') == saved_user.get( 'username') response = requests.post(url + '/__engine/1/functions/Xxx/beforeSave', headers={ 'x-avoscloud-application-id': TEST_APP_ID, 'x-avoscloud-application-key': TEST_APP_KEY, 'x-lc-hook-key': TEST_HOOK_KEY, }, json={ 'object': {}, 'user': { 'username': saved_user.get('username') } }) assert_equal(response.status_code, 200) # cleanup saved_user.destroy()
def test_save(): # type: () -> None user = leancloud.User() user.login('user1_name', 'password') f = File('Blah.txt', open('tests/sample_text.txt', 'rb')) f.save() assert f.owner_id == user.id assert f.id assert f.name == 'Blah.txt' assert f.mime_type == 'text/plain' assert not f.url.endswith('.')
def test_create_goods(self): leancloud.User().become(session_token) Model = leancloud.Object.extend('Goods') obj = Model() obj.set("name", "鞋柜2") obj.set("isPublic", 1) obj.set("avatar", "http://www.baidu.com") obj.set("coordinate", "") obj.set("positionId", 2) obj.set("type", 1) obj.save() print(obj.dump())
def admin_login(username: str, password: str): now_time = int(time.time()) if now_time < Security.cooldown_time: raise BadParamError( message=f'用户名密码错误过多,{Security.cooldown_time - now_time}秒后重试') user = leancloud.User() try: Security.try_count = 0 user.login(username, password) except leancloud.LeanCloudError as e: Security.incre() raise BadParamError(message=str(e.error), param='') return {'token': user.get_session_token()}
def personProfile(): obid = request.args.get('id') token = request.cookies.get('token') if not token: return redirect('/') u = leancloud.User() try: u.become(token) except LeanCloudError as e: if e.code == 211: return redirect('/') u.login() if not u.get('isAuth'): return redirect('/') T = leancloud.Object.extend('SignUp') q = T.query user = q.get(obid) t = user.get('user') t.fetch() q1 = leancloud.Query('tyLog') fuli = True if not q1.equal_to("email",user.get("email")).find(): fuli = False if not user: return redirect('/') status = (u.get('dapartment') in user.get('department') or u.get('dapartment') == 'ALL') # dapartment 写错了懒得再改服务器字段了 if request.method == 'GET': fileList = user.get("files") if fileList: for file in fileList: file.fetch() else: fileList = [] return render_template('dep4.html',user=user,info=t,status=status,id=obid,fuli=fuli,fileList=fileList) elif request.method == 'POST': choice = request.form.get('choice') department = request.form.get('department') user.fetch() if choice == 'recommand': if not (status and department != "NULL"): print u.get("name") abort(500) user.set("department",department) elif choice == 'accept': user.set("pass_first",True) elif choice == 'reject': user.set("pass_first",False) else: abort(500) user.save() return "ok"
def dispatch_on_login(_cloud_codes, app_params, params): from .authorization import HOOK_KEY current_hook_key = app_params.get('hook_key') if not current_hook_key or current_hook_key != HOOK_KEY: raise LeanEngineError(code=401, message='Unauthorized.') func = _cloud_codes.get('__on_login__User') if not func: return user = leancloud.User() user._update_data(params['object']) return func(user)
def dispatch_on_verified(_cloud_codes, app_params, verify_type, params): func_name = '__on_verified_' + verify_type from .authorization import HOOK_KEY hook_key = app_params.get('hook_key') if not hook_key or hook_key != HOOK_KEY: raise LeanEngineError(code=401, message='Unauthorized.') user = leancloud.User() user._update_data(params['object']) func = _cloud_codes.get(func_name) if not func: return return func(user)
def sign_up(username, password): user = leancloud.User() user.set_username(username) user.set_password(password) try: user.sign_up() return {"resultCode": "0", "message": "注册成功"} except leancloud.errors.LeanCloudError as e: print "LError: 注册问题", e, e.code if e.code == 202: message = "用户名已经被占用" else: message = e.error return {"resultCode": "1", "message": message}
def main(): # {{{1 'Main function' user = leancloud.User() welcome() if first(user) == 'fail': print('failed') return 1 while True: printinfo() con = input('Input yours(press :q to quit): ') if con in ('f**k', ':q'): break else: updateinfo(user, con)