예제 #1
0
파일: __init__.py 프로젝트: elevazquez/sap
def desasignarpermiso():
    """ Funcion para desasignar los permisos de un rol """
    if not current_user.is_authenticated():
        flash('Debe loguearse primeramente!!!!', 'loggin')
        return render_template('index.html')
    
    permission = UserRol('ADMINISTRADOR')
    if permission.can():
        idrol = request.args.get('idrol')
        permisos = getPermisosByRol(idrol)
        if request.method == 'POST':
            rol = request.form.get('idrol')
            permisosMarcados = request.form.getlist('permisos')
            permisosAsignados = getPermisosByRol(rol)
            #=======================================================================
            # Inserta los permisos seleccionados
            #=======================================================================
            for pa in permisosAsignados :
                bandera = False
                for pm in permisosMarcados :
                    if int(pm) == pa.id : 
                        bandera = True
                if not bandera : 
                    rolper = db_session.query(RolPermiso).filter_by(id_rol=rol, id_permiso=pa.id).first()
                    db_session.delete(rolper)
                    db_session.commit()
                    flash('Permiso desasignado correctamente', 'info')
            return redirect('/administrarrol')
        return render_template('rol/desasignarpermisos.html', permisos = permisos, idrol = idrol)
    else: 
        flash('Sin permisos para la operacion', 'info')
        return redirect('/administrarrol')
예제 #2
0
파일: __init__.py 프로젝트: elevazquez/sap
def asignarpermiso():
    """ Funcion para asignar Permisos a cada Rol"""
    if not current_user.is_authenticated():
        flash('Debe loguearse primeramente!!!!', 'loggin')
        return render_template('index.html')
    
    permission = UserRol('ADMINISTRADOR')
    if permission.can(): 
        #=======================================================================
        # desde aqui : Ejecuta esta seccion la primera vez que entra, cuando selecciona solo el usuario
        #=======================================================================
        idproyecto = request.args.get('idproyecto')
        idrol = request.args.get('idrol')
        rolobtenido = db_session.query(Rol).filter_by(id=idrol).first()
        if not rolobtenido == None:
            if str(rolobtenido.codigo) == 'ADMINISTRADOR':
                flash('El rol no tiene permisos', 'info')
                return redirect('/administrarrol')
        if request.method == 'POST':
            rol = request.form.get('idrol')
            permisos = request.form.getlist('permisos')
            #=======================================================================
            # Inserta los permisos seleccionados
            #=======================================================================
            for p in permisos :
                rolper = RolPermiso(rol, p)
                exits = db_session.query(RolPermiso).filter_by(id_rol=rol, id_permiso=p).first()
                if not exits:
                    db_session.merge(rolper)
                    db_session.commit()
                flash('Permisos asignados correctamente', 'info')
            return redirect('/administrarrol')
        if idproyecto == None:
            #significa que no se selecciono proyecto
            #obtiene permisos de un rol
            permisos = getPermisosByRol(idrol)
            if len(permisos) > 0:
                #si tiene permisos muestra directamente permisos del proyecto
                #obtiene idproyecto del permiso que tenga especificado una fase
                idproyecto = getProyectoByPermiso(permisos)
                #obtiene permisos no asignados al rol
                permisos = listadoPermisosNoAsignados(idproyecto, idrol)
                return render_template('rol/asignarpermisos.html', permisos = permisos, idrol = idrol, idproyecto = idproyecto)
            else :  
                #si no tiene permisos asignados 
                proyectos = db_session.query(Proyecto).order_by(Proyecto.nombre);
                return render_template('proyecto/seleccionproyecto.html', proyectos=proyectos, idrol=idrol)
        else:
            permisos = getPermisosByProyecto(idproyecto)
            return render_template('rol/asignarpermisos.html', permisos = permisos, idrol = idrol, idproyecto = idproyecto)
    else:
        flash('Sin permisos para asignar permisos al rol', 'permiso')
        return render_template('index.html')
예제 #3
0
파일: __init__.py 프로젝트: elevazquez/sap
def buscarpermisoSinasignar():
    """ Funcion para buscar permisos que no pertenecen al rol """
    if not current_user.is_authenticated():
        flash('Debe loguearse primeramente!!!!', 'loggin')
        return render_template('index.html')
    
    permission = UserRol('ADMINISTRADOR')
    if permission.can():
        idrol = request.args.get('idrol')
        valor = request.args['patron']
        parametro = request.args['parametro']
        if valor == "" : 
            permisos = getPermisosByRol(idrol)
            if len(permisos) > 0:
                #si tiene permisos muestra directamente permisos del proyecto
                #obtiene idproyecto del permiso que tenga especificado una fase
                idproyecto = getProyectoByPermiso(permisos)
                #obtiene permisos no asignados al rol
                permisos = listadoPermisosNoAsignados(idproyecto, idrol)
                return render_template('rol/asignarpermisos.html', permisos = permisos, idrol = idrol)
        else:
            if parametro == 'id_recurso':
                p = db_session.query(Permiso).from_statement("SELECT * FROM permiso where to_char("+parametro+", '99999') ilike '%"+valor+"%'").all()
                #p = db_session.query(Permiso).from_statement("SELECT * FROM permiso where "+parametro+" = CAST("+valor+" AS Int)").all()
            else:
                p = db_session.query(Permiso).from_statement("SELECT * FROM permiso where "+parametro+" ilike '%"+valor+"%'").all()
                
        return render_template('rol/asignarpermisos.html', permisos = p, idrol = idrol)
        valor = request.args['patron']
        # init_db(db_session)
        r = db_session.query(Rol).filter_by(codigo=valor)
        if r == None:
            return 'no existe concordancia'
        return render_template('rol/administrarrol.html', roles=r)
    else:
        flash('Sin permisos para buscar permisos no asignados', 'permiso')
        return render_template('index.html')