openstax_accounts 7.13.0 → 8.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/openstax/accounts/application_controller.rb +1 -1
  3. data/app/controllers/openstax/accounts/dev/accounts_controller.rb +1 -1
  4. data/app/controllers/openstax/accounts/dev/base_controller.rb +1 -1
  5. data/app/controllers/openstax/accounts/sessions_controller.rb +7 -8
  6. data/app/handlers/openstax/accounts/sessions_callback.rb +17 -37
  7. data/app/models/openstax/accounts/account.rb +33 -1
  8. data/app/models/openstax/accounts/group.rb +12 -8
  9. data/app/models/openstax/accounts/group_nesting.rb +8 -7
  10. data/app/representers/openstax/accounts/api/v1/unclaimed_account_representer.rb +1 -7
  11. data/app/routines/openstax/accounts/find_or_create_account.rb +9 -9
  12. data/app/routines/openstax/accounts/find_or_create_from_sso.rb +23 -0
  13. data/app/routines/openstax/accounts/sync_accounts.rb +1 -6
  14. data/config/routes.rb +11 -11
  15. data/db/migrate/0_create_openstax_accounts_accounts.rb +1 -1
  16. data/db/migrate/10_assign_missing_uuids_for_local_accounts.rb +2 -2
  17. data/db/migrate/11_add_support_identifier_to_accounts_accounts.rb +1 -1
  18. data/db/migrate/12_add_is_test_to_accounts_accounts.rb +1 -1
  19. data/db/migrate/13_add_school_type_to_accounts_accounts.rb +1 -1
  20. data/db/migrate/1_create_openstax_accounts_groups.rb +1 -1
  21. data/db/migrate/2_create_openstax_accounts_group_members.rb +1 -1
  22. data/db/migrate/3_create_openstax_accounts_group_owners.rb +1 -1
  23. data/db/migrate/4_create_openstax_accounts_group_nestings.rb +1 -1
  24. data/db/migrate/5_add_faculty_status_to_accounts_accounts.rb +1 -1
  25. data/db/migrate/6_add_salesforce_contact_id_to_accounts_accounts.rb +1 -1
  26. data/db/migrate/7_change_accounts_openstax_uid_to_be_nullable.rb +1 -1
  27. data/db/migrate/8_change_accounts_username_to_be_nullable.rb +1 -1
  28. data/db/migrate/9_add_uuid_and_role_to_accounts_accounts.rb +1 -1
  29. data/lib/omniauth/strategies/openstax.rb +6 -23
  30. data/lib/openstax/accounts/configuration.rb +16 -0
  31. data/lib/openstax/accounts/current_user_manager.rb +20 -0
  32. data/lib/openstax/accounts/has_many_through_groups/active_record/base.rb +5 -5
  33. data/lib/openstax/accounts/sso.rb +61 -0
  34. data/lib/openstax/accounts/version.rb +1 -1
  35. data/lib/openstax_accounts.rb +6 -7
  36. data/lib/tasks/sync.rake +3 -3
  37. data/spec/factories/openstax_accounts_account.rb +1 -1
  38. data/spec/factories/openstax_accounts_group.rb +3 -3
  39. data/spec/factories/openstax_accounts_group_member.rb +1 -1
  40. data/spec/factories/openstax_accounts_group_nesting.rb +1 -1
  41. data/spec/factories/openstax_accounts_group_owner.rb +1 -1
  42. metadata +34 -212
  43. data/Rakefile +0 -22
  44. data/spec/cassettes/OpenStax_Accounts_FindOrCreateAccount/can_create_users.yml +0 -303
  45. data/spec/controllers/openstax/accounts/dev/accounts_controller_spec.rb +0 -27
  46. data/spec/controllers/openstax/accounts/forwards_params_spec.rb +0 -75
  47. data/spec/controllers/openstax/accounts/sessions_controller_spec.rb +0 -71
  48. data/spec/controllers/openstax/accounts/uses_this_engine_controller_spec.rb +0 -22
  49. data/spec/dummy/README.md +0 -1
  50. data/spec/dummy/Rakefile +0 -7
  51. data/spec/dummy/app/access_policies/account_access_policy.rb +0 -11
  52. data/spec/dummy/app/assets/javascripts/application.js +0 -15
  53. data/spec/dummy/app/assets/stylesheets/application.css +0 -13
  54. data/spec/dummy/app/controllers/api/application_groups_controller.rb +0 -11
  55. data/spec/dummy/app/controllers/api/application_users_controller.rb +0 -15
  56. data/spec/dummy/app/controllers/api/dummy_controller.rb +0 -12
  57. data/spec/dummy/app/controllers/api/group_members_controller.rb +0 -11
  58. data/spec/dummy/app/controllers/api/group_nestings_controller.rb +0 -11
  59. data/spec/dummy/app/controllers/api/group_owners_controller.rb +0 -11
  60. data/spec/dummy/app/controllers/api/groups_controller.rb +0 -15
  61. data/spec/dummy/app/controllers/api/users_controller.rb +0 -15
  62. data/spec/dummy/app/controllers/application_controller.rb +0 -3
  63. data/spec/dummy/app/controllers/oauth_controller.rb +0 -10
  64. data/spec/dummy/app/helpers/application_helper.rb +0 -2
  65. data/spec/dummy/app/models/anonymous_user.rb +0 -48
  66. data/spec/dummy/app/models/ownership.rb +0 -7
  67. data/spec/dummy/app/models/user.rb +0 -29
  68. data/spec/dummy/config.ru +0 -5
  69. data/spec/dummy/config/application.rb +0 -23
  70. data/spec/dummy/config/boot.rb +0 -5
  71. data/spec/dummy/config/database.yml +0 -15
  72. data/spec/dummy/config/environment.rb +0 -5
  73. data/spec/dummy/config/environments/development.rb +0 -40
  74. data/spec/dummy/config/environments/production.rb +0 -82
  75. data/spec/dummy/config/environments/test.rb +0 -39
  76. data/spec/dummy/config/initializers/access_policies.rb +0 -1
  77. data/spec/dummy/config/initializers/assets.rb +0 -8
  78. data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
  79. data/spec/dummy/config/initializers/cookies_serializer.rb +0 -3
  80. data/spec/dummy/config/initializers/doorkeeper.rb +0 -75
  81. data/spec/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  82. data/spec/dummy/config/initializers/inflections.rb +0 -16
  83. data/spec/dummy/config/initializers/mime_types.rb +0 -4
  84. data/spec/dummy/config/initializers/openstax_accounts.rb +0 -14
  85. data/spec/dummy/config/initializers/session_store.rb +0 -3
  86. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
  87. data/spec/dummy/config/locales/en.yml +0 -5
  88. data/spec/dummy/config/routes.rb +0 -45
  89. data/spec/dummy/config/secrets.yml +0 -8
  90. data/spec/dummy/db/development.sqlite3 +0 -0
  91. data/spec/dummy/db/migrate/1000_create_users.rb +0 -11
  92. data/spec/dummy/db/migrate/1001_create_ownerships.rb +0 -11
  93. data/spec/dummy/db/schema.rb +0 -113
  94. data/spec/dummy/db/test.sqlite3 +0 -0
  95. data/spec/dummy/log/development.log +0 -5137
  96. data/spec/dummy/log/test.log +0 -162651
  97. data/spec/dummy/public/404.html +0 -26
  98. data/spec/dummy/public/422.html +0 -26
  99. data/spec/dummy/public/500.html +0 -25
  100. data/spec/dummy/public/favicon.ico +0 -0
  101. data/spec/dummy/script/rails +0 -6
  102. data/spec/handlers/openstax/accounts/accounts_search_spec.rb +0 -63
  103. data/spec/handlers/openstax/accounts/dev/accounts_search_spec.rb +0 -55
  104. data/spec/handlers/openstax/accounts/sessions_callback_spec.rb +0 -119
  105. data/spec/lib/openstax/accounts/api_spec.rb +0 -212
  106. data/spec/lib/openstax/accounts/configuration_spec.rb +0 -39
  107. data/spec/lib/openstax/accounts/current_user_manager_spec.rb +0 -157
  108. data/spec/lib/openstax/accounts/has_many_through_groups/active_record/base_spec.rb +0 -57
  109. data/spec/models/openstax/accounts/account_spec.rb +0 -114
  110. data/spec/models/openstax/accounts/anonymous_account_spec.rb +0 -9
  111. data/spec/models/openstax/accounts/group_spec.rb +0 -51
  112. data/spec/routines/openstax/accounts/create_group_spec.rb +0 -32
  113. data/spec/routines/openstax/accounts/find_or_create_account_spec.rb +0 -76
  114. data/spec/routines/openstax/accounts/search_accounts_shared_examples.rb +0 -160
  115. data/spec/routines/openstax/accounts/search_accounts_spec.rb +0 -6
  116. data/spec/routines/openstax/accounts/search_local_accounts_spec.rb +0 -6
  117. data/spec/routines/openstax/accounts/sync_accounts_spec.rb +0 -101
  118. data/spec/routines/openstax/accounts/sync_groups_spec.rb +0 -143
  119. data/spec/spec_helper.rb +0 -109
  120. data/spec/vcr_helper.rb +0 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 63f92ee3ec16b3bfa98971c5eb4c7f0fe7e6aa6c9ab55c1a8aaa9987f61adf90
4
- data.tar.gz: fcf45cbfaf4ddd1108043729a57d0823b994752556762e547aedeeb8af3eeaeb
3
+ metadata.gz: edf27a81aef8f196ab5b804f38903395d24367628209a9eeb001a37f258f33d5
4
+ data.tar.gz: af2ac3a3de4ab707958bc03b0faf561e876b99521f82a8695a55cfcbbd1bc740
5
5
  SHA512:
6
- metadata.gz: e23bcba422c20b646574efac818a710df0921dd4c032d1cf653750dce39abbd59833575efbeb25ef02e15f9857aa7c7da0e46e6799040d06c38c0c333a0e1cfb
7
- data.tar.gz: 2907f10d08578f208ca96064d11ff3d1b857a74d50355e1b92a339edff48f57b5f83ad3f2659f9603cb108f62346bf584cb5b86151ce76c1cdf2804cbb48d595
6
+ metadata.gz: 3f8b506ad52a7bb2b59ed822f0347c7bb5343728dbedf7fa166f7ffc2aabc7ce9c3b8a6113d09aab44795a04e79e74595583e2335e825b0e682e7be3604b4a8c
7
+ data.tar.gz: fca6c2d52b5540bac193bc099c905ca4a6aa860c7353b411259ae95c878e872fb7c0f46f67c7b0a3813b7ae853dd967e969839c524384a07d1b30e3754677874
@@ -5,7 +5,7 @@ module OpenStax
5
5
 
6
6
  include Lev::HandleWith
7
7
 
8
- skip_before_filter :authenticate_user!
8
+ skip_before_action :authenticate_user!, raise: false
9
9
 
10
10
  def configuration
11
11
  OpenStax::Accounts.configuration
@@ -3,7 +3,7 @@ module OpenStax
3
3
  module Dev
4
4
  class AccountsController < OpenStax::Accounts::Dev::BaseController
5
5
  # Allow accessing from inside an iframe
6
- before_filter :allow_iframe_access, only: [:index, :search]
6
+ before_action :allow_iframe_access, only: [:index, :search]
7
7
 
8
8
  def index
9
9
  end
@@ -3,7 +3,7 @@ module OpenStax
3
3
  module Dev
4
4
  class BaseController < OpenStax::Accounts::ApplicationController
5
5
 
6
- before_filter do
6
+ before_action do
7
7
  raise SecurityTransgression if Rails.env.production?
8
8
  end
9
9
 
@@ -12,7 +12,7 @@ module OpenStax
12
12
  redirect_to dev_accounts_path
13
13
  else
14
14
  forwardable_params =
15
- params.slice(*configuration.forwardable_login_param_keys.map(&:to_s))
15
+ params.permit(*configuration.forwardable_login_param_keys.map(&:to_s)).to_h
16
16
  redirect_to openstax_login_path(forwardable_params)
17
17
  end
18
18
  end
@@ -20,13 +20,12 @@ module OpenStax
20
20
  def callback
21
21
  handle_with(
22
22
  SessionsCallback,
23
- success: lambda {
24
- sign_in(@handler_result.outputs[:account])
25
- redirect_back key: :accounts_return_to, strategies: [:session]
26
- },
27
- failure: lambda {
28
- failure
29
- })
23
+ success: -> do
24
+ sign_in(@handler_result.outputs[:account])
25
+ redirect_back key: :accounts_return_to, strategies: [:session]
26
+ end,
27
+ failure: -> { failure }
28
+ )
30
29
  end
31
30
 
32
31
  def destroy
@@ -1,8 +1,6 @@
1
1
  module OpenStax
2
2
  module Accounts
3
-
4
3
  class SessionsCallback
5
-
6
4
  lev_handler
7
5
 
8
6
  protected
@@ -12,59 +10,41 @@ module OpenStax
12
10
  end
13
11
 
14
12
  def authorized?
15
- @auth_data.provider == "openstax"
13
+ @auth_data.provider == 'openstax'
16
14
  end
17
15
 
18
16
  def handle
19
- # Don't worry if the account is logged in or not beforehand.
20
- # Just assume that they aren't.
17
+ # Don't worry if the account is logged in or not beforehand. Just assume that they aren't.
21
18
 
22
- # http://apidock.com/rails/v4.0.2/ActiveRecord/Relation/find_or_create_by
19
+ # tap is used because we want the block to always run (not just when initializing)
23
20
  begin
24
- outputs[:account] = Account.find_or_initialize_by(openstax_uid: @auth_data.uid).tap do |account|
25
- account.username = @auth_data.info.nickname
26
- account.first_name = @auth_data.info.first_name
27
- account.last_name = @auth_data.info.last_name
28
- account.full_name = @auth_data.info.name
29
- account.title = @auth_data.info.title
21
+ outputs.account = Account.find_or_initialize_by(
22
+ openstax_uid: @auth_data.uid
23
+ ).tap do |account|
30
24
  account.access_token = @auth_data.credentials.token
31
25
 
32
- # Gracefully handle absent and unknown faculty status info
33
26
  raw_info = @auth_data.extra.raw_info
34
- if raw_info.present?
35
- begin
36
- account.faculty_status = raw_info['faculty_status'] || :no_faculty_info
37
- rescue ArgumentError => ee
38
- account.faculty_status = :no_faculty_info
39
- end
40
-
41
- begin
42
- account.role = raw_info['self_reported_role'] || :unknown_role
43
- rescue ArgumentError => ee
44
- account.role = :unknown_role
45
- end
46
-
27
+ OpenStax::Accounts::Account::SYNC_ATTRIBUTES.each do |attribute|
47
28
  begin
48
- account.school_type = raw_info['school_type'] || :unknown_school_type
49
- rescue ArgumentError => ee
50
- account.school_type = :unknown_school_type
29
+ account.send "#{attribute}=", raw_info[attribute]
30
+ rescue ArgumentError
31
+ # Ignore errors, for example if enum values are invalid
51
32
  end
52
-
53
- account.uuid = raw_info['uuid']
54
- account.support_identifier = raw_info['support_identifier']
55
- account.is_test = raw_info['is_test']
56
33
  end
34
+
35
+ # Gracefully handle absent and unknown enum values
36
+ account.faculty_status ||= :no_faculty_info
37
+ account.role ||= :unknown_role
38
+ account.school_type ||= :unknown_school_type
57
39
  end
58
40
 
59
- outputs[:account].save if outputs[:account].changed?
41
+ outputs.account.save if outputs.account.changed?
60
42
  rescue ActiveRecord::RecordNotUnique
61
43
  retry
62
44
  end
63
45
 
64
- transfer_errors_from(outputs[:account], {type: :verbatim})
46
+ transfer_errors_from(outputs.account, type: :verbatim)
65
47
  end
66
-
67
48
  end
68
-
69
49
  end
70
50
  end
@@ -3,6 +3,20 @@ module OpenStax::Accounts
3
3
 
4
4
  USERNAME_DISCARDED_CHAR_REGEX = /[^A-Za-z\d_]/
5
5
  USERNAME_MAX_LENGTH = 50
6
+ SYNC_ATTRIBUTES = [
7
+ :username,
8
+ :first_name,
9
+ :last_name,
10
+ :full_name,
11
+ :title,
12
+ :self_reported_role,
13
+ :faculty_status,
14
+ :school_type,
15
+ :salesforce_contact_id,
16
+ :uuid,
17
+ :support_identifier,
18
+ :is_test
19
+ ]
6
20
 
7
21
  attr_accessor :syncing
8
22
 
@@ -21,7 +35,17 @@ module OpenStax::Accounts
21
35
  has_many :groups_as_member, through: :group_members, source: :group
22
36
 
23
37
  enum faculty_status: [:no_faculty_info, :pending_faculty, :confirmed_faculty, :rejected_faculty]
24
- enum role: [:unknown_role, :student, :instructor, :administrator, :librarian, :designer, :other]
38
+ enum role: [
39
+ :unknown_role,
40
+ :student,
41
+ :instructor,
42
+ :administrator,
43
+ :librarian,
44
+ :designer,
45
+ :other,
46
+ :adjunct,
47
+ :homeschool
48
+ ]
25
49
  enum school_type: [:unknown_school_type, :other_school_type, :college]
26
50
 
27
51
  validates :faculty_status, :role, :school_type, presence: true
@@ -53,6 +77,14 @@ module OpenStax::Accounts
53
77
  !openstax_uid.nil? && openstax_uid > 0
54
78
  end
55
79
 
80
+ def self_reported_role
81
+ role
82
+ end
83
+
84
+ def self_reported_role=(role)
85
+ self.role = role
86
+ end
87
+
56
88
  protected
57
89
 
58
90
  def syncing_or_stubbing?
@@ -115,10 +115,12 @@ module OpenStax::Accounts
115
115
  reload
116
116
 
117
117
  gids = [openstax_uid] + (
118
- self.class.joins(:member_group_nestings)
119
- .where(openstax_accounts_group_nestings: { member_group_id: openstax_uid })
120
- .first
121
- .try!(:supertree_group_ids) || []
118
+ self.class.joins(:member_group_nestings).where(
119
+ # This could have been:
120
+ # member_group_nestings: { member_group_id: openstax_uid }
121
+ # However that needs a monkeypatch to work in Rails 5 so we currently do this:
122
+ openstax_accounts_group_nestings: { member_group_id: openstax_uid }
123
+ ).first.try!(:supertree_group_ids) || []
122
124
  )
123
125
  update_column(:cached_supertree_group_ids, gids)
124
126
  self.cached_supertree_group_ids = gids
@@ -129,10 +131,12 @@ module OpenStax::Accounts
129
131
  return [] unless persisted?
130
132
  reload
131
133
 
132
- gids = [openstax_uid] +
133
- self.class.joins(:container_group_nesting)
134
- .where(openstax_accounts_group_nestings: { container_group_id: openstax_uid })
135
- .map { |group| group.subtree_group_ids }.flatten
134
+ gids = [openstax_uid] + self.class.joins(:container_group_nesting).where(
135
+ # This could have been:
136
+ # container_group_nesting: { container_group_id: openstax_uid }
137
+ # However that needs a monkeypatch to work in Rails 5 so we currently do this:
138
+ openstax_accounts_group_nestings: { container_group_id: openstax_uid }
139
+ ).map { |group| group.subtree_group_ids }.flatten
136
140
  update_column(:cached_subtree_group_ids, gids)
137
141
  self.cached_subtree_group_ids = gids
138
142
  end
@@ -26,25 +26,26 @@ module OpenStax::Accounts
26
26
  end
27
27
 
28
28
  def no_loops
29
- return if member_group.nil? ||\
30
- !member_group.subtree_group_ids.include?(container_group_id)
29
+ return if member_group.nil? || !member_group.subtree_group_ids.include?(container_group_id)
30
+
31
31
  errors.add(:base, 'would create a loop') if errors[:base].blank?
32
- false
32
+ throw :abort
33
33
  end
34
34
 
35
35
  def update_group_caches
36
- # Returns false if the update fails (aborting the save transaction)
37
- UpdateGroupCaches.call(self).errors.none?
36
+ UpdateGroupCaches.call(self)
37
+
38
+ throw(:abort) if errors.any?
38
39
  end
39
40
 
40
41
  def create_openstax_accounts_group_nesting
41
- return false if requestor.nil? || requestor.is_anonymous?
42
+ throw(:abort) if requestor.nil? || requestor.is_anonymous?
42
43
 
43
44
  OpenStax::Accounts::Api.create_group_nesting(requestor, self) if requestor.has_authenticated?
44
45
  end
45
46
 
46
47
  def destroy_openstax_accounts_group_nesting
47
- return false if requestor.nil? || requestor.is_anonymous?
48
+ throw(:abort) if requestor.nil? || requestor.is_anonymous?
48
49
 
49
50
  OpenStax::Accounts::Api.destroy_group_nesting(requestor, self) \
50
51
  if requestor.has_authenticated?
@@ -4,7 +4,7 @@ module OpenStax
4
4
  module V1
5
5
  class UnclaimedAccountRepresenter < Roar::Decorator
6
6
 
7
- # This representer is used to communicate with Accounts
7
+ # This representer is used to read from Accounts
8
8
  # and so must allow read/write on all properties
9
9
  # Do not use it in create/update APIs!
10
10
 
@@ -30,12 +30,6 @@ module OpenStax
30
30
  description: "The unclaimed account's support_identifier"
31
31
  }
32
32
 
33
- property :is_test,
34
- type: :boolean,
35
- schema_info: {
36
- description: "Whether or not this is a test account"
37
- }
38
-
39
33
  end
40
34
  end
41
35
  end
@@ -6,12 +6,13 @@ module OpenStax
6
6
 
7
7
  protected
8
8
 
9
- def exec(email: nil, username: nil, password: nil,
10
- first_name: nil, last_name: nil, full_name: nil, title: nil,
11
- salesforce_contact_id: nil, faculty_status: nil, role: nil, school_type: nil)
12
- raise ArgumentError,
13
- 'You must specify either an email address or a username (and an optional password)' \
14
- if email.nil? && username.nil?
9
+ def exec(email: nil, username: nil, password: nil, first_name: nil, last_name: nil,
10
+ full_name: nil, title: nil, salesforce_contact_id: nil, faculty_status: nil,
11
+ role: nil, school_type: nil, is_test: nil)
12
+ raise(
13
+ ArgumentError,
14
+ 'You must specify either an email address or a username (and an optional password)'
15
+ ) if email.nil? && username.nil?
15
16
 
16
17
  if OpenStax::Accounts.configuration.enable_stubbing
17
18
  # We can only stub finding by username b/c accounts-rails doesn't persist emails
@@ -24,7 +25,7 @@ module OpenStax
24
25
  email: email, username: username, password: password,
25
26
  first_name: first_name, last_name: last_name, full_name: full_name,
26
27
  salesforce_contact_id: salesforce_contact_id, faculty_status: faculty_status,
27
- role: role, school_type: school_type)
28
+ role: role, school_type: school_type, is_test: is_test)
28
29
  fatal_error(code: :invalid_inputs) unless (200..202).include?(response.status)
29
30
 
30
31
  struct = OpenStruct.new
@@ -32,7 +33,6 @@ module OpenStax
32
33
  id = struct.id
33
34
  uuid = struct.uuid
34
35
  support_identifier = struct.support_identifier
35
- is_test = struct.is_test
36
36
  end
37
37
 
38
38
  account = Account.find_or_initialize_by(openstax_uid: id)
@@ -57,7 +57,7 @@ module OpenStax
57
57
  end
58
58
 
59
59
  transfer_errors_from(account, {type: :verbatim}, true)
60
- outputs[:account] = account
60
+ outputs.account = account
61
61
  end
62
62
 
63
63
  end
@@ -0,0 +1,23 @@
1
+ module OpenStax
2
+ module Accounts
3
+ class FindOrCreateFromSso
4
+
5
+ lev_routine express_output: :account
6
+
7
+ def exec(attrs)
8
+ attrs.stringify_keys!
9
+ uid = attrs.delete('id')
10
+ uuid = attrs.delete('uuid')
11
+ account = Account.find_or_initialize_by(
12
+ uuid: uuid, openstax_uid: uid
13
+ )
14
+ account.update_attributes!(
15
+ attrs.slice(*Account.column_names)
16
+ )
17
+ transfer_errors_from(account, {type: :verbatim})
18
+ outputs.account = account
19
+ end
20
+
21
+ end
22
+ end
23
+ end
@@ -7,11 +7,6 @@ module OpenStax
7
7
 
8
8
  class SyncAccounts
9
9
 
10
- SYNC_ATTRIBUTES = [
11
- 'username', 'first_name', 'last_name', 'full_name', 'title', 'role', 'faculty_status',
12
- 'school_type', 'salesforce_contact_id', 'uuid', 'support_identifier', 'is_test'
13
- ]
14
-
15
10
  lev_routine transaction: :no_transaction
16
11
 
17
12
  protected
@@ -37,7 +32,7 @@ module OpenStax
37
32
  account.syncing = true
38
33
 
39
34
  if account != app_account.account
40
- SYNC_ATTRIBUTES.each do |attribute|
35
+ OpenStax::Accounts::Account::SYNC_ATTRIBUTES.each do |attribute|
41
36
  account.send("#{attribute}=", app_account.account.send(attribute))
42
37
  end
43
38
  end
data/config/routes.rb CHANGED
@@ -1,31 +1,31 @@
1
1
  OpenStax::Accounts::Engine.routes.draw do
2
2
 
3
3
  # Redirect here if we don't know what to do (theoretically should not happen)
4
- root :to => 'sessions#new'
4
+ root to: 'sessions#new'
5
5
 
6
6
  # Shortcut to OmniAuth route that redirects to the Accounts server
7
7
  # This is provided by OmniAuth and is not in the SessionsController
8
- get '/auth/openstax', :as => 'openstax_login'
8
+ get '/auth/openstax', as: 'openstax_login'
9
9
 
10
10
  # User profile route
11
11
  if OpenStax::Accounts.configuration.enable_stubbing?
12
12
  namespace :dev do
13
- resources :accounts, :only => [:index, :create] do
14
- post 'become', :on => :member
15
- get 'search', :on => :collection
13
+ resources :accounts, only: [:index, :create] do
14
+ post 'become', on: :member
15
+ get 'search', on: :collection
16
16
  end
17
17
  end
18
18
  end
19
19
 
20
20
  # OmniAuth local routes (SessionsController)
21
21
  scope module: 'sessions' do
22
- get 'callback', :path => 'auth/:provider/callback' # Authentication success
23
- get 'failure', :path => 'auth/failure' # Authentication failure
22
+ get 'auth/:provider/callback', action: :callback, as: :callback # Authentication success
23
+ get 'auth/failure', action: :failure, as: :failure # Authentication failure
24
24
 
25
- get 'login', :action => :new # Redirects to /auth/openstax or stub
26
- match 'logout', :action => :destroy, # Redirects to logout path or stub
27
- :via => OpenStax::Accounts.configuration.logout_via
28
- get 'profile', :action => :profile # Redirects to profile path or stub
25
+ get 'login', action: :new # Redirects to /auth/openstax or stub
26
+ match 'logout', action: :destroy, # Redirects to logout path or stub
27
+ via: OpenStax::Accounts.configuration.logout_via
28
+ get 'profile', action: :profile # Redirects to profile path or stub
29
29
  end
30
30
 
31
31
  end
@@ -1,4 +1,4 @@
1
- class CreateOpenStaxAccountsAccounts < ActiveRecord::Migration
1
+ class CreateOpenStaxAccountsAccounts < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :openstax_accounts_accounts do |t|
4
4
  t.integer :openstax_uid, null: false