Beispiel #1
0
    def POST(self):
        # Receive the passphrase through query params
        query = web.input(
            password = None,
            maxdays = 10,
            maxviews = 10
        )

        # Change output to JSON
        web.header('Content-type', 'application/json')

        # Generate unique code for phrase
        uuid = uuid4()
        phraseCode = str(uuid).split('-')[0]

        try:
            phraseid = model.add_phrase(
                phrase = query.password,
                code = base36decode(phraseCode),
                maxdays = int(query.maxdays),
                maxviews = int(query.maxviews)
            )
        except(model.ModelError), e:
            web.internalerror(str(e))
            return json.dumps(dict(error=str(e)))
Beispiel #2
0
    def DELETE(self, arg):
        # Change output to JSON
        web.header('Content-type', 'application/json')

        if not arg:
            web.internalerror()
            return json.dumps(dict(error='must have code'))

        try:
            phrase = model.get_phrase(code=base36decode(arg))
            seqID = phrase.get('id')
        except(), e:
            web.notfound()
            return json.dumps(dict(error='not found'))
Beispiel #3
0
    def GET(self, arg=None):
        # Init templator
        tpl = web.template.render(settings.TEMPLATE_DIR, base='base', globals={'_':_})

        # No argument, just return index
        if not arg:
            return tpl.index()

        phraseCode = base36decode(arg)

        # If an argument is provided then someone is trying to view a password
        try:
            phrase = model.get_phrase(
                code = phraseCode
            )
            seqID = phrase.get('id')
        except(model.ModelError), e:
            web.notfound()
            return tpl.notfound()
Beispiel #4
0
                web.internalerror(str(e))
                raise

            try:
                generatedPass = generate_password(
                    int(query.words), wordlist
                )
            except(), e:
                web.internalerror(str(e))
                raise

            web.ok()
            return json.dumps(dict(phrase=generatedPass))

        # Request for a pre-existing phrase
        phraseCode = base36decode(arg)

        try:
            phrase = model.get_phrase(base36decode(phraseCode))
            seqID = phrase.get('id')
        except(model.ModelError), e:
            web.notfound()
            return json.dumps(dict(error='not found'))
        except(), e:
            web.internalerror(str(e))
            raise

        # Update number of views
        try:
            model.update_phrase(seqID)
        except(), e: