feat: Add columns parameter for selective field updates in user operations#113
Closed
Beesh1 wants to merge 3 commits intocasdoor:masterfrom
Closed
feat: Add columns parameter for selective field updates in user operations#113Beesh1 wants to merge 3 commits intocasdoor:masterfrom
Beesh1 wants to merge 3 commits intocasdoor:masterfrom
Conversation
…d updates Add support for the 'columns' parameter in user update operations to enable selective field updates, which is particularly useful for updating specific fields like roles without affecting other user attributes. Changes: - Add 'columns' parameter to update_user() method (sync and async) - Add 'columns' parameter to update_user_by_id() method (sync) - Add 'columns' parameter to modify_user() and modify_user_by_id() methods - Update method signatures to include Optional[List[str]] for columns - Add comprehensive docstrings explaining the columns parameter usage The columns parameter accepts a list of field names to update: sdk.update_user(user, columns=['roles', 'email']) This sends 'columns=roles,email' as a query parameter to the Casdoor API, allowing for more granular control over user updates and reducing the risk of unintended field modifications. Implements selective field update pattern supported by Casdoor API. Maintains backward compatibility - when columns=None, all fields are updated.
Contributor
Author
|
Thank you for the clarification @hsluoyz. You're absolutely correct - I've now implemented the proper solution: Correct approach for role assignment:
This works perfectly and roles are now properly assigned. The Should I:
Let me know your preference. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add columns parameter for selective field updates in user operations
Overview
This PR adds support for the
columnsparameter in user update operations, enabling selective field updates. This addresses issue #112.Changes
columnsparameter toupdate_user()method in both sync and async implementationscolumnsparameter toupdate_user_by_id()method in sync implementationcolumnsparameter to internalmodify_user()andmodify_user_by_id()methodsImplementation
When the
columnsparameter is provided, it is formatted as a comma-separated string and added to the query parameters:This leverages the existing Casdoor API support for selective field updates.
Usage Example
Sync version:
Async version:
Testing
Tested against live Casdoor instance:
Related Issue
Fixes #112