openstax_accounts 0.3.0 → 1.0.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 +15 -0
- data/README.md +20 -0
- data/app/controllers/openstax/accounts/dev/base_controller.rb +19 -0
- data/app/controllers/openstax/accounts/dev/users_controller.rb +10 -9
- data/app/handlers/openstax/accounts/dev/users_index.rb +39 -0
- data/app/handlers/openstax/accounts/sessions_omniauth_authenticated.rb +2 -1
- data/app/models/openstax/accounts/application_user.rb +7 -0
- data/app/models/openstax/accounts/user.rb +15 -3
- data/app/representers/openstax/accounts/api/v1/application_user_representer.rb +5 -1
- data/app/representers/openstax/accounts/api/v1/application_user_search_representer.rb +19 -0
- data/app/representers/openstax/accounts/api/v1/application_users_representer.rb +16 -0
- data/app/representers/openstax/accounts/api/v1/user_representer.rb +2 -6
- data/app/routines/openstax/accounts/dev/create_user.rb +4 -4
- data/app/routines/openstax/accounts/dev/search_users.rb +27 -0
- data/app/routines/openstax/accounts/search_users.rb +174 -32
- data/app/routines/openstax/accounts/sync_users.rb +44 -0
- data/app/views/openstax/accounts/dev/users/_search_results.html.erb +50 -0
- data/app/views/openstax/accounts/dev/users/index.js.erb +3 -0
- data/app/views/openstax/accounts/dev/users/login.html.erb +6 -5
- data/app/views/openstax/accounts/shared/_attention.html.erb +1 -1
- data/app/views/openstax/accounts/shared/users/_index.html.erb +24 -0
- data/config/routes.rb +5 -4
- data/lib/generators/openstax/accounts/schedule/USAGE +8 -0
- data/lib/generators/openstax/accounts/schedule/schedule_generator.rb +18 -0
- data/lib/generators/openstax/accounts/schedule/templates/schedule.rb +3 -0
- data/lib/omniauth/strategies/openstax.rb +1 -1
- data/lib/openstax/accounts/engine.rb +2 -0
- data/lib/openstax/accounts/version.rb +1 -1
- data/lib/openstax_accounts.rb +69 -26
- data/spec/controllers/openstax/accounts/dev/users_controller_spec.rb +4 -3
- data/spec/dummy/app/controllers/api/application_users_controller.rb +12 -0
- data/spec/dummy/config/application.rb +3 -0
- data/spec/dummy/config/initializers/openstax_accounts.rb +1 -0
- data/spec/dummy/config/routes.rb +5 -4
- data/spec/lib/openstax_accounts_spec.rb +19 -11
- data/spec/routines/openstax/accounts/dev/create_user_spec.rb +26 -0
- data/spec/routines/openstax/accounts/search_users_spec.rb +129 -0
- metadata +47 -68
- data/app/controllers/openstax/accounts/dev/dev_controller.rb +0 -13
- data/app/handlers/openstax/accounts/dev/users_search.rb +0 -38
- data/app/representers/openstax/accounts/api/v1/contact_info_representer.rb +0 -23
- data/app/representers/openstax/accounts/api/v1/email_address_representer.rb +0 -9
- data/app/views/openstax/accounts/dev/users/search.js.erb +0 -21
- data/app/views/openstax/accounts/users/_action_create_form.html.erb +0 -9
- data/app/views/openstax/accounts/users/_action_dialog.html.erb +0 -10
- data/app/views/openstax/accounts/users/_action_list.html.erb +0 -33
- data/app/views/openstax/accounts/users/_action_search.html.erb +0 -25
- data/app/views/openstax/accounts/users/action_search.js.erb +0 -8
- data/spec/dummy/app/controllers/api/users_controller.rb +0 -7
@@ -1,38 +0,0 @@
|
|
1
|
-
module OpenStax
|
2
|
-
module Accounts
|
3
|
-
module Dev
|
4
|
-
class UsersSearch
|
5
|
-
|
6
|
-
lev_handler transaction: :no_transaction
|
7
|
-
|
8
|
-
paramify :search do
|
9
|
-
attribute :search_type, type: String
|
10
|
-
validates :search_type, presence: true,
|
11
|
-
inclusion: { in: %w(Name Username Any),
|
12
|
-
message: "is not valid" }
|
13
|
-
|
14
|
-
attribute :search_terms, type: String
|
15
|
-
validates :search_terms, presence: true
|
16
|
-
end
|
17
|
-
|
18
|
-
uses_routine OpenStax::Accounts::SearchUsers,
|
19
|
-
as: :search_users,
|
20
|
-
translations: { outputs: {type: :verbatim} }
|
21
|
-
|
22
|
-
protected
|
23
|
-
|
24
|
-
def authorized?
|
25
|
-
!Rails.env.production? || caller.is_administrator?
|
26
|
-
end
|
27
|
-
|
28
|
-
def handle
|
29
|
-
terms = search_params.search_terms
|
30
|
-
type = search_params.search_type
|
31
|
-
|
32
|
-
run(:search_users, terms, type.downcase.to_sym)
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
module OpenStax
|
2
|
-
module Accounts
|
3
|
-
module Api
|
4
|
-
module V1
|
5
|
-
class ContactInfoRepresenter < Roar::Decorator
|
6
|
-
include Roar::Representer::JSON
|
7
|
-
|
8
|
-
property :id,
|
9
|
-
type: Integer
|
10
|
-
|
11
|
-
property :type,
|
12
|
-
type: String
|
13
|
-
|
14
|
-
property :value,
|
15
|
-
type: String
|
16
|
-
|
17
|
-
property :verified
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
|
2
|
-
<%= render template: 'openstax/accounts/users/action_search',
|
3
|
-
locals: {
|
4
|
-
users: @handler_result.outputs[:users],
|
5
|
-
list: OpenStax::Accounts::ActionList.new(
|
6
|
-
headings: ['First Name', 'Last Name', 'Username', ''],
|
7
|
-
widths: ['25%', '25%', '25%', '25%'],
|
8
|
-
data_procs:
|
9
|
-
[
|
10
|
-
Proc.new { |user| user.first_name },
|
11
|
-
Proc.new { |user| user.last_name },
|
12
|
-
Proc.new { |user| user.username },
|
13
|
-
Proc.new { |user|
|
14
|
-
link_to 'Sign in as',
|
15
|
-
become_dev_users_path(:user_id => user.id),
|
16
|
-
method: :post
|
17
|
-
}
|
18
|
-
]
|
19
|
-
)
|
20
|
-
}
|
21
|
-
%>
|
@@ -1,9 +0,0 @@
|
|
1
|
-
<%# Copyright 2011-2012 Rice University. Licensed under the Affero General Public
|
2
|
-
License version 3 or later. See the COPYRIGHT file for details. %>
|
3
|
-
|
4
|
-
<%# Callers must supply a 'user' local variable %>
|
5
|
-
|
6
|
-
<%= form_for target, :method => :post, :remote => true do |f| %>
|
7
|
-
<%= f.hidden_field :user_id, :value => user.id %>
|
8
|
-
<%= f.submit "Add", :onclick => please_wait_js %>
|
9
|
-
<% end %>
|
@@ -1,10 +0,0 @@
|
|
1
|
-
<%# Copyright 2011-2012 Rice University. Licensed under the Affero General Public
|
2
|
-
License version 3 or later. See the COPYRIGHT file for details. %>
|
3
|
-
|
4
|
-
<div id="user_action_dialog" style="display:none" title="<%= @action_dialog_title %>">
|
5
|
-
<div id="user_action_dialog_errors"></div>
|
6
|
-
|
7
|
-
<%= render :partial => 'users/action_search',
|
8
|
-
:locals => { :action_search_path => @action_search_path } %>
|
9
|
-
|
10
|
-
</div>
|
@@ -1,33 +0,0 @@
|
|
1
|
-
<%# Copyright 2011-2012 Rice University. Licensed under the Affero General Public
|
2
|
-
License version 3 or later. See the COPYRIGHT file for details. %>
|
3
|
-
|
4
|
-
<%
|
5
|
-
users ||= []
|
6
|
-
%>
|
7
|
-
|
8
|
-
<% if list.num_columns > 0 %>
|
9
|
-
<table class="list" width="100%">
|
10
|
-
<% if list.has_headings? %>
|
11
|
-
<tr>
|
12
|
-
<% for ii in 0..list.num_columns - 1 %>
|
13
|
-
<th><%= list.get_heading(ii) %></th>
|
14
|
-
<% end %>
|
15
|
-
</tr>
|
16
|
-
<% end %>
|
17
|
-
|
18
|
-
<% if users.empty? %>
|
19
|
-
<tr>
|
20
|
-
<td colspan="<%= list.num_columns %>">No results</td>
|
21
|
-
</tr>
|
22
|
-
<% else %>
|
23
|
-
<% users.all.each_with_index do |user, uu| %>
|
24
|
-
<tr>
|
25
|
-
<% for cc in 0..list.num_columns - 1 %>
|
26
|
-
<% width = uu == 0 ? list.get_width(cc) : nil %>
|
27
|
-
<td <%= "width=#{width}" if width %>><%= list.get_data(cc, user) %></td>
|
28
|
-
<% end %>
|
29
|
-
</tr>
|
30
|
-
<% end %>
|
31
|
-
<% end %>
|
32
|
-
</table>
|
33
|
-
<% end %>
|
@@ -1,25 +0,0 @@
|
|
1
|
-
<%# Copyright 2011-2012 Rice University. Licensed under the Affero General Public
|
2
|
-
License version 3 or later. See the COPYRIGHT file for details. %>
|
3
|
-
|
4
|
-
<%
|
5
|
-
# Clients of this partial must supply the following variables:
|
6
|
-
# action_search_path
|
7
|
-
%>
|
8
|
-
|
9
|
-
<div id="action-search-errors"></div>
|
10
|
-
|
11
|
-
<%= lev_form_for :search,
|
12
|
-
url: action_search_path,
|
13
|
-
html: {id: 'action-search-form'},
|
14
|
-
remote: true do |f| %>
|
15
|
-
|
16
|
-
Search for
|
17
|
-
<%= f.text_field :search_terms, style: 'width:300px' %>
|
18
|
-
in
|
19
|
-
<%= f.select :search_type, options_for_select(['Any', 'Name', 'Username']) %>
|
20
|
-
|
21
|
-
<%= submit_tag 'Search' %>
|
22
|
-
|
23
|
-
<% end %>
|
24
|
-
|
25
|
-
<div id="action-search-results-list"></div>
|