コード例 #1
0
ファイル: edit.py プロジェクト: ablanco/GECO
    def POST(self, name):
        session = web.ses
        cookie = session.get('gso', '')
        gso = get_gso(cookie=cookie)
        password = gso.get_password(name)
        myedit_form = edit_form(password)
        if not myedit_form.validates():
            return self.render.new(web.ses.username, myedit_form())

        else:
            session = web.ses
            values = web.input()
            args = {}
            args['account'] = values['account']
            password = values['cpassword']
            args['description'] = values['description']
            args['type'] = values['type']
            args['expiration'] = int(values['expiration'])

            cookie = session.get('gso', '')
            try:
                gso = get_gso(cookie=cookie)
                gso.del_password(name)
                gso.set_raw_password(name, password, args)
                flash("Contraseña <strong>'%s'</strong> modificada" % str(name))
            except:
                flash("Contraseña '%s' <strong>NO</strong> modificada" % str(name), 'error')

            raise web.seeother('/')
コード例 #2
0
ファイル: edit.py プロジェクト: ablanco/GECO
 def GET(self, name):
     session = web.ses
     cookie = session.get('gso', '')
     gso = get_gso(cookie=cookie)
     password = gso.get_password(name)
     myedit_form = edit_form(password)
     return self.render.new(web.ses.username, myedit_form(),
             title="Editar Contraseña")
コード例 #3
0
ファイル: options.py プロジェクト: ablanco/GECO
def check_user_password(username, password):
    gso = get_gso()
    gso.auth(username, password)

    if gso.name:
        return True
    else:
        return False
コード例 #4
0
ファイル: delete.py プロジェクト: ablanco/GECO
    def GET(self, name):
        # TODO preguntar
        username = session.get("username", "")
        cookie = session.get("gso", "")
        gso = get_gso(cookie=cookie)

        gso.del_password(name)
        flash("Contraseña '%s' borrada" % str(name))
        raise web.seeother("/list")
コード例 #5
0
ファイル: login.py プロジェクト: ablanco/GECO
 def GET(self):
     username = session.get('username', '')
     session.username = ''
     cookie = session.get('gso', '')
     gso = get_gso(cookie=cookie)
     gso.logout()
     session.gso = ''
     flash("Usuario desautenticado")
     raise web.seeother('/index')
コード例 #6
0
ファイル: options.py プロジェクト: ablanco/GECO
    def POST(self):
        session = web.ses
        cookie = session.get('gso', '')
        gso = get_gso(cookie=cookie)
        values = web.input()

        ####### CHANGE PASSWORD #######
        if 'change' in values:
            if not change_pass.validates():
                return self.render.options(session.username, web.SERVER,
                        change_pass(), delete())
            elif not check_user_password(session.username, values['password']):
                flash("Contraseña de usuario incorrecta", "error")
                raise web.seeother('/options')
            else:
                gso.change_password(values['rpassword'])
                flash("Contraseña cambiada correctamente")
                raise web.seeother('/options')

        ####### UNREGISTER #######
        elif 'delete' in values:
            if not delete.validates():
                return self.render.options(session.username, web.SERVER,
                        change_pass(), delete())
            elif not check_user_password(session.username, values['password']):
                flash("Contraseña de usuario incorrecta", "error")
                raise web.seeother('/options')
            else:
                flash("Usuario <b>%s</b> borrado" % session.username)
                session.username = ''
                session.gso = ''
                gso.unregister()
                raise web.seeother('/login')

        ####### importar #######
        elif 'restore' in values:
            file = web.input(myfile={})
            to_import = file['myfile'].value
            filename = file['myfile'].filename
            gso.restore(to_import)
            flash("Fichero de contraseñas <b>%s</b> importado" % filename)
            raise web.seeother('/options')

        raise web.seeother('/options')
コード例 #7
0
ファイル: login.py プロジェクト: ablanco/GECO
    def POST(self):
        lform = form_login()
        if not lform.validates():
            return self.render.login(form_login=lform)

        values = web.input()
        name = values['username']
        pwd = values['password']

        gso = get_gso()
        gso.auth(name, pwd)

        if gso.name:
            session.username = name
            session.gso = gso.cookie
        else:
            flash("Usuario o contraseña incorrectos", "error")
            raise web.seeother('/login')

        raise web.seeother('/index')
コード例 #8
0
ファイル: list.py プロジェクト: ablanco/GECO
    def GET(self):
        username = session.get('username', '')
        cookie = session.get('gso', '')
        gso = get_gso(cookie=cookie)

        pwdlist = gso.get_all_passwords()
        def cmp(x, y):
            if x['name'] > y['name']: return 1
            else: return -1
        pwdlist.sort(cmp)
        # Cambiando el formato de la fecha
        for pwd in pwdlist:
            exp = pwd['expiration']
            expdate = datetime.datetime.fromtimestamp(float(exp))
            pwd['expiration'] = '%02d/%02d/%04d' % (expdate.day,
                    expdate.month, expdate.year)
            pwd['days'] = (expdate - datetime.datetime.now()).days

        body = self.render.index(username=username,
                pwdlist=pwdlist)

        return body
コード例 #9
0
ファイル: login.py プロジェクト: ablanco/GECO
    def POST(self):
        rform = generate_reg_form(*session.rform)
        if not rform:
            raise web.seeother('/login')

        if not rform.validates():
            return self.render.login(form_reg=rform)
        else:
            gso = get_gso()

            values = web.input()
            name = values['rusername']
            pwd = values['rpassword']

            if gso.check_user_name(name):
                errors = [u"%s no está disponible" % name]
                flash(errors, 'error')
                return self.render.login(form_reg=rform)
            else:
                gso.register(name, pwd)

            flash([u"Registrado con exito %s" % name])
            raise web.seeother("/login")
コード例 #10
0
ファイル: new_password.py プロジェクト: ablanco/GECO
    def POST(self):
        nform = new_form()
        if not nform.validates():
            return self.render.new(web.ses.username, nform)

        else:
            session = web.ses
            values = web.input()
            name = values['name']
            args = {}
            args['account'] = values['account']
            password = values['cpassword']
            args['description'] = values['description']
            args['type'] = values['type']
            args['expiration'] = int(values['expiration'])

            cookie = session.get('gso', '')
            gso = get_gso(cookie=cookie)
            gso.set_raw_password(name, password, args)

            flash("Contraseña '%s' añadida" % str(name))

            raise web.seeother('/')
コード例 #11
0
ファイル: options.py プロジェクト: ablanco/GECO
 def GET(self):
     session = web.ses
     cookie = session.get('gso', '')
     gso = get_gso(cookie=cookie)
     return self.render.options(web.ses.username, web.SERVER, change_pass(),
             delete())
コード例 #12
0
ファイル: options.py プロジェクト: ablanco/GECO
 def GET(self):
     session = web.ses
     cookie = session.get('gso', '')
     gso = get_gso(cookie=cookie)
     web.header('Content-type','text/txt')
     return gso.export()