def get(self): "Render a simple add form" # get the current user user = users.get_current_user() logout = users.create_logout_url("/") # seed the context with the user details # initialise session sess = gmemsess.Session(self) # get the flash message if any book_sess = sess.get("book", "") if book_sess: book = pickle.loads(book_sess) else: book = "" context = { "user": user, "logout": logout, "version": os.environ['CURRENT_VERSION_ID'], "book": book, } # calculate the template path path = os.path.join(os.path.dirname(__file__), 'templates', 'add.html') # render the template with the provided context self.response.out.write(template.render(path, context))
def testForAdmin(self): """ checks if the admin is logged in """ sess = gmemsess.Session(self) if 'current_user' in sess: return sess['current_user'] == "admin" else: return False
def initialize(self, *a, **kw): webapp2.RequestHandler.initialize(self, *a, **kw) #uid = self.read_secure_cookie('user_id') self.session = gmemsess.Session(self) uid = self.check_session() self.user = uid and User.by_id(int(uid)) if self.user is not None: #если пользователь существует сохраняем в объект его uid из датастора self.user.uid = int(uid)
def get(self): sess = gmemsess.Session(self) if sess.is_new(): template_values = {'errors': ['invalid_session'], 'fields': {}} self.response.out.write( _render_template('landing.html', template_values)) else: template_values = {'username': sess['username']} self.response.out.write( _render_template('home.html', template_values))
def post(self): """ Submits the PC application """ if not Phase.isActive("pc_apps"): raise UserError("Sorry, PC applications are not available.") # two different behaviors, depending on whether the user is logged in sess = gmemsess.Session(self) if 'current_user' in sess: self.postPCAppExistingUser() else: self.postPCAppNewUser()
def get(self): # create a memcache session for storing oauth tokens session = gmemsess.Session(self) # user does not have access token if 'access_token' not in session: # user does not have request token if 'request_token' not in session: # get request token request_token = oauthapp.get_request_token(CALLBACK_URL) # store unapproved request token in session session['request_token'] = request_token.to_string() session.save() # redirect the user to authorize the request token self.redirect(oauthapp.get_authorization_url(request_token)) else: # retrieve approved request token from session request_token = yahoo.oauth.RequestToken.from_string( session['request_token']) # exchange approved request token for valid access token access_token = oauthapp.get_access_token( request_token, self.request.get('oauth_verifier')) # store access token in session session['access_token'] = access_token.to_string() session.save() self.redirect(CALLBACK_URL) else: oauthapp.token = yahoo.oauth.AccessToken.from_string( session['access_token']) profile = oauthapp.getProfile() connections = oauthapp.getConnections() updates = oauthapp.getUpdates() self.response.out.write( template.render( os.path.join(os.path.dirname(__file__), 'templates/social.html'), { 'profile': profile, 'connections': connections, 'updates': updates }))
def get(self): """ Displays the PC Application page """ if not Phase.isActive("pc_apps"): raise UserError("Sorry, PC applications are not available.") template_values = {'questions': self.questions} # check if the user has already submitted an app sess = gmemsess.Session(self) if 'current_user' in sess: the_user = User.gql("WHERE email = :1", sess['current_user']).get() if the_user.pc_application is not None: return Forward('alreadyapplied.html') template_values['greek'] = Greek.all().order("name") return template_values
def post(self): "Add the book to the webservice" # get the posted data title = self.request.get("title") ident = self.request.get("ident") author = self.request.get("author") image = self.request.get("image") notes = self.request.get("notes") url = self.request.get("url") book = { "title": title, "ident": ident, "author": author, "image": image, "notes": notes, "url": url, "message": "" } # grab the session data sess = gmemsess.Session(self) if title and ident and author and image and notes and url: # create the JSON object json = simplejson.dumps(book, sort_keys=False) # work out the url for the book url = "%s%s?auth=%s" % (settings.WEB_SERVICE_URL, ident, settings.AUTH) logging.info("Request to add %s (%s)" % (title, ident)) try: # send a PUT request to add or update the book record fetch(url, method=PUT, payload=json) except DownloadError: self.error(500) # set the flash message sess["flash"] = "Added book %s (%s)" % (title, ident) # save the session data sess.save() self.redirect("/") # redirect back to the home page else: sess["book"] = pickle.dumps(book) # save the session data sess.save() self.redirect("/add")
def get(self): sess = gmemsess.Session(self) if sess.is_new(): template_values = {'errors': ['invalid_session'], 'fields': {}} self.response.out.write( _renderTemplate('landing.html', template_values)) else: #usr = _getUserByName(sess['username']) bookmarks = [ b for b in Bookmark.all().filter('user ='******'userkey']).run() ] # _getBookmarksByUserRef(sess['userkey']) #[] tags = [sess['userkey']] # _getTagsByUserRef(sess['userkey']) template_values = { 'username': sess['username'], 'bookmarks': bookmarks, 'tags': tags } self.response.out.write( _renderTemplate('home.html', template_values))
def get(self): "Build the admin interface" try: # get the JSON from the webservice response = fetch("%s?auth=%s" % (settings.WEB_SERVICE_URL, settings.AUTH)) except DownloadError: self.error(500) json = response.content # convert the JSON to Python objects try: books = simplejson.loads(json) except ValueError: books = [] # initialise the session sess = gmemsess.Session(self) # get the flash message if any message = sess.get("flash", "") # get the current user user = users.get_current_user() logout = users.create_logout_url("/") # seed the context with the list of books context = { "books": books, "user": user, "logout": logout, "version": os.environ['CURRENT_VERSION_ID'], "flash": message } # calculate the template path path = os.path.join(os.path.dirname(__file__), 'templates', 'index.html') # always clear the flash message sess["flash"] = "" # save the sessions sess.save() # render the template with the provided context self.response.out.write(template.render(path, context))
def get(self): session = gmemsess.Session(self) if 'access_token' in session: request_token = session[ 'request_token'] if 'request_token' in session else None if not request_token: self.response.out.write("No un-authed token found in session") return token = oauth.OAuthToken.from_string(request_token) if token.key != urllib.unquote( self.request.get('oauth_token', 'no-token')): self.response.out.write( "Something went wrong! Tokens do not match") return session.save() self.redirect('/') else: path = os.path.join(os.path.dirname(__file__), 'templates/index.html') self.response.out.write(template.render(path, {}))
def post(self): "Delete a book from the webservice datastore" # get the ident from the request ident = self.request.get("ident") # work out the webservice url url = "%s%s?auth=%s" % (settings.WEB_SERVICE_URL, ident, settings.AUTH) logging.info("Request to delete book with ident %s" % ident) try: # send a DELETE request for that record fetch(url, method=DELETE) except DownloadError: self.error(500) # grab the session data sess = gmemsess.Session(self) # set the flash message sess["flash"] = "Deleted book with ident %s" % ident # save the session data sess.save() # reirect back to the home page self.redirect("/")
def post(self): sess = gmemsess.Session(self) if sess.is_new(): template_values = {'errors': ['invalid_session'], 'fields': {}} self.response.out.write( _renderTemplate('landing.html', template_values)) else: errors = [] fields = { 'bmarktitle': self.request.get('bmarktitle').strip(), 'bmarklink': self.request.get('bmarklink').strip(), 'bmarktags': self.request.get('bmarktags').strip() } if self.request.get('bmarktitle').strip() == '': errors.append('blank_bmarktitle') if self.request.get('bmarklink').strip() == '': errors.append('blank_bmarklink') if len(errors) == 0: usr = _getUserByName(sess['username']) if usr: bmk = Bookmark( title=self.request.get('bmarktitle').strip(), link=self.request.get('bmarklink').strip(), user=usr) bmk.put() else: errors.append('user_not_found') if len(errors) == 0: if self.request.get('bmarktags').strip() != '': nams = self.request.get('bmarktags').strip().split(',') for nam in nams: objtag = Tag(name=nam, user=usr) objtag.put() bmktag = BookmarkTag(bookmark=bmk, tag=objtag) bmktag.put() template_values = {'errors': errors, 'fields': fields} self.response.out.write( _renderTemplate('home.html', template_values))
def updateSessionForLogin(self, username): sess = gmemsess.Session(self) sess['current_user'] = username sess.save()
def post(self): errors = [] fields = { 'username': self.request.get('username').strip(), 'newusername': self.request.get('newusername').strip(), 'newemail': self.request.get('newemail').strip() } if self.request.get('username').strip() != '': if self.request.get('password').strip() == '': errors.append('blank_password') if len(errors) == 0: query = User.all() query.filter('name =', self.request.get('username').strip()) if query.count() > 0: obj = query.get() if obj.password != self.request.get('password').strip(): errors.append('wrong_password') else: errors.append('unknown_username') if len(errors) == 0: sess = gmemsess.Session(self) sess['username'] = self.request.get('username').strip() sess.save() self.redirect('/home') else: template_values = {'errors': errors, 'fields': fields} self.response.out.write( _render_template('landing.html', template_values)) else: if self.request.get('newusername').strip() == '': errors.append('blank_newusername') if self.request.get('newemail').strip() == '': errors.append('blank_newemail') if self.request.get('newpassword').strip() == '': errors.append('blank_newpassword') if self.request.get('newconfirm').strip() == '': errors.append('blank_newconfirm') if not 'blank_newpassword' in errors and not 'blank_newconfirm' in errors: if self.request.get('newpassword').strip() != self.request.get( 'newconfirm').strip(): errors.append('different_passwords') if len(errors) == 0: query = User.all() query.filter('name =', self.request.get('newusername').strip()) if query.count() > 0: errors.append('username_taken') if len(errors) == 0: query = User.all() query.filter('email =', self.request.get('newemail').strip()) if query.count() > 0: errors.append('email_taken') if len(errors) == 0: obj = User(name=self.request.get('newusername').strip(), email=self.request.get('newemail').strip(), password=self.request.get('newpassword').strip(), status='new') obj.put() self.redirect('/signup') else: template_values = {'errors': errors, 'fields': fields} self.response.out.write( _render_template('landing.html', template_values))
def get(self): sess = gmemsess.Session(self) sess.invalidate() self.redirect('/landing')
def updateSessionForLogin(self, username): """ assign the username to the session """ sess = gmemsess.Session(self) sess['current_user'] = username sess.save()