Example #1
0
 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)
Example #2
0
 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)
Example #3
0
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/")
Example #4
0
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)
Example #5
0
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/")
Example #6
0
    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)
Example #7
0
 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))
Example #8
0
 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))
Example #9
0
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))
Example #10
0
    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)
Example #11
0
 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)
Example #12
0
 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)
Example #13
0
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))
Example #14
0
 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)
Example #15
0
 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)
Example #16
0
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)
Example #17
0
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)
Example #18
0
 def fork(self, request):
     gist = self.gist
     new_gist = gist.fork(request.user.username)
     return request.redirect(new_gist.url)
Example #19
0
 def _(*args, **kwargs):
     user = request.user
     if not user:
         return request.redirect("/hub/projects")
     return func(*args, **kwargs)
Example #20
0
 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)
Example #21
0
 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)
Example #22
0
 def re_index(self, request):
     index_a_gist(self.id)
     return request.redirect(self.gist.url)
Example #23
0
 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)
Example #24
0
 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)
Example #25
0
 def re_index(self, request):
     index_a_gist(self.id)
     return request.redirect(self.gist.url)
Example #26
0
 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)
Example #27
0
 def star(self, request):
     GistStar.add(self.id, request.user.username)
     return request.redirect(self.gist.url)
Example #28
0
 def star(self, request):
     GistStar.add(self.id, request.user.username)
     return request.redirect(self.gist.url)
Example #29
0
 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)
Example #30
0
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)
Example #31
0
File: util.py Project: zeus911/code
 def _(*args, **kwargs):
     user = request.user
     if not user:
         return request.redirect("/hub/projects")
     return func(*args, **kwargs)
Example #32
0
 def fork(self, request):
     gist = self.gist
     new_gist = gist.fork(request.user.username)
     return request.redirect(new_gist.url)