feat: adding bulk user validation endpoint for admin console#245
feat: adding bulk user validation endpoint for admin console#245rodmgwgu merged 3 commits intoopenedx:mainfrom
Conversation
|
Thanks for the pull request, @jacobo-dominguez-wgu! This repository is currently maintained by Once you've gone through the following steps feel free to tag them in a comment and let them know that your changes are ready for engineering review. 🔘 Get product approvalIf you haven't already, check this list to see if your contribution needs to go through the product review process.
🔘 Provide contextTo help your reviewers and other members of the community understand the purpose and larger context of your changes, feel free to add as much of the following information to the PR description as you can:
🔘 Get a green buildIf one or more checks are failing, continue working on your changes until this is no longer the case and your build turns green. DetailsWhere can I find more information?If you'd like to get more details on all aspects of the review process for open source pull requests (OSPRs), check out the following resources: When can I expect my changes to be merged?Our goal is to get community contributions seen and reviewed as efficiently as possible. However, the amount of time that it takes to review and merge a PR can vary significantly based on factors such as:
💡 As a result it may take up to several weeks or months to complete a review and merge your PR. |
9583a0b to
aa9c08b
Compare
aa9c08b to
ba53880
Compare
34d9a6c to
0cfab17
Compare
There was a problem hiding this comment.
Pull request overview
Adds a new bulk user validation endpoint to support admin console role-assignment flows by validating a list of usernames/emails and returning valid/invalid identifiers plus summary counts.
Changes:
- Introduces
POST /api/authz/v1/users/validate/with Any-scope manage-permissions enforcement and structured response. - Adds request/response serializers (including a summary sub-serializer) and routes the endpoint in v1 URLs.
- Adds a comprehensive REST API test suite for the new endpoint and bumps version/changelog.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| openedx_authz/rest_api/v1/views.py | Adds UserValidationAPIView endpoint implementation, permissions, and API doc schema. |
| openedx_authz/rest_api/v1/urls.py | Registers the new users/validate/ route. |
| openedx_authz/rest_api/v1/serializers.py | Adds request/response serializers for bulk validation. |
| openedx_authz/rest_api/v1/fields.py | Adds a serializer for response summary statistics. |
| openedx_authz/tests/rest_api/test_views.py | Adds test coverage for request validation, permissions, deduplication, and responses. |
| openedx_authz/init.py | Bumps package version to 1.6.0. |
| CHANGELOG.rst | Adds 1.6.0 release notes entry for the new endpoint. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
0cfab17 to
5784d2e
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
5784d2e to
ab17a18
Compare
rodmgwgu
left a comment
There was a problem hiding this comment.
Functionality looks good, just one nit change.
Also, please run make format before pushing changes, so we get uniform code style.
Thanks!
ab17a18 to
762b602
Compare
| except User.DoesNotExist: | ||
| invalid_users.append(user_identifier) | ||
| except Exception as e: | ||
| logger.error(f"Unexpected error validating user {user_identifier}: {e}") |
There was a problem hiding this comment.
If we are already logging this in the controller, I think we can remove this from here and the logger instance.
762b602 to
88a7f45
Compare
|
@jacobo-dominguez-wgu: can we rebase so we can merge? Thanks! |
Description
Implements a new
api/authz/v1/users/validate/endpoint for bulk user validation to support admin console operations during role assignments.Accepts a JSON payload with a users array containing usernames and/or email addresses, validates the list of input data using serializer and checks for required field, proper format, deduplication, and finally processes each identifier individually to check existence.
Required permissions:
manage_library_teamORmanage_course_teamin any scope.Superuser/staff bypass.
It resolves #232
Deadline: Verawood.
Testing instructions
Make sure to have a local tutor dev installation.
Only users with team manage permissions are allowed to use this endpoint.
POST
http://local.openedx.io:8000/api/authz/v1/users/validate/{ "users": [ "user.invalide@example.com", "duplicated_user", "duplicated_user", "any_valid_user" ] }Expected response:
{ "valid_users": [ "any_valid_user", ], "invalid_users": [ "user.invalide@example.com", "duplicated_user", ], "summary": { "total": 3, "valid_count": 1, "invalid_count": 2 } }Merge checklist:
Check off if complete or not applicable: