Commit Graph

69 Commits

Author SHA1 Message Date
a424120770 fix: remove leftover conflict marker in ApiController 2026-06-09 16:46:03 -04:00
1241d50a4a Merge branch 'master' into feat/android-app-redesign 2026-06-09 16:41:23 -04:00
b613e43ab3 feat: redesign Android app with animations, charts, profile, and registration
- Register screen with validation (username, email, password, confirm)
- Profile screen with email editing and password change
- User greeting on dashboard showing logged-in username
- 401 auto-logout via SessionManager + AuthInterceptor
- MetricsChart with Canvas line graphs (CPU, RAM, Disk)
- Animated StatCard with counters and icons
- ServerCard with progress bars, pulsating status dot, dynamic elevation
- Shimmer loading placeholders
- Dark mode support with Material3
- Navigation transitions (slide + fade)
- New server rack launcher icon
- Splash screen
- Backend API: register, profile (GET/PUT) endpoints
2026-06-09 16:38:04 -04:00
d77d340fe0 Merge remote-tracking branch 'origin/master' into feature/login-endpoint
# Conflicts:
#	public/sysadmin.apk
2026-06-07 18:10:16 -04:00
470f2e9404 Change Android login to username/password
- Add POST /api/auth/login endpoint on server side
- Update Android login screen to username/password fields
- Hardcode production URL https://servermanager.devlab.lat
- Rebuild APK with login changes
2026-06-07 18:05:00 -04:00
1741545318 Add soft deletes via status column
- Add status ENUM('active','disabled','deleted') to 8 tables
- Change all physical DELETE to UPDATE status='deleted'
- All SELECT queries filter by status='active'
- toggleActive now alternates between active/disabled status
- Exceptions: monitoring_history, rate_limits, sessions keep physical purge
- audit_logs remains immutable
2026-06-07 17:26:29 -04:00
799df8d6c8 Fix MySQL timezone — sync session timezone with app config 2026-06-07 13:14:07 -04:00
cd24cc53a0 Add per-column filters, smart pagination (25/page), and date range filter to audit logs 2026-06-07 12:43:50 -04:00
4448dec60d Filter recent activity to show only current user's activity 2026-06-07 12:25:04 -04:00
b105b27124 Dashboard stats now scoped to user's accessible servers; super_admin sees all 2026-06-07 07:43:37 -04:00
016584e907 Restrict Users, Audit Logs, Security routes to super_admin only
- Sidebar: Users, Audit Logs and Security now only visible to super_admin
- AdminController: requireSuperAdmin() check on users() and auditLogs()
- AdminController: super_admin check on createUser, updateUser, deleteUser JSON endpoints
- securitySettings() already had the check in place
2026-06-07 07:34:16 -04:00
e721a34d8f Filter teams by creator: users only see and manage their own teams 2026-06-07 07:23:47 -04:00
5607a3e507 Replace old team system with work teams (equipos de trabajo)
- New migration 003_teams.sql: teams, team_user, team_server tables
- New Team model with CRUD, members, and server assignment
- New TeamController with full team management
- New views: teams/index, teams/create, teams/show
- Server model: getUserRole and getAccessibleServerIds now include team-based access
- Sidebar: Teams link under Administration (admin+ only)
- Routes: old /team routes removed, new /teams routes added
- Removed old ServerController team methods and views
- Fixed sidebar empty accessible IDs returning all servers
- Fixed dashboard and API to show empty when no accessible servers
2026-06-07 07:08:26 -04:00
5f5de248c6 Add server ownership, team access, role-based UI, and default admin role
- New migration 002_server_access.sql: created_by column + server_user table
- Server model: ownership, permission checks, team management methods
- Routes: /team routes, RoleMiddleware on /servers/create and /admin
- ServerController: permission checks via server_user, team CRUD methods
- TerminalController: server access checks
- DashboardController: filter servers by accessible ones
- ApiController: server access checks
- Views: team.php, team_server.php, sidebar Team link, hide actions by role
- Default user role changed from operator to admin on registration
- Admin user form defaults to admin role
2026-06-07 06:49:12 -04:00
516ffbb579 Add user registration page with default operator role 2026-06-06 19:41:03 -04:00
7a8792a1e9 Add services management with pagination and conditional buttons 2026-06-06 18:56:42 -04:00
e0c4ec7a53 Fix system users: sudoers and nested sudo 2026-06-06 18:43:24 -04:00
a55542564e Add system users management 2026-06-06 18:08:47 -04:00
9c0bc7f189 ServerManager project files 2026-06-06 17:58:34 -04:00