Inicio > Cursos > SaaS desde Cero > Roles, Permisos y Organizaciones
SaaS desde CeroArquitectura SaaS ProfesionalLección 8 de 10

Roles, Permisos y Organizaciones

Un SaaS profesional necesita RBAC (Role-Based Access Control): cada usuario tiene un rol dentro de su organización, y cada rol tiene permisos específicos. Los roles típicos son:

• Owner: Control total, puede eliminar la organización y gestionar billing • Admin: Gestiona usuarios y configuración, no puede eliminar la org • Member: Acceso completo a funcionalidades, no puede gestionar usuarios • Viewer: Solo lectura, no puede crear ni editar

La tabla de membresías conecta usuarios con organizaciones y roles: un usuario puede pertenecer a múltiples organizaciones con diferentes roles.

// Modelo de datos para RBAC
// organizaciones: { id, nombre, plan, stripe_customer_id }
// miembros: { user_id, org_id, role, invited_at }
// permisos por rol:
const PERMISOS = {
  owner:  ["read", "write", "delete", "manage_users", "manage_billing", "delete_org"],
  admin:  ["read", "write", "delete", "manage_users"],
  member: ["read", "write"],
  viewer: ["read"],
};

// Middleware de autorización
function requirePermission(permission) {
  return async (req, res, next) => {
    const { userId, orgId } = req.auth;
    const member = await db.members.findFirst({
      where: { userId, orgId },
    });
    if (!member) return res.status(403).json({ error: "No eres miembro" });
    if (!PERMISOS[member.role].includes(permission)) {
      return res.status(403).json({ error: "Sin permiso" });
    }
    req.member = member;
    next();
  };
}

// Uso en rutas
app.delete("/api/projects/:id",
  requirePermission("delete"),
  async (req, res) => {
    await db.projects.delete({ where: { id: req.params.id, orgId: req.auth.orgId } });
    res.json({ ok: true });
  }
);
ConsejoEmpieza con 3 roles (owner, admin, member). No agregues más hasta que los clientes lo pidan. Permisos granulares demasiado pronto es complejidad innecesaria.
← Arquitectura Multi-TenantMétricas y Analytics de Producto →

Practica esta lección

Resuelve los ejercicios del curso de SaaS desde Cero en la app, gratis y con corrección automática.

Empezar a practicar