def delete(self, request): gist = self.gist user = request.user if not user or user.username != gist.owner_id: raise AccessError() gist.delete() return request.redirect('/gist/%s' % user.username)
def _q_index(request): user = request.user my_issues = [] if user: username = user.username your_projects = CodeDoubanProject.get_projects(owner=username, sortby='lru') watched_projects = CodeDoubanProject.get_watched_others_projects_by_user( # noqa user=username, sortby='lru') teams = Team.get_by_user_id(user.name) actions = get_user_inbox(username).get_actions( stop=PAGE_ACTIONS_COUNT - 1) badge_items = user.get_badge_items() # pull request # your_tickets = user.get_user_pull_requests_rank(limit=5) your_tickets = user.get_user_submit_pull_requests(limit=5) # issue project_ids = CodeDoubanProject.get_ids(user.name) dt = { 'state': "open", 'limit': 5, 'start': 0, } my_issues = ProjectIssue.gets_by_project_ids(project_ids, **dt) return st('newsfeed.html', **locals()) return request.redirect("/teams/")
def __login_authorize(request, client_id, redirect_uri, response_type, state): params = dict(client_id=client_id, redirect_uri=redirect_uri, response_type=response_type, state=state) login_url = request.get_url() + '?' + urllib.urlencode(params) return request.redirect(login_url)
def secret(self, request): current_user = request.user if not current_user or current_user.username != self.name: return request.redirect('/gist/%s' % self.name) gists = Gist.secrets_by_user(self.name, start=self.start, limit=5, sort=self.sort, direction=self.direction) return self._render(request, gists)
def check_permission(self, request, proj_name): project = CodeDoubanProject.get_by_name(proj_name) user = request.user if not project or \ not user and project.intern_banned or \ user and user.is_intern and project.intern_banned \ and not project.is_admin(user.username): return request.redirect(User.create_login_url(request.url))
def authorize(request): client_id = __check_request_required_var('client_id') redirect_uri = __check_request_required_var('redirect_uri') response_type = __check_request_required_var('response_type') refuse = request.get_form_var('refuse') state = request.get_form_var('state', '') cid = request.get_form_var('cid', '') connector = '?' if redirect_uri.find('?') == -1 else '&' if refuse: return request.redirect("%s%serror=access_denied" % (redirect_uri, connector)) if not request.user: return __login_authorize(request, client_id, redirect_uri, response_type, state) apikey = ApiKey.get_by_client_id(client_id) if not apikey: raise InvalidRequest(err.invalid_apikey, ext=client_id) if apikey.status == ApiKey.STATUS_BLOCKED: raise InvalidRequest(err.apikey_blocked, ext=client_id) if apikey.status != ApiKey.STATUS_DEV: if apikey.redirect_uri != redirect_uri: raise InvalidRequest(err.redirect_uri_mismatch, ext=redirect_uri) user_id = request.user.username if request.method == 'POST' and OAuthConfirm.confirm(user_id, cid): code = OAuthCode(apikey.client_id, user_id).code params = dict(code=code, state=state) return request.redirect("%s%s%s" % (redirect_uri, connector, urllib.urlencode(params))) cid = OAuthConfirm(user_id).cid return st('/oauth_confirm.html', **dict(request=request, cid=cid, apikey=apikey))
def _q_lookup(self, request, comment_id): if request.method == 'POST': act = request.get_form_var('act', None) if act and act in ('delete', 'update'): comment = GistComment.get(comment_id) if act == 'delete' and comment: if comment.can_delete(request.user.username): comment.delete() return json.dumps({'r': 1}) raise TraversalError( "Unable to delete comment %s" % comment_id) return request.redirect(self.gist.url)
def _q_lookup(self, request, comment_id): if request.method == 'POST': act = request.get_form_var('act', None) if act and act in ('delete', 'update'): comment = GistComment.get(comment_id) if act == 'delete' and comment: if comment.can_delete(request.user.username): comment.delete() return json.dumps({'r': 1}) raise TraversalError("Unable to delete comment %s" % comment_id) return request.redirect(self.gist.url)
def authorize(request): client_id = __check_request_required_var('client_id') redirect_uri = __check_request_required_var('redirect_uri') response_type = __check_request_required_var('response_type') refuse = request.get_form_var('refuse') state = request.get_form_var('state', '') cid = request.get_form_var('cid', '') connector = '?' if redirect_uri.find('?') == -1 else '&' if refuse: return request.redirect("%s%serror=access_denied" % (redirect_uri, connector)) if not request.user: return __login_authorize(request, client_id, redirect_uri, response_type, state) apikey = ApiKey.get_by_client_id(client_id) if not apikey: raise InvalidRequest(err.invalid_apikey, ext=client_id) if apikey.status == ApiKey.STATUS_BLOCKED: raise InvalidRequest(err.apikey_blocked, ext=client_id) if apikey.status != ApiKey.STATUS_DEV: if apikey.redirect_uri != redirect_uri: raise InvalidRequest(err.redirect_uri_mismatch, ext=redirect_uri) user_id = request.user.username if request.method == 'POST' and OAuthConfirm.confirm(user_id, cid): code = OAuthCode(apikey.client_id, user_id).code params = dict(code=code, state=state) return request.redirect( "%s%s%s" % (redirect_uri, connector, urllib.urlencode(params))) cid = OAuthConfirm(user_id).cid return st('/oauth_confirm.html', **dict(request=request, cid=cid, apikey=apikey))
def edit(self, request): gist = self.gist user = request.user if not user or user.username != gist.owner_id: raise AccessError() if request.method == 'POST': desc, is_public, names, contents, oids = _get_req_gist_data( request) gist.update(desc, names, contents, oids) return request.redirect(gist.url) tdt = dict(request=request, gist=gist, user=user) if is_mobile_device(request): return st('/m/gist/edit.html', **tdt) return st('/gist/edit.html', **tdt)
def _q_index(request): user = request.user if request.method == 'POST': desc, is_public, names, contents, oids = _get_req_gist_data(request) user = request.user owner_id = user and user.username or Gist.ANONYMOUS gist = Gist.add(desc, owner_id, is_public, names, contents) return request.redirect(gist.url) tdt = dict(request=request, gists=[], user=user) if user: gists = Gist.gets_by_owner(user.username, limit=4) tdt.update(dict(gists=gists)) if is_mobile_device(request): return st('/m/gist/index.html', **tdt) return st('/gist/index.html', **tdt)
def fork(self, request): gist = self.gist new_gist = gist.fork(request.user.username) return request.redirect(new_gist.url)
def _(*args, **kwargs): user = request.user if not user: return request.redirect("/hub/projects") return func(*args, **kwargs)
def unstar(self, request): star = GistStar.get_by_gist_and_user(self.id, request.user.username) if star: star.delete() return request.redirect(self.gist.url)
def re_index_docs(self): project = CodeDoubanProject.get_by_name(self.proj_name) index_a_project_docs(project.id) return request.redirect("/%s/" % self.proj_name)
def re_index(self, request): index_a_gist(self.id) return request.redirect(self.gist.url)
def _q_index(self, request): if request.method == 'POST': content = request.get_form_var('content', '') if content: GistComment.add(self.gist.id, request.user.username, content) return request.redirect(self.gist.url)
def star(self, request): GistStar.add(self.id, request.user.username) return request.redirect(self.gist.url)