Commit Graph

17 Commits

Author SHA1 Message Date
880999b03a feat: plantilla base workspace SaaS
Some checks failed
Build Producción & Push a Harbor / test (push) Failing after 2s
Build Producción & Push a Harbor / build (push) Has been skipped
Convierte el repositorio de Anexo76 en una plantilla limpia y reutilizable
para nuevos proyectos del ecosistema Workspace de Aduanasoft.

Cambios principales:
- Elimina módulos específicos de Anexo76: a76, a24, sitar, public
- Agrega módulo example/ con patrón CRUD de referencia (models/dto/service/routes)
- Limpia migraciones Alembic: solo quedan las 6 de core (users, tenants, permissions)
- Reemplaza todas las rutas del dashboard con stubs genéricos
- Elimina lógica de negocio aduanera: shortcuts, CSV imports, permisos, catálogos
- Simplifica variables de entorno: una sola WORKSPACE_URL deriva Hub y Keycloak
- Agrega scripts/auth-mode.sh para alternar entre auth local y workspace
- Configura docker-compose con nombres genéricos (app-*)
- Corrige flujo SSO: elimina system-gate SCAF/SCAII que bloqueaba el login
- Modo DEV_LOCAL_AUTH para desarrollo sin Keycloak ni Hub

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-04 10:55:17 -05:00
19bc7a2b57 fix(license): handle unlimited user licenses by checking for None value 2026-05-20 11:09:24 -05:00
7920f190e3 fix(security): improve tenant ID resolution and error handling for hub_admin access 2026-05-20 10:46:31 -05:00
125405458c feat(auth): add hub_admin global access support across modules
- Add is_hub_admin() and resolve_tenant_id_required() to core/security
- hub_admin resolves tenant from company or uses None as global sentinel
- Update routes and services to skip tenant filter when tenant_id is None
- UserService accepts is_hub_admin flag for cross-tenant user management
- get_my_companies returns all companies for hub_admin without tenant restriction
2026-05-15 09:22:35 -05:00
1dbc75107f feat: enhance user avatar handling and synchronization with Workspace
- Updated sidebar component to merge user data from Keycloak and Workspace, including avatar URLs.
- Refactored nav-user component to utilize new avatar resolution logic and display user information more effectively.
- Introduced a new utility function to resolve user avatar URLs, prioritizing Workspace avatars.
- Implemented backend changes to support synchronization of user profile data, including avatar URLs from Workspace.
- Added database migration to include new fields for Workspace profile synchronization in user_tenants.
- Created a new client for fetching user profiles from Workspace.
- Updated dashboard components to reflect changes in user data structure and avatar handling.
- Removed avatar upload functionality from the profile update process, relying on Workspace for avatar management.
- Added tests for avatar resolution logic to ensure correct prioritization of avatar sources.
2026-05-08 17:03:29 -05:00
5dd65df3e8 feat: add first_name and last_name fields to UserTenant model and sync with Keycloak
Co-authored-by: Copilot <copilot@github.com>
2026-05-06 12:09:04 -05:00
5c4161e5d8 feat: enhance user deletion process with access token and hub tenant ID propagation 2026-05-06 08:20:39 -05:00
7ea8a4ba8d feat: multi-tenant user delete scope + conditional keycloak wait
- Add GET /users/{user_id}/tenant-count endpoint
- Add scope query param (current|all) to DELETE /users/{user_id}
- UserService.delete_user now supports scope='all' to deactivate/remove
  user from all tenants
- Frontend users.ts: getTenantCount(), delete() accepts scope param
- Frontend +page.svelte: async openDeleteDialog fetches tenant count,
  shows 4-button dialog when user belongs to >1 tenant
- docker-entrypoint.sh: Keycloak wait now conditional on WAIT_FOR_KEYCLOAK=1
2026-05-04 14:17:12 -05:00
2ce8a9047c feat: enhance user statistics and tenant management
- Updated user statistics endpoint to include access token and hub tenant ID for improved data retrieval.
- Refactored user listing functionality to support access token and hub tenant ID, ensuring accurate user data from the Hub.
- Introduced new methods in UserService for fetching users with additional information from the Hub.
- Enhanced security functions to ensure user-tenant relationships are maintained and synchronized with the Hub.
- Improved frontend logic to handle company initialization and user authentication more effectively.
2026-05-01 23:32:48 -05:00
1d1d4b1619 Merge remote-tracking branch 'origin/development' into feature/hub-integration
# Conflicts:
#	backend/.env.example
#	backend/api/v1/modules/core/auth/service.py
#	backend/api/v1/modules/core/users/service.py
#	backend/core/middleware.py
#	docker-compose.yml
#	frontend/src/lib/auth.ts
#	frontend/src/lib/components/help/HelpDrawer.svelte
#	scripts/backend-entrypoint.sh
2026-04-29 13:11:44 -05:00
5c2a84e95d fix: solución de bloqueos y estandarización de permisos 2026-04-27 10:47:30 -05:00
d3676aa8ed Refactor code structure for improved readability and maintainability 2026-04-06 08:54:05 -05:00
9439a6a775 feature/minio-s3-integration 2026-04-02 13:35:18 -06:00
Galindo97
12f5164054 feat: Implement admin role and permission management APIs
- Added centralized API exports for admin functionalities.
- Created permissions API for managing system permissions, including listing, creating, updating, and deleting permissions.
- Developed role-permissions API for managing permissions assigned to roles, including listing, assigning, and removing permissions.
- Implemented roles API for managing company roles, including listing, creating, updating, and deleting roles.
- Created user-permissions API for managing individual user permissions, including assigning and revoking permissions.
- Developed user-roles API for managing user roles, including listing roles assigned to users and assigning/removing roles.
- Added utility functions for permission checks and route guards based on user permissions.
- Implemented admin dashboard layout and roles management page with UI components for role and permission management.
2026-01-15 18:00:05 -06:00
056909b17f feat(users): enhance user management with company-specific API calls and access validation 2026-01-15 08:10:01 -06:00
c00107d921 feat: Implement user profile management with avatar upload and additional fields
- Added avatar_url, phone, bio, and preferences fields to UserTenant model.
- Updated UserService to handle user profile updates and retrieval.
- Created endpoints for getting and updating the current user's profile.
- Implemented avatar upload functionality with validation in routes.
- Enhanced frontend to manage user profile, including avatar preview and form handling.
- Added server-side logic for loading and updating user profile data.
- Updated .gitignore to include uploads directory.
2026-01-13 12:37:11 -06:00
f812d71508 feat: Implement user management service and frontend integration
- Added UserService to manage Keycloak users with license validation in the backend.
- Created API client for user management in the frontend.
- Developed user management page with functionalities to create, update, delete, and list users.
- Implemented user statistics retrieval and display.
- Added dialogs for user creation, editing, password change, and deletion confirmation.
2026-01-13 09:56:53 -06:00