Example #1
0
def login(username, passwd):
    try:
        u = Academic(username)
        if u.authenticates(passwd):
            return u.login()
    except:
        return False
Example #2
0
def login(username, passwd):
    try:
        u = Academic(username)
        if u.authenticates(passwd):
            return u.login()
    except:
        return False
Example #3
0
 def GET(self, username=""):
     if username:
         try:
             user = Academic.get(username, safe=True)
             return render().profiles.index(user)
         except:
             pass
     raise web.seeother("/")
Example #4
0
 def GET(self, username=""): 
     if username:
         try:
             user = Academic.get(username, safe=True)
             return render().profiles.index(user)
         except:
             pass
     raise web.seeother('/')
Example #5
0
    def POST(self):
        i = web.input(username='', passwd='', redir='/')

        if session().logged:
            raise web.seeother(i.redir)

        if not Academic.validates(i.username, i.passwd):
            return render().auth.login(err=AUTH_ERR['malformed_creds'])

        # attempting login first
        if login(i.username, i.passwd):
            raise web.seeother(i.redir)

        try:
            u = Academic.register(i.username, i.passwd, **Academic.defaults())
            u.login()
            raise web.seeother(i.redir)
        except Academic.RegistrationException as e:
            err = AUTH_ERR[str(e.message)]
        return render().auth.register(err=err)
Example #6
0
    def POST(self):
        """TODO: handle redir"""
        i = web.input(username='', passwd='', redir='/')

        if not Academic.validates(i.username, i.passwd):
            return render().auth.login(err=AUTH_ERR['malformed_creds'])

        if login(i.username, i.passwd):
            raise web.seeother(i.redir)

        return render().auth.login(err=AUTH_ERR['wrong_creds'])
Example #7
0
    def POST(self):
        i = web.input(username='', passwd='', redir='/')

        if session().logged:
            raise web.seeother(i.redir)

        if not Academic.validates(i.username, i.passwd):
            return render().auth.login(err=AUTH_ERR['malformed_creds'])

        # attempting login first
        if login(i.username, i.passwd):
            raise web.seeother(i.redir)

        try:
            u = Academic.register(i.username, i.passwd, **Academic.defaults())
            u.login()
            raise web.seeother(i.redir)
        except Academic.RegistrationException as e:
            err = AUTH_ERR[str(e.message)]
        return render().auth.register(err=err)
Example #8
0
    def POST(self):
        """TODO: handle redir"""
        i = web.input(username='', passwd='', redir='/')

        if not Academic.validates(i.username, i.passwd):
            return render().auth.login(err=AUTH_ERR['malformed_creds'])

        if login(i.username, i.passwd):
            raise web.seeother(i.redir)

        return render().auth.login(err=AUTH_ERR['wrong_creds'])
Example #9
0
    def GET(self):
        """Research http://news.ycombinator.com/item?id=1781013 how
        hacker news voting works and emulate

        XXX Restrict voting to session().logged users + element id
        must not already exist in user['votes'] set.

        XXX Requires accounting + record keeping

        XXX Preserve the web.ctx GET query params to preserve sorting
        / ordering

        Algo:
        1. Add karma to paper['submitter'] if vote
        2. Record vote in user['votes'] set by id
        - calc unique vote id via some linear combination of paper pid
          (and or comment id [cid], if it exists)
        """
        i = web.input(pid=None, sort="popular")

        if not session().logged:
            raise web.seeother('/register')

        if i.pid:
            i.pid = int(i.pid)
            u = Academic(session()['uname'])
            p = Paper(i.pid)
            if canvote(u, i.pid):
                try:
                    # move set_vote to paper api
                    p.votes += 1
                    p.save()
                    record_vote(u['username'], p.submitter, i.pid)
                except IndexError:
                    return "No such items exists to vote on"
        raise web.seeother('/?sort=%s' % i.sort)
Example #10
0
 def GET(self):
     """Invalidate session, etc"""
     i = web.input(redir='/')
     Academic.logout()
     raise web.seeother(i.redir)
Example #11
0
 def GET(self):
     """Invalidate session, etc"""
     i = web.input(redir='/')
     Academic.logout()
     raise web.seeother(i.redir)