fleet/server/test/users.go
Lucas Manuel Rodriguez 59786c8c0e
Add new Technician role (#39564)
Resolves #38621, #38627, and #38623.

- [X] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.

## Testing

- [x] Added/updated automated tests
- [X] QA'd all new/changed functionality manually

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Release Notes

* **New Features**
* Added a new premium-tier Technician role with read/write permissions
across teams, hosts, policies, queries, and configurations.
* License validation now prevents assigning premium roles on Fleet Free
editions.

* **Bug Fixes**
* Updated role-based access controls across team management pages to
properly restrict technician access.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-02-11 15:00:10 -03:00

160 lines
2.9 KiB
Go

package test
import (
"github.com/fleetdm/fleet/v4/server/fleet"
"github.com/fleetdm/fleet/v4/server/ptr"
)
var (
GoodPassword = "password123#"
GoodPassword2 = "password123!"
UserNoRoles = &fleet.User{
ID: 1,
}
UserAdmin = &fleet.User{
ID: 2,
GlobalRole: ptr.String(fleet.RoleAdmin),
Email: "useradmin@example.com",
}
UserMaintainer = &fleet.User{
ID: 3,
GlobalRole: ptr.String(fleet.RoleMaintainer),
}
UserObserver = &fleet.User{
ID: 4,
GlobalRole: ptr.String(fleet.RoleObserver),
}
UserTeamAdminTeam1 = &fleet.User{
ID: 5,
Teams: []fleet.UserTeam{
{
Team: fleet.Team{ID: 1},
Role: fleet.RoleAdmin,
},
},
}
UserTeamAdminTeam2 = &fleet.User{
ID: 6,
Teams: []fleet.UserTeam{
{
Team: fleet.Team{ID: 2},
Role: fleet.RoleAdmin,
},
},
}
UserTeamMaintainerTeam1 = &fleet.User{
ID: 7,
Teams: []fleet.UserTeam{
{
Team: fleet.Team{ID: 1},
Role: fleet.RoleMaintainer,
},
},
}
UserTeamMaintainerTeam2 = &fleet.User{
ID: 8,
Teams: []fleet.UserTeam{
{
Team: fleet.Team{ID: 2},
Role: fleet.RoleMaintainer,
},
},
}
UserTeamObserverTeam1 = &fleet.User{
ID: 9,
Teams: []fleet.UserTeam{
{
Team: fleet.Team{ID: 1},
Role: fleet.RoleObserver,
},
},
}
UserTeamObserverTeam2 = &fleet.User{
ID: 10,
Teams: []fleet.UserTeam{
{
Team: fleet.Team{ID: 2},
Role: fleet.RoleObserver,
},
},
}
UserTeamObserverTeam1TeamAdminTeam2 = &fleet.User{
ID: 11,
Teams: []fleet.UserTeam{
{
Team: fleet.Team{ID: 1},
Role: fleet.RoleObserver,
},
{
Team: fleet.Team{ID: 2},
Role: fleet.RoleAdmin,
},
},
}
UserObserverPlus = &fleet.User{
ID: 12,
GlobalRole: ptr.String(fleet.RoleObserverPlus),
}
UserTeamObserverPlusTeam1 = &fleet.User{
ID: 13,
Teams: []fleet.UserTeam{
{
Team: fleet.Team{ID: 1},
Role: fleet.RoleObserverPlus,
},
},
}
UserTeamObserverPlusTeam2 = &fleet.User{
ID: 14,
Teams: []fleet.UserTeam{
{
Team: fleet.Team{ID: 2},
Role: fleet.RoleObserverPlus,
},
},
}
UserGitOps = &fleet.User{
ID: 15,
GlobalRole: ptr.String(fleet.RoleGitOps),
}
UserTeamGitOpsTeam1 = &fleet.User{
ID: 16,
Teams: []fleet.UserTeam{
{
Team: fleet.Team{ID: 1},
Role: fleet.RoleGitOps,
},
},
}
UserTeamGitOpsTeam2 = &fleet.User{
ID: 17,
Teams: []fleet.UserTeam{
{
Team: fleet.Team{ID: 2},
Role: fleet.RoleGitOps,
},
},
}
UserTechnician = &fleet.User{
ID: 18,
GlobalRole: ptr.String(fleet.RoleTechnician),
}
UserTeamTechnicianTeam1 = &fleet.User{
ID: 19,
Teams: []fleet.UserTeam{
{
Team: fleet.Team{ID: 1},
Role: fleet.RoleTechnician,
},
},
}
UserTeamTechnicianTeam2 = &fleet.User{
ID: 20,
Teams: []fleet.UserTeam{
{
Team: fleet.Team{ID: 2},
Role: fleet.RoleTechnician,
},
},
}
)