BigW Consortium Gitlab

  1. 30 Mar, 2017 1 commit
  2. 27 Mar, 2017 1 commit
  3. 24 Mar, 2017 2 commits
  4. 22 Mar, 2017 1 commit
  5. 17 Mar, 2017 1 commit
  6. 10 Mar, 2017 1 commit
  7. 09 Mar, 2017 5 commits
  8. 06 Mar, 2017 2 commits
  9. 05 Mar, 2017 1 commit
  10. 03 Mar, 2017 1 commit
  11. 28 Feb, 2017 3 commits
  12. 24 Feb, 2017 7 commits
    • Don't allow deleting a ghost user. · 6fdb17cb
      Timothy Andrew authored
      - Add a `destroy_user` ability. This didn't exist before, and was implicit in
        other abilities (only admins could access the admin area, so only they could
        destroy all users; a user can only access their own account page, and so can
        destroy only themselves).
      
      - Grant this ability to admins, and when the current user is trying to destroy
        themselves. Disallow destroying ghost users in all cases.
      
      - Modify the `Users::DestroyService` to check this ability. Also check it in
        views to decide whether or not to show the "Delete User" button.
      
      - Add a short summary of the Ghost User to the bio.
    • Implement final review comments from @DouweM and @rymai · f2ed82fa
      Timothy Andrew authored
      - Have `Uniquify` take a block instead of a Proc/function. This is more
        idiomatic than passing around a function in Ruby.
      
      - Block a user before moving their issues to the ghost user. This avoids a data
        race where an issue is created after the issues are migrated to the ghost user,
        and before the destroy takes place.
      
      - No need to migrate issues (to the ghost user) in a transaction, because
        we're using `update_all`
      
      - Other minor changes
    • Implement review comments from @rymai and @yorickpeterse · 8f01644f
      Timothy Andrew authored
      1. Refactoring and specs in the `Uniquify` class.
      
      2. Don't use the `AdvisoryLocking` class. Similar functionality is
      provided (backed by Redis) in the `ExclusiveLease` class.
    • Use a `ghost` boolean to track ghost users. · 8e684809
      Timothy Andrew authored
      Rather than using a separate `ghost` state. This lets us have the benefits of
      both ghost and blocked users (ghost: true, state: blocked) without having to
      rewrite a number of queries to include cases for `state: ghost`.
    • Implement review comments from @DouweM and @nick.thomas. · 53c34c74
      Timothy Andrew authored
      1. Use an advisory lock to guarantee the absence of concurrency in `User.ghost`,
      to prevent data races from creating more than one ghost, or preventing the
      creation of ghost users by causing validation errors.
      
      2. Use `update_all` instead of updating issues one-by-one.
    • Extract code from `Namespace#clean_path` for ghost user generation. · ca16c373
      Timothy Andrew authored
      1. Create a `Uniquify` class, which generalizes the process of generating unique
         strings, by accepting a function that defines what "uniqueness" means in a
         given context.
      
      2. WIP: Make sure tests for `Namespace` pass, add more if necessary.
      
      3. WIP: Add tests for `Uniquify`
    • Deleting a user shouldn't delete associated issues. · ff19bbd3
      Timothy Andrew authored
      - "Associated" issues are issues the user has created + issues that the
        user is assigned to.
      
      - Issues that a user owns are transferred to a "Ghost User" (just a
        regular user with `state = 'ghost'` that is created when
        `User.ghost` is called).
      
      - Issues that a user is assigned to are moved to the "Unassigned" state.
      
      - Fix a spec failure in `profile_spec` — a spec was asserting that when a user
        is deleted, `User.count` decreases by 1. After this change, deleting a user
        creates (potentially) a ghost user, causing `User.count` not to change. The
        spec has been updated to look for the relevant user in the assertion.
  13. 23 Feb, 2017 5 commits
  14. 15 Feb, 2017 1 commit
  15. 13 Feb, 2017 2 commits
  16. 10 Feb, 2017 1 commit
  17. 08 Feb, 2017 1 commit
  18. 07 Feb, 2017 2 commits
  19. 06 Feb, 2017 2 commits