Skip to content

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 or service_user
SELECT "users".* FROM "users" 
WHERE ("users"."state" IN ('active')) 
AND ("users"."user_type" IS NULL OR "users"."user_type" = 4)
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

Availability and Testing

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

Merge request reports