openstax_accounts 0.3.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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>
|