Esempio n. 1
0
File: users.py Progetto: masom/Puck
    def edit(self, id, **post):
        user = Users.first(id=id)

        if not user:
            cherrypy.session['flash'] = "404 User Not Found"
            raise cherrypy.HTTPRedirect('/users')

        meta, auth_meta = self.get_meta()
        try:
            data = user.get_meta_data()
            for k in data:
                if not k in auth_meta:
                    continue
                auth_meta[k] = data[k]
        except:
            pass

        if post:
            fields = ['name', 'username', 'email', 'user_group']
            data = self._get_data('user', fields, post)
            self._set_data(user, data)
            auth_meta = self._get_data('auth_meta', meta, post)
            user.set_meta_data(auth_meta)
            data['virt_auth_data'] = user.virt_auth_data
            fields.append('virt_auth_data')

            if user.update(data, fields):
                cherrypy.session['flash'] = "User successfully updated."
                raise cherrypy.HTTPRedirect('/users')

        env=dict(user = user, meta=meta, auth_meta=auth_meta)
        return self.render("/users/edit.html", crumbs=self.crumbs, **env)
Esempio n. 2
0
File: users.py Progetto: masom/Puck
    def delete(self, id):
        jail = Users.first(id=id)
        msg = "The user could not be deleted."
        if jail:
            if Users.delete(jail):
                msg = "User deleted."

        cherrypy.session['flash'] = msg
        raise cherrypy.HTTPRedirect('/users')
Esempio n. 3
0
File: root.py Progetto: masom/Puck
    def _login(self, post):
            fields = ['user.username', 'user.password']
            for f in fields:
                if not f in post:
                    cherrypy.session['flash'] = "Invalid form data."
                    return False

            hash_password = Users.hash_password(post['user.password'])
            user = Users.first(username=post['user.username'], password=hash_password)

            if not user:
                cherrypy.session['flash'] = 'Invalid username or password.'
                return False
            creds = user.generate_auth()

            cherrypy.session['user.id'] = user.id
            cherrypy.session['user.group'] = user.user_group
            cherrypy.session['credentials'] = creds
            raise cherrypy.HTTPRedirect('/index')
Esempio n. 4
0
File: users.py Progetto: masom/Puck
    def password(self, id, **post):
        user = Users.first(id=id)
        if not user:
            cherrypy.session['flash'] = '404 User Not Found'
            raise cherrypy.HTTPRedirect('/users')

        if post:
            fields = ['password', 'password_repeat']
            data = self._get_data('user', fields, post)
            tmp = Users.new()
            self._set_data(tmp, data)

            if tmp.validate_password():
                data['password'] = Users.hash_password(data['password'])
                user.update(data, ['password'])
                cherrypy.session['flash'] = 'Password updated.'
                raise cherrypy.HTTPRedirect('/users')

            cherrypy.session['flash'] = 'Password does not match.'
        user = Users.new(password="", id=id)
        env = dict(user=user)
        return self.render('/users/password.html', crumbs=self.crumbs, **env)