60245bbe22
1. Don't use case statements for dispatch anymore. This leads to a lot of duplication, and makes the logic harder to follow. 2. Remove duplicated logic. - For example, the `can_push_to_branch?` exists, but we also have a different way of checking the same condition within `change_access_check`. - This kind of duplication is removed, and the `can_push_to_branch?` method is used in both places. 3. Move checks returning true/false to `UserAccess`. - All public methods in `GitAccess` now return an instance of `GitAccessStatus`. Previously, some methods would return true/false as well, which was confusing. - It makes sense for these kinds of checks to be at the level of a user, so the `UserAccess` class was repurposed for this. The prior `UserAccess.allowed?` classmethod is converted into an instance method. - All external uses of these checks have been migrated to use the `UserAccess` class 4. Move the "change_access_check" into a separate class. - Create the `GitAccess::ChangeAccessCheck` class to run these checks, which are quite substantial. - `ChangeAccessCheck` returns an instance of `GitAccessStatus` as well. 5. Break out the boolean logic in `ChangeAccessCheck` into `if/else` chains - this seems more readable. 6. I can understand that this might look like overkill for !4892, but I think this is a good opportunity to clean it up. - http://martinfowler.com/bliki/OpportunisticRefactoring.html |
||
---|---|---|
.. | ||
auth | ||
ci | ||
commits | ||
files | ||
groups | ||
issues | ||
members | ||
merge_requests | ||
milestones | ||
notes | ||
oauth2 | ||
projects | ||
search | ||
wiki_pages | ||
audit_event_service.rb | ||
base_service.rb | ||
compare_service.rb | ||
create_branch_service.rb | ||
create_commit_builds_service.rb | ||
create_deployment_service.rb | ||
create_release_service.rb | ||
create_snippet_service.rb | ||
create_spam_log_service.rb | ||
create_tag_service.rb | ||
delete_branch_service.rb | ||
delete_tag_service.rb | ||
delete_user_service.rb | ||
destroy_group_service.rb | ||
event_create_service.rb | ||
git_hooks_service.rb | ||
git_push_service.rb | ||
git_tag_push_service.rb | ||
gravatar_service.rb | ||
issuable_base_service.rb | ||
notification_service.rb | ||
repair_ldap_blocked_user_service.rb | ||
system_hooks_service.rb | ||
system_note_service.rb | ||
test_hook_service.rb | ||
todo_service.rb | ||
update_release_service.rb | ||
update_snippet_service.rb |