def get(self, username): """display profile of user with username, if None, display logged in user """ mode = self.request.get('mode') upload_url = "" if mode != 'edit': template = 'profile/profile.html' else: if self.username != username: return self.abort(403) template = 'profile/edit.html' if self.user: user = User.get_by_id(long(self.user_id)) else: user = None if user: if username != user.username: profile = User.get_user(username) if not profile or \ (profile.public == False and \ profile.username != user.username and \ profile.username not in user.friends): #TODO: redirect to profile forbidden page return self.abort(404) else: profile = user self.form.process(obj=profile) all, ic, cc = self.organize_courses_for(profile) projects = Project.get_projects_by_ids(profile.projects) context = {'profile': profile, 'user': user, 'username': username, 'gravatar': profile.gravatar, 'friend_btn': username != user.username and username not in user.friends, 'courses_all': Course.courses_to_dict(), 'courses_completed': cc, 'courses_incomplete': ic, 'projects': projects, 'upload_url': upload_url, } self.render_template(template, **context) else: self.redirect(self.uri_for('login'))
def post(self): """Edit settings """ if not self.form.validate(): return self.get() user = User.get_by_id(long(self.user_id)) self.form.populate_obj(user) user.put() message = _("Settings saved") self.add_message(message, 'info') self.redirect(self.request.url)
def get(self, **kwargs): user_session = self.user user_session_object = self.auth.store.get_session(self.request) if self.user_id: user_info = User.get_by_id(long( self.user_id )) user_info_object = self.auth.store.user_model.get_by_auth_token( user_session['user_id'], user_session['token']) try: params = { "user_session" : user_session, "user_session_object" : user_session_object, "user_info" : user_info, "user_info_object" : user_info_object, "userinfo_logout-url" : self.auth_config['logout_url'], "friends": user_info.get_friends() } return self.render_template('userhome.html', **params) except (AttributeError, KeyError), e: return "Secure zone error:" + " %s." % e
def view_project(self, mode, username): if mode in ('add', 'edit'): upload_url = blobstore.create_upload_url( self.uri_for('project-%s' % mode, username=username), max_bytes_per_blob=MAX_IMG_SIZE) template = 'profile/{}_project.html'.format(mode) if self.user: user = User.get_by_id(long(self.user_id)) projects = Project.get_projects_by_ids(user.projects) context = { 'user': user, 'gravatar': user.gravatar, 'projects': projects, 'upload_url': upload_url, } return self.render_template(template, **context) self.redirect(self.uri_for('login', continue_url=self.request.path))
def post(self, channelname): '''Displays chat UI''' username = self.username # if chat.get_user(username): # message = _("Username already in use") # self.add_message(message, 'error') # return self.redirect(self.request.url) available_channels = set(Course.available_course_ids()) available_channels.add('Global') if channelname not in available_channels: #TODO: doesn't return info message = _("Channel not available") self.add_message(message, 'error') return self.redirect_to(self.request.url) channelname = "#{}".format(channelname) token = chat.channel_api.create_channel(username) # Expires after 120 minutes logging.info("%s is a token. type of token: %s"%(token,type(token))) identifier = os.urandom(16).encode('hex') user = ChatUser(user=User.get_by_id(self.user_id), id=username, username=username, identifier=identifier, startingchannel=channelname, connected=True, contacts=json.dumps([ ]), channels=json.dumps([ ])) user.store() self.response.out.write(self.render_template("chat/chat.html", token=token, username=username, identifier=identifier, server="!AwesomeServer", room=channelname))
def get(self): profile = User.get_by_id(long(self.user_id)) self.form.process(obj=profile) self.render_template('usersettings.html')