def view(request, path): morepath_request = MorepathRequest(request.environ, app) # consume everything already seen by django for i in range(resolved_segment_count(request.path, path)): morepath_request.unconsumed.pop() morepath_request.make_body_seekable() response = app.publish(morepath_request) cookies = SimpleCookie() django_response = HttpResponse( response.body, status=response.status_code ) for (header, value) in response.headerlist: if header.upper() == "SET-COOKIE": cookies.load(value) else: django_response[header] = value for cookie_name, cookie in cookies.items(): cookie_attributes = { "key": cookie_name, "value": cookie.value, "expires": cookie["expires"], "path": cookie["path"], "domain": cookie["domain"], } if cookie["max-age"]: # Starting in Django 1.3 it performs arithmetic operations # with 'Max-Age' cookie_attributes["max_age"] = int(cookie["max-age"]) django_response.set_cookie(**cookie_attributes) return django_response
def profile(context, request: morepath.Request): user = context.model has_photo = user.get_blob("profile-photo") return { "page_title": "Profile", "profile_photo": request.link(context, "+download?field=profile-photo") if has_photo else None, "forms": [ { "form_title": "Personal Information", "form": attributes_form(user, request), "readonly": False, "form_data": user.data["xattrs"], }, { "form_title": "User Information", "form": userinfo_form(request), "readonly": False, "form_data": user.data.as_dict(), }, { "form_title": "Password", "form": password_form(request), "readonly": False, }, ], }
def profile(context, request: morepath.Request): user = context.model has_photo = user.get_blob('profile-photo') return { 'page_title': 'Profile', 'profile_photo': request.link(context, '+download?field=profile-photo') if has_photo else None, 'forms': [{ 'form_title': 'Personal Information', 'form': attributes_form(user, request), 'readonly': False, 'form_data': user.data['xattrs'] }, { 'form_title': 'User Information', 'form': userinfo_form(request), 'readonly': False, 'form_data': user.data.as_dict() }, { 'form_title': 'Password', 'form': password_form(request), 'readonly': False, }] }
def profile(context, request: morepath.Request): userid = request.identity.userid newreq = request.get_authn_request() usercol = get_user_collection(newreq) user = usercol.get_by_userid(userid) has_photo = user.get_blob('profile-photo') return { 'page_title': 'Profile', 'profile_photo': newreq.link(user, '+blobs?field=profile-photo') if has_photo else None, 'forms': [{ 'form_title': 'Personal Information', 'form': attributes_form(user, request), 'readonly': False, 'form_data': user.data['xattrs'] }, { 'form_title': 'User Information', 'form': userinfo_form(request), 'readonly': False, 'form_data': user.data.as_dict() }, { 'form_title': 'Password', 'form': password_form(request), 'readonly': False, }] }
def redirect_to_firstlogin(request: morepath.Request): for path in EXCLUDE_PREFIXES: if request.path.startswith(path): return handler(request) for path in EXCLUDE_PATHS: if request.path == path: return handler(request) userid = request.identity.userid if userid: col = request.get_collection("morpfw.pas.user") userobj = col.get_by_userid(userid) if userobj and userobj["state"] == "new" and not request.path.startswith("/firstlogin"): resp = morepath.redirect(request.relative_url("/firstlogin")) resp.headers["Cache-Control"] = "no-store" return resp return handler(request)
def redirect_to_firstlogin(request: morepath.Request): if request.path.startswith('/__static__/'): return handler(request) if request.path == '/logout': return handler(request) userid = request.identity.userid if userid: col = get_user_collection(request) userobj = col.get_by_userid(userid) if userobj['state'] == 'new' and not request.path.startswith( '/firstlogin'): resp = morepath.redirect(request.relative_url('/firstlogin')) resp.headers['Cache-Control'] = 'no-store' return resp return handler(request)
def render(content, request: morepath.Request): main_template = loader.load('master/main_template.pt', 'xml') load_template = functools.partial(loader.load, format='xml') context = resolve_model(request.copy(app=request.app)) def _permits(permission, request=request, context=context): return permits(request, context, permission) variables = { 'request': request, 'context': context, 'main_template': main_template, 'app': request.app, 'permits': _permits, 'settings': request.app.settings, 'load_template': load_template } variables.update(content or {}) return original_render(template.render(**variables), request)
def redirect_to_login(self, request: Request): if request.current_user: return self return redirect( request.link(Login(back_url=request.path_qs, from_redirect=1)))