Skip to content
Snippets Groups Projects
  1. Feb 13, 2018
  2. Feb 08, 2018
  3. Dec 15, 2017
  4. Sep 25, 2017
  5. Aug 18, 2017
  6. Aug 17, 2017
  7. Jul 05, 2017
  8. Jun 05, 2017
  9. Jun 01, 2017
  10. May 18, 2017
  11. May 03, 2017
  12. Apr 06, 2017
  13. Mar 24, 2017
  14. Mar 09, 2017
  15. Mar 06, 2017
  16. Feb 28, 2017
  17. Feb 24, 2017
    • Timothy Andrew's avatar
      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.
      Unverified
      6fdb17cb
  18. Feb 15, 2017
  19. Feb 06, 2017
  20. Jan 24, 2017
  21. Dec 31, 2016
  22. Dec 29, 2016
  23. Dec 05, 2016
  24. Dec 02, 2016
  25. Nov 01, 2016
  26. Aug 02, 2016
  27. Jul 14, 2016
  28. Jul 08, 2016
  29. Jul 07, 2016
  30. Jun 30, 2016
  31. Jun 24, 2016
    • Rémy Coutable's avatar
      Fix an information disclosure when requesting access to a group containing private projects · aec3475d
      Rémy Coutable authored
      
      The issue was with the `User#groups` and `User#projects` associations
      which goes through the `User#group_members` and `User#project_members`.
      
      Initially I chose to use a secure approach by storing the requester's
      user ID in `Member#created_by_id` instead of `Member#user_id` because I
      was aware that there was a security risk since I didn't know the
      codebase well enough.
      
      Then during the review, we decided to change that and directly store the
      requester's user ID into `Member#user_id` (for the sake of simplifying
      the code I believe), meaning that every `group_members` / `project_members`
      association would include the requesters by default...
      
      My bad for not checking that all the `group_members` / `project_members`
      associations and the ones that go through them (e.g. `Group#users` and
      `Project#users`) were made safe with the `where(requested_at: nil)` /
      `where(members: { requested_at: nil })` scopes.
      
      Now they are all secure.
      
      Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
      Verified
      aec3475d
  32. Jun 16, 2016
Loading