Add using_license_seat method to user class
What does this MR do?
This MR introduces a new optional parameter using_license_seat
to the users API endpoint for admins.
This way an admin would be able to request /api/v4/users?using_license_seat=true
to get a list of only the billable users in their license.
The filter calls EE::User.using_license_seat
which is based on the definition for EE::User#using_license_seat?
- The default scope gets all active users with user_type
human
orservice_user
SELECT "users".* FROM "users"
WHERE ("users"."state" IN ('active'))
AND ("users"."user_type" IS NULL OR "users"."user_type" = 4)
- If the license excludes guest users from the counts, then guest users are filtered out
SELECT "users".* FROM "users"
INNER JOIN "user_highest_roles" ON "user_highest_roles"."user_id" = "users"."id"
WHERE ("users"."state" IN ('active'))
AND ("users"."user_type" IS NULL OR "users"."user_type" = 4)
AND (highest_access_level > 10)
Part of #36750 (closed).
Screenshots
Does this MR meet the acceptance criteria?
Conformity
- [-] Changelog entry
- [-] Documentation (if required)
-
Code review guidelines -
Merge request performance guidelines -
Style guides - [-] Database guides
-
Separation of EE specific content
Availability and Testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. - [-] Tested in all supported browsers
- [-] Informed Infrastructure department of a default or new setting change, if applicable per definition of done
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
- [-] Label as security and @ mention
@gitlab-com/gl-security/appsec
- [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
- [-] Security reports checked/validated by a reviewer from the AppSec team
Edited by Amparo Luna