Esempio n. 1
0
File: rol.py Progetto: vanecan/SGP14
    def post(self,*args, **kw):
        """Crea un nuevo rol y lo guarda en la base de datos"""
        p = Rol()
        rm = RolManager()
        params = kw
        if not('id_proyecto' in kw):
            flash(('Direccion No valida'), 'error')
            raise redirect("/index")
        if params['id_proyecto'] != '-1':
            if not(Secure().FiltrarByProyecto(int(kw['id_proyecto']),'creacion_rol_proyecto')):
                flash(('USTED NO CUENTA CON PERMISOS SUFICIENTES'), 'error')
                raise redirect("/index")
            p, navegacion = self.getNavegacionFromIdProyecto(params['id_proyecto'])
        else:
            if not(Secure().FiltrarBySistema('creacion_rol_sistema')):
                flash(('USTED NO CUENTA CON PERMISOS SUFICIENTES'), 'error')
                raise redirect("/index")            
            navegacion = self.getNavegacionSistema()

        if params['tipo']!="cancelar":
            descripcion = params['descripcion']
            nombre = params['nombre']
            tipo = int(params['tipo'])
            self.tipo_rol=int(params['tipo'])
            try:
                per = params['permisos']
            except:
                flash(("No se puede crear un rol sin permisos!"), 'error')
                raise redirect("/rol/new", id_proyecto=kw['id_proyecto'], tipo_rol=kw['tipo'])
            permisos = rm.getListaPermisos(per)
            rm.agregar(nombre, descripcion, tipo, permisos)
            if tipo == 1:
                raise redirect('/rol', id_proyecto=kw['id_proyecto'])
            else:
                raise redirect('/rol')
        else:
            try:
                admin_sistema = navegacion['admin_sistema']
                if admin_sistema:
                    raise redirect ('/rol')
            except:
                raise redirect('/rol', id_proyecto=kw['id_proyecto'])