1. 06 7月, 2017 9 次提交
    • T
      Don't allow the `gitlab:env:info` rake task to mutate the list of omniauth providers. · 56754848
      Timothy Andrew 提交于
      - The test for `rake gitlab:env:info` executed the rake task, which mutated the
        list of omniauth providers, breaking subsequent tests relying on this list.
      
      - I've changed the rake task to duplicate the providers list before modifying it.
      56754848
    • T
      Add CHANGELOG entry for CE MR 11963 · 1e9dfb73
      Timothy Andrew 提交于
      1e9dfb73
    • T
      738789d2
    • T
      Add Omniauth OAuth config to the test section of `gitlab.yml` · 15dba34c
      Timothy Andrew 提交于
      - I tried to get this to work by stubbing out portions of the config within the
        test. This didn't work as expected because Devise/Omniauth loaded before the
        stub could run, and the stubbed config was ignored.
      
      - I attempted to fix this by reloading Devise/Omniauth after stubbing the
        config. This successfully got Devise to load the stubbed providers, but failed
        while trying to access a route such as `user_gitlab_omniauth_authorize_path`.
      
      - I spent a while trying to figure this out (even trying
        `Rails.application.reload_routes!`), but nothing seemed to work.
      
      - I settled for adding this config directly to `gitlab.yml` rather than go down
        this path any further.
      15dba34c
    • T
      Add more providers to the OAuth login integration tests. · fd948558
      Timothy Andrew 提交于
      - Added saml, authentiq, cas3, and auth0
      - Crowd seems to be a special case that will be handled separately.
      fd948558
    • T
      d705a254
    • T
      Test the "Remember Me" flow for OAuth-based login. · 43337c12
      Timothy Andrew 提交于
      43337c12
    • T
      Add integration tests around OAuth login. · e936db96
      Timothy Andrew 提交于
      - There was previously a test for `saml` login in `login_spec`, but this didn't
        seem to be passing. A lot of things didn't seem right here, and I suspect that
        this test hasn't been running. I'll investigate this further.
      
      - It took almost a whole working day to figure out this line:
      
          OmniAuth.config.full_host = ->(request) { request['REQUEST_URI'].sub(request['REQUEST_PATH'], '') }
      
        As always, it's obvious in retrospect, but it took some digging to figure out
        tests were failing and returning 404s during the callback phase.
      
      - Test all OAuth providers - github, twitter, bitbucket, gitlab, google, and facebook
      e936db96
    • T
      Implement "remember me" for OAuth-based login. · 633793cf
      Timothy Andrew 提交于
      - Pass a `remember_me` query parameter along with the initial OAuth request, and
        pick this parameter up during the omniauth callback from
        request.env['omniauth.params']`.
      
      - For 2FA-based login, copy the `remember_me` param from `omniauth.params` to
        `params`, which the 2FA process will pick up.
      
      - For non-2FA-based login, simply call the `remember_me` devise method to set
        the session cookie.
      633793cf
  2. 03 7月, 2017 14 次提交
  3. 02 7月, 2017 3 次提交
  4. 01 7月, 2017 9 次提交
  5. 30 6月, 2017 5 次提交