openstax_accounts 3.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/app/controllers/openstax/accounts/dev/accounts_controller.rb +9 -1
- data/app/handlers/openstax/accounts/dev/accounts_create.rb +33 -0
- data/app/handlers/openstax/accounts/dev/{accounts_index.rb → accounts_search.rb} +1 -1
- data/app/routines/openstax/accounts/dev/create_account.rb +37 -0
- data/app/views/openstax/accounts/dev/accounts/_search_results.html.erb +17 -15
- data/app/views/openstax/accounts/dev/accounts/index.html.erb +19 -6
- data/app/views/openstax/accounts/dev/accounts/search.js.erb +3 -0
- data/app/views/openstax/accounts/shared/accounts/{_index.html.erb → _search.html.erb} +1 -1
- data/config/routes.rb +3 -3
- data/lib/openstax/accounts/version.rb +1 -1
- metadata +7 -5
- data/app/views/openstax/accounts/dev/accounts/index.js.erb +0 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,15 +1,15 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            !binary "U0hBMQ==":
         | 
| 3 3 | 
             
              metadata.gz: !binary |-
         | 
| 4 | 
            -
                 | 
| 4 | 
            +
                NmM3YWJkNTYyYjhiNzE5YmQ3NmYxZDBmYTNiMDhmNzk3MTJmNjE3MQ==
         | 
| 5 5 | 
             
              data.tar.gz: !binary |-
         | 
| 6 | 
            -
                 | 
| 6 | 
            +
                ZDljZjliNzE0NDFjY2M5NjI0ZGJiZWE2ZTY0MTVkZjYxOGI0YjIxZg==
         | 
| 7 7 | 
             
            SHA512:
         | 
| 8 8 | 
             
              metadata.gz: !binary |-
         | 
| 9 | 
            -
                 | 
| 10 | 
            -
                 | 
| 11 | 
            -
                 | 
| 9 | 
            +
                ODk1MzM5MThkNGQ3NTVkMzYyNjE4MmY2OGRhZTAyY2I5ZjBkZDViNDI2NDQz
         | 
| 10 | 
            +
                YjdjYTkzMDI2OTk2YjJmN2E1YzhjODRhNTNjZThiNTM2MmNlNTdiYTQxZDAx
         | 
| 11 | 
            +
                ZWZiODI1MzU1ZmQ4NjVkNzUxODljMjZhMDRjMWU4OGVmNmYyNjI=
         | 
| 12 12 | 
             
              data.tar.gz: !binary |-
         | 
| 13 | 
            -
                 | 
| 14 | 
            -
                 | 
| 15 | 
            -
                 | 
| 13 | 
            +
                YmRiN2RlZmUzZTgxMTA1NWI3ZTEwMjY3Yzc0NmI3ZjE4NjcxYjNlOWI3MTM4
         | 
| 14 | 
            +
                ODFjNDU5ZTcxZWNmMjA2YzFhYTMwMjkxNTEzZmUyMDFiNWFmNDQ2YjhlMzE1
         | 
| 15 | 
            +
                MDhjZWE2ZTA2MzM5NGQ5N2QxOWVkZTkwY2U1NWViODRkMmY3MDI=
         | 
| @@ -4,7 +4,15 @@ module OpenStax | |
| 4 4 | 
             
                  class AccountsController < OpenStax::Accounts::Dev::BaseController
         | 
| 5 5 |  | 
| 6 6 | 
             
                    def index
         | 
| 7 | 
            -
             | 
| 7 | 
            +
                    end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                    def search
         | 
| 10 | 
            +
                      handle_with(AccountsSearch)
         | 
| 11 | 
            +
                    end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                    def create
         | 
| 14 | 
            +
                      handle_with(AccountsCreate,
         | 
| 15 | 
            +
                                  complete: lambda { redirect_back })
         | 
| 8 16 | 
             
                    end
         | 
| 9 17 |  | 
| 10 18 | 
             
                    def become
         | 
| @@ -0,0 +1,33 @@ | |
| 1 | 
            +
            module OpenStax
         | 
| 2 | 
            +
              module Accounts
         | 
| 3 | 
            +
             | 
| 4 | 
            +
                module Dev
         | 
| 5 | 
            +
                  class AccountsCreate
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                    lev_handler
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                    paramify :create do
         | 
| 10 | 
            +
                      attribute :username, type: String
         | 
| 11 | 
            +
                      validates :username, presence: true
         | 
| 12 | 
            +
                    end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                    uses_routine OpenStax::Accounts::Dev::CreateAccount,
         | 
| 15 | 
            +
                                 as: :create_account,
         | 
| 16 | 
            +
                                 translations: { inputs: { scope: :create },
         | 
| 17 | 
            +
                                                 outputs: { type: :verbatim } }
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                    protected
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                    def authorized?
         | 
| 22 | 
            +
                      !Rails.env.production? && OpenStax::Accounts.configuration.enable_stubbing?
         | 
| 23 | 
            +
                    end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                    def handle
         | 
| 26 | 
            +
                      run(:create_account, create_params.as_hash(:username))
         | 
| 27 | 
            +
                    end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                  end 
         | 
| 30 | 
            +
                end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
              end
         | 
| 33 | 
            +
            end
         | 
| @@ -0,0 +1,37 @@ | |
| 1 | 
            +
            # Routine for creating an account, only for use when stubbing and
         | 
| 2 | 
            +
            # not on production.
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            module OpenStax
         | 
| 5 | 
            +
              module Accounts
         | 
| 6 | 
            +
                module Dev
         | 
| 7 | 
            +
                  class CreateAccount
         | 
| 8 | 
            +
                    lev_routine
         | 
| 9 | 
            +
                          
         | 
| 10 | 
            +
                  protected
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                    def exec(inputs={})
         | 
| 13 | 
            +
                      fatal_error(:code => :cannot_create_account_in_production) if Rails.env.production?
         | 
| 14 | 
            +
                      fatal_error(:code => :can_only_create_account_when_stubbing) if !OpenStax::Accounts.configuration.enable_stubbing?
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                      username = inputs[:username]
         | 
| 17 | 
            +
                      while username.nil? || Account.where(username: username).exists? do 
         | 
| 18 | 
            +
                        username = SecureRandom.hex(3).to_s
         | 
| 19 | 
            +
                      end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                      account = OpenStax::Accounts::Account.new
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                      account.openstax_uid = -SecureRandom.hex.to_i(16)
         | 
| 24 | 
            +
                      account.access_token = SecureRandom.hex.to_s
         | 
| 25 | 
            +
                      account.username = username
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                      account.save
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                      transfer_errors_from(account, {type: :verbatim}, true)
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                      outputs[:account] = account
         | 
| 32 | 
            +
                    end
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                  end
         | 
| 35 | 
            +
                end
         | 
| 36 | 
            +
              end
         | 
| 37 | 
            +
            end
         | 
| @@ -30,21 +30,23 @@ | |
| 30 30 | 
             
              <% end %>
         | 
| 31 31 | 
             
            </div>
         | 
| 32 32 |  | 
| 33 | 
            -
             | 
| 34 | 
            -
             | 
| 35 | 
            -
             | 
| 36 | 
            -
                   | 
| 37 | 
            -
             | 
| 33 | 
            +
            <div id='search-results-list'>
         | 
| 34 | 
            +
              <%= osu.action_list(
         | 
| 35 | 
            +
                  records: accounts,
         | 
| 36 | 
            +
                  list: {
         | 
| 37 | 
            +
                   headings: ['Username', 'Title', 'Name', 'Actions'],
         | 
| 38 | 
            +
                  widths: ['30%', '10%', '40%', '20%'],
         | 
| 38 39 | 
             
                  data_procs:
         | 
| 39 40 | 
             
                    [
         | 
| 40 | 
            -
                       | 
| 41 | 
            -
                       | 
| 42 | 
            -
                       | 
| 43 | 
            -
                       | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 41 | 
            +
                      lambda { |account| account.username },
         | 
| 42 | 
            +
                      lambda { |account| account.title || '---' },
         | 
| 43 | 
            +
                      lambda { |account| account.name || '---' },
         | 
| 44 | 
            +
                      lambda { |account| 
         | 
| 45 | 
            +
                          link_to 'Sign in as',
         | 
| 46 | 
            +
                                  with_interceptor { become_dev_account_path(account) },
         | 
| 47 | 
            +
                                  method: :post
         | 
| 48 | 
            +
                        }
         | 
| 48 49 | 
             
                    ]
         | 
| 49 | 
            -
             | 
| 50 | 
            -
             | 
| 50 | 
            +
                  }
         | 
| 51 | 
            +
                ) %>
         | 
| 52 | 
            +
            </div>
         | 
| @@ -4,15 +4,28 @@ | |
| 4 4 | 
             
                <%= error.translate %>
         | 
| 5 5 | 
             
              <% end %>
         | 
| 6 6 |  | 
| 7 | 
            -
               | 
| 7 | 
            +
              <h3>Create an Account</h3>
         | 
| 8 8 |  | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 9 | 
            +
              <%= lev_form_for :create,
         | 
| 10 | 
            +
                               url: openstax_accounts.dev_accounts_path,
         | 
| 11 | 
            +
                               method: :post do |f| %>
         | 
| 11 12 |  | 
| 12 | 
            -
                 | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 13 | 
            +
                Username
         | 
| 14 | 
            +
                <%= f.text_field :username, style: 'width:300px' %> 
         | 
| 15 | 
            +
                <%= f.submit 'Create', class: 'btn btn-primary' %>
         | 
| 15 16 |  | 
| 16 17 | 
             
              <% end %>
         | 
| 17 18 |  | 
| 19 | 
            +
              <h3>Development Login</h3>
         | 
| 20 | 
            +
             | 
| 21 | 
            +
              <p>You need to login, but we're not connected to the Accounts server.
         | 
| 22 | 
            +
              Search for a user below and click the sign in link next to him or her.</p>
         | 
| 23 | 
            +
             | 
| 24 | 
            +
              <%= with_interceptor {
         | 
| 25 | 
            +
                    render :partial => 'openstax/accounts/shared/accounts/search',
         | 
| 26 | 
            +
                           :locals => { :search_action_path => openstax_accounts.search_dev_accounts_path,
         | 
| 27 | 
            +
                                        :remote => true, :method => :get } } %>
         | 
| 28 | 
            +
              
         | 
| 29 | 
            +
              <br>
         | 
| 30 | 
            +
              <div id="search-results"></div>
         | 
| 18 31 | 
             
            </div>
         | 
    
        data/config/routes.rb
    CHANGED
    
    | @@ -8,7 +8,7 @@ OpenStax::Accounts::Engine.routes.draw do | |
| 8 8 | 
             
              get '/auth/openstax', :as => 'openstax_login'
         | 
| 9 9 |  | 
| 10 10 | 
             
              # OmniAuth local routes (SessionsController)
         | 
| 11 | 
            -
               | 
| 11 | 
            +
              scope module: 'sessions' do
         | 
| 12 12 | 
             
                get 'callback', :path => 'auth/:provider/callback' # Authentication success
         | 
| 13 13 | 
             
                get 'failure', :path => 'auth/failure' # Authentication failure
         | 
| 14 14 |  | 
| @@ -19,9 +19,9 @@ OpenStax::Accounts::Engine.routes.draw do | |
| 19 19 |  | 
| 20 20 | 
             
              if OpenStax::Accounts.configuration.enable_stubbing?
         | 
| 21 21 | 
             
                namespace :dev do
         | 
| 22 | 
            -
                  resources :accounts, :only => [:index] do
         | 
| 23 | 
            -
                    post 'index', :on => :collection
         | 
| 22 | 
            +
                  resources :accounts, :only => [:index, :create] do
         | 
| 24 23 | 
             
                    post 'become', :on => :member
         | 
| 24 | 
            +
                    get 'search', :on => :collection
         | 
| 25 25 | 
             
                  end
         | 
| 26 26 | 
             
                end
         | 
| 27 27 | 
             
              end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: openstax_accounts
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 3. | 
| 4 | 
            +
              version: 3.1.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - JP Slavinsky
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2014-09- | 
| 11 | 
            +
            date: 2014-09-23 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rails
         | 
| @@ -251,7 +251,8 @@ files: | |
| 251 251 | 
             
            - app/controllers/openstax/accounts/dev/accounts_controller.rb
         | 
| 252 252 | 
             
            - app/controllers/openstax/accounts/dev/base_controller.rb
         | 
| 253 253 | 
             
            - app/controllers/openstax/accounts/sessions_controller.rb
         | 
| 254 | 
            -
            - app/handlers/openstax/accounts/dev/ | 
| 254 | 
            +
            - app/handlers/openstax/accounts/dev/accounts_create.rb
         | 
| 255 | 
            +
            - app/handlers/openstax/accounts/dev/accounts_search.rb
         | 
| 255 256 | 
             
            - app/handlers/openstax/accounts/sessions_callback.rb
         | 
| 256 257 | 
             
            - app/helpers/openstax/accounts/application_helper.rb
         | 
| 257 258 | 
             
            - app/models/openstax/accounts/account.rb
         | 
| @@ -272,6 +273,7 @@ files: | |
| 272 273 | 
             
            - app/representers/openstax/accounts/api/v1/group_nesting_representer.rb
         | 
| 273 274 | 
             
            - app/representers/openstax/accounts/api/v1/group_representer.rb
         | 
| 274 275 | 
             
            - app/representers/openstax/accounts/api/v1/group_user_representer.rb
         | 
| 276 | 
            +
            - app/routines/openstax/accounts/dev/create_account.rb
         | 
| 275 277 | 
             
            - app/routines/openstax/accounts/dev/search_accounts.rb
         | 
| 276 278 | 
             
            - app/routines/openstax/accounts/search_accounts.rb
         | 
| 277 279 | 
             
            - app/routines/openstax/accounts/sync_accounts.rb
         | 
| @@ -280,9 +282,9 @@ files: | |
| 280 282 | 
             
            - app/views/layouts/openstax/accounts/application.html.erb
         | 
| 281 283 | 
             
            - app/views/openstax/accounts/dev/accounts/_search_results.html.erb
         | 
| 282 284 | 
             
            - app/views/openstax/accounts/dev/accounts/index.html.erb
         | 
| 283 | 
            -
            - app/views/openstax/accounts/dev/accounts/ | 
| 285 | 
            +
            - app/views/openstax/accounts/dev/accounts/search.js.erb
         | 
| 284 286 | 
             
            - app/views/openstax/accounts/shared/_attention.html.erb
         | 
| 285 | 
            -
            - app/views/openstax/accounts/shared/accounts/ | 
| 287 | 
            +
            - app/views/openstax/accounts/shared/accounts/_search.html.erb
         | 
| 286 288 | 
             
            - config/initializers/action_interceptor.rb
         | 
| 287 289 | 
             
            - config/routes.rb
         | 
| 288 290 | 
             
            - db/migrate/0_create_openstax_accounts_accounts.rb
         |