def post(self): email = self.request.get('email') password = self.request.get('password') verify = self.request.get('verify') if password != verify: template = env.get_template('signup.html') msg = "Password mismatch" html = template.render(email=email, error=msg) self.response.out.write(html) else: try: signup(email, password, parent=ModelrParent.all().get()) # Show the message page with "Success!" template = env.get_template('message.html') msg = ("Please check your inbox and spam folder " + "for our message. Then click on the link " + "in the email.") html = template.render(success=msg) self.response.out.write(html) except AuthExcept as e: template = env.get_template('signup.html') msg = e.msg html = template.render(email=email, error=msg) self.response.out.write(html)
def post(self, user): if "admin" not in user.group: self.redirect('/') template = env.get_template('admin_site.html') host = self.request.get('host') if (len(host) > 0): server = Server.all().ancestor(ModelrParent.all().get()).get() server.host = self.request.get('host') server.put() html = template.render( self.get_base_params(success="Updated Host")) self.response.write(html) return email = self.request.get('email') password = self.request.get('password') verify = self.request.get('verify') if (len(email) > 0): if password != verify: template = env.get_template('admin_site.html') msg = "Password mismatch" html = template.render(email=email, error=msg) self.response.out.write(html) return else: try: make_user(email=email, password=password, parent=ModelrParent.all().get()) template = env.get_template('admin_site.html') html = template.render(success="Added User", email=email, user=user) self.response.out.write(html) return except AuthExcept as e: template = env.get_template('admin_site.html') html = template.render(error=e.msg, user=user, email=email) self.response.out.write(html) return else: template = env.get_template('admin_site.html') html = template.render() self.response.out.write(html)
def get(self, user): group_name = self.request.get("selected_group") group = Group.all().ancestor(ModelrParent.all().get()) group = group.filter("name =", group_name).fetch(1) if (not group): self.redirect('/profile') return group = group[0] if group.admin != user.user_id: self.redirect('/profile') return users = [] for user_id in group.allowed_users: u = User.all().ancestor(ModelrParent.all().get())\ .filter("user_id =", user_id) u = u.fetch(1) if u: users.append(u[0]) params = self.get_base_params(user=user, users=users, group=group) template = env.get_template('manage_group.html') html = template.render(params) activity = "manage_group" ActivityLog(user_id=user.user_id, activity=activity, parent=ModelrParent.all().get()).put() self.response.out.write(html)
def get(self): template_params = self.get_base_params() template = env.get_template('demo.html') html = template.render(template_params) self.response.out.write(html)
def get(self): g_user = users.get_current_user() if not g_user: login_url = users.create_login_url('/') template = env.get_template("main.html") html = template.render(login_url=login_url, stats=statistics()) self.response.out.write(html) else: logout_url = users.create_logout_url('/') login_url = None email_hash = hashlib.md5(g_user.email()).hexdigest() user_obj = User.all().ancestor(db_parent) user_obj = user_obj.filter("user_id =", g_user.user_id()) user_obj = user_obj.get() if not user_obj: user_obj = User(user_id=g_user.user_id(), nickname=g_user.nickname(), parent=db_parent, email=g_user.email()) user_obj.put() self.redirect('/library')
def get(self): user = users.get_current_user() # Unlogged-in people can see the library. if user: upload_url = blobstore.create_upload_url('/upload') user_id = user.user_id() else: upload_url = '' user_id = '' # Get the images. # We need to delete images without titles. # I would rather do this in add_image.html # but it seems you can't trigger deletion # with $(window).on(beforeunload)... # https://developer.mozilla.org/en-US/docs/WindowEventHandlers.onbeforeunload if users.is_current_user_admin(): # Then see everything. img_objs = ImageObject.all().ancestor(db_parent).fetch(1000) else: # Then omit aborted uploads. img_objs = ImageObject.all().ancestor(db_parent).filter( "title !=", '').fetch(1000) template = env.get_template('choose.html') params = self.get_base_params(img_objs=img_objs, upload_url=upload_url, user_id=user_id) html = template.render(params) self.response.write(html)
def get(self): user = self.verify() template_params = self.get_base_params(user=user) template = env.get_template('features.html') html = template.render(template_params) self.response.out.write(html)
def get(self): user_id = users.get_current_user().user_id() image_key = self.request.get("image_key") img_obj = ImageObject.get_by_id(int(image_key), parent=db_parent) # DO THE MAGIC! image = get_result_image(img_obj) picks = Picks.all().ancestor(img_obj).fetch(1000) pick_users = [p.user_id for p in picks] count = len(pick_users) owner_user = img_obj.user_id # Filter out the owner and current user if user_id in pick_users: pick_users.remove(user_id) if owner_user in pick_users: pick_users.remove(owner_user) # Get a list of comment strings, if any. comments = Comment.all().ancestor(img_obj).order('datetime').fetch( 1000) params = self.get_base_params(count=count, image=image, img_obj=img_obj, user_id=user_id, owner_user=owner_user, pick_users=pick_users, comments=comments) template = env.get_template("results.html") html = template.render(params) self.response.write(html)
def get(self): # allow guests as well user = self.verify() all_rocks = get_all_items_user(Rock, user) rock_json = json.dumps([rock.json for rock in all_rocks]) all_fluids = get_all_items_user(Fluid, user) fluid_json = json.dumps([fluid.json for fluid in all_fluids]) colour_map = {item.name: RGBToString(colour) for (item, colour) in zip(all_rocks + all_fluids, usgs_colours)} colour_map = json.dumps(colour_map) params = self.get_base_params(user=user, db_rocks=rock_json, db_fluids=fluid_json, colour_map=colour_map) template = env.get_template('1D_model.html') html = template.render(params) self.response.write(html)
def get(self, user): if "admin" not in user.group: self.redirect('/') template = env.get_template('admin_site.html') html = template.render(self.get_base_params(user=user)) self.response.out.write(html)
def get(self): template = env.get_template('signup.html') error = self.request.get("error") if error == 'auth_failed': error_msg = "failed to authorize user" html = template.render(error=error_msg) else: html = template.render() self.response.out.write(html)
def get(self): # Redirect to the dashboard if the user is logged in user = self.verify() if user: self.redirect('/dashboard') template_params = self.get_base_params() template = env.get_template('index.html') html = template.render(template_params) self.response.out.write(html)
def post(self, user): template = env.get_template('message.html') try: cancel_subscription(user) msg = "Unsubscribed from Modelr" html = template.render(user=user, msg=msg) self.response.write(html) except AuthExcept as e: html = template.render(user=user, error=e.msg) self.response.write(html)
def post(self, subpage): email = self.request.get('email') message = self.request.get('message') user = self.verify() try: send_message("User message %s" % email, message) template = env.get_template('message.html') msg = ("Thank you for your message. " + "We'll be in touch shortly.") html = template.render(success=msg, user=user) self.response.out.write(html) except: template = env.get_template('message.html') msg = ('Your message was not sent. ' + '<button class="btn btn-default" ' + 'onclick="goBack()">Go back and retry</button>') html = template.render(warning=msg, user=user) self.response.out.write(html)
def get(self): user = self.verify() template_params = self.get_base_params(user=user) template = env.get_template('privacy.html') html = template.render(template_params) activity = "privacy" if user: ActivityLog(user_id=user.user_id, activity=activity, parent=ModelrParent.all().get()).put() self.response.out.write(html)
def post(self, user): current_pword = self.request.get("current_pword") new_password = self.request.get("new_password") verify = self.request.get("verify") template = env.get_template('profile.html') try: reset_password(user, current_pword, new_password, verify) msg = ("You reset your password.") html = template.render(user=user, success=msg) self.response.out.write(html) except AuthExcept as e: html = template.render(user=user, error=e.msg)
def get(self, user): groups = [] for group in user.group: g = Group.all().ancestor(ModelrParent.all().get())\ .filter("name =", group) g = g.fetch(1) if g: groups.append(g[0]) template_params = self.get_base_params(user=user, groups=groups, stripe_key=stripe_public_key) if self.request.get("createfailed"): create_error = "Group name exists" template_params.update(create_error=create_error) if self.request.get("joinfailed"): join_error = "Group does not exists" template_params.update(join_error=join_error) # Get the user permission requests req = GroupRequest.all().ancestor(ModelrParent.all().get())\ .filter("user ="******"admin =", user.user_id) admin_groups = admin_groups.fetch(100) req = [] for group in admin_groups: # Check for a request g_req = GroupRequest.all().ancestor(ModelrParent.all().get()) g_req = g_req.filter("group =", group.name).fetch(100) req = req + [{'group': group.name, 'user': User.all().filter("user_id =", i.user).get()} for i in g_req] template_params.update(admin_req=req) template = env.get_template('profile.html') html = template.render(template_params) activity = "profile_view" ActivityLog(user_id=user.user_id, activity=activity, parent=ModelrParent.all().get()).put() self.response.out.write(html)
def post(self): email = self.request.get('email') template = env.get_template('message.html') try: forgot_password(email, parent=ModelrParent.all().get()) msg = ("Please check your inbox and spam folder " + "for our message. Then click on the link " + "in the email.") html = template.render(success=msg) self.response.out.write(html) except AuthExcept as e: html = template.render(error=e.msg) self.response.out.write(html)
def get(self, user_id): image_key = self.request.get("image_key") img_obj = ImageObject.get_by_id(int(image_key), parent=db_parent) if ((user_id == img_obj.user_id) or (users.is_current_user_admin())): template_params = self.get_base_params() template_params.update(img_obj=img_obj, image_key=image_key) template = env.get_template("add_image.html") html = template.render(template_params) self.response.write(html) else: raise Exception
def get(self): # Allow guests user = self.verify() # Make the upload url upload_url = blobstore.create_upload_url('/upload') params = self.get_base_params(user=user, upload_url=upload_url) # Check if there was an upload error (see Upload handler) if self.request.get("error"): params.update(error="Invalid image file") template = env.get_template('model2.html') html = template.render(params) self.response.out.write(html)
def get(self): user_id = self.request.get("user_id") try: # Change this to check the user can be validated and # get temp_user user = verify_signup(user_id, ModelrParent.all().get()) except AuthExcept: self.redirect('/signup?error=auth_failed') return msg = "Thank you for verifying your email address." params = self.get_base_params(user=user, stripe_key=stripe_public_key) template = env.get_template('checkout.html') html = template.render(params, success=msg) self.response.out.write(html)
def get(self, user_id, id=None): if id: key_id = id if key_id == 'hohoho': key_id = '5156048109305856' else: key_id = self.request.get("image_key") img_obj = ImageObject.get_by_id(int(key_id), parent=db_parent) # Write the page. template = env.get_template('pickpoint.html') params = self.get_base_params(img_obj=img_obj) html = template.render(params) self.response.write(html)
def get(self, subpage): if subpage: page = subpage else: page = 'help' page += '.html' user = self.verify() template_params = self.get_base_params(user=user) template = env.get_template(page) html = template.render(template_params) activity = "help" if user: ActivityLog(user_id=user.user_id, activity=activity, parent=ModelrParent.all().get()).put() self.response.out.write(html)
def post(self): email = self.request.get('email') password = self.request.get('password') redirect = self.request.get('redirect').encode('utf-8') try: signin(email, password, ModelrParent.all().get()) cookie = get_cookie_string(email) self.response.headers.add_header('Set-Cookie', cookie) if redirect: self.redirect(redirect) else: self.redirect('/') except AuthExcept as e: template = env.get_template('signin.html') msg = e.msg html = template.render(email=email, error=msg) self.response.out.write(html)
def get(self): status = self.request.get("verified") redirect = self.request.get('redirect') if status == "true": msg = ("Your account has been created and your card has " "been charged. Welcome to Modelr!") error_msg = None elif status == "false": error_msg = ("Failed to create account. Your credit card will " "not be charged.") msg = None else: msg = None error_msg = None template = env.get_template('signin.html') html = template.render(success=msg, error=error_msg, redirect=redirect) self.response.out.write(html)
def get(self, user): template_params = self.get_base_params(user=user) # Get the list of issues from GitHub. # First, set up the request. gh_api_key = 'token 89c9d30cddd95358b1465d1dacb1b64597b42f89' url = 'https://api.github.com/repos/kwinkunks/modelr_app/issues' params = {'labels': 'wishlist', 'state': 'open'} query = urllib.urlencode(params) full_url = '{0}?{1}'.format(url, query) # Now make the request. req = urllib2.Request(full_url) req.add_header('Authorization', gh_api_key) try: resp = urllib2.urlopen(req) raw_json = resp.read() git_data = json.loads(raw_json) except: err_msg = ('Failed to retrieve issues from GitHub. ' + 'Please check back later.') git_data = {} else: err_msg = '' for issue in git_data: # Get the user's opinion. status = None if user: user_issues = Issue.all().ancestor(user) user_issue = user_issues.filter("issue_id =", issue["id"]).get() if user_issue: status = user_issue.vote else: Issue(parent=user, issue_id=issue["id"]).put() up, down = 0, 0 if status == 1: up = 'true' if status == -1: down = 'true' issue.update(status=status, up=up, down=down) # Get the count. We have to read the database twice. down_votes = Issue.all().ancestor(ModelrParent.all().get())\ .filter("issue_id =", issue["id"])\ .filter("vote =", -1).count() up_votes = Issue.all().ancestor(ModelrParent.all().get())\ .filter("issue_id =", issue["id"])\ .filter("vote =", 1).count() count = up_votes - down_votes issue.update(up_votes=up_votes, down_votes=down_votes, count=count) # Write out the results. template_params.update(issues=git_data, error=err_msg ) template = env.get_template('feedback.html') html = template.render(template_params) self.response.out.write(html)
def get(self, user): template_params = self.get_base_params(user=user) template = env.get_template('settings.html') html = template.render(template_params) self.response.out.write(html)
def get(self): template_params = self.get_base_params() template = env.get_template('about.html') html = template.render(template_params, stats=statistics()) self.response.write(html)
def get(self): template = env.get_template("404.html") html = template.render() self.response.write(html)
def get(self): template = env.get_template('forgot.html') html = template.render() self.response.out.write(html)