from flask import session, redirect, url_for, flash, render_template_string
from functools import wraps

def requiere_ejecutivo(f):
    @wraps(f)
    def decorated_function(*args, **kwargs):
        if 'user_id' not in session:
            flash('Debes iniciar sesión.', 'error')
            return redirect(url_for('auth.login'))
        
        user_rol = session.get('user_rol', 1)
        
        if user_rol not in [3, 4]:
            return render_template_string("<h1>Acceso Denegado</h1><p>Tu rol no tiene permiso para acceder a esta sección.</p>")
            
        return f(*args, **kwargs)
    return decorated_function

def requiere_login(f):
    @wraps(f)
    def decorated_function(*args, **kwargs):
        if 'user_id' not in session:
            flash('Debes iniciar sesión para continuar.', 'error')
            return redirect(url_for('auth.login'))
        return f(*args, **kwargs)
    return decorated_function