openstax_accounts 9.5.0 → 9.7.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 48ae6fdbc68368694770f436f5a7a4e57dea39b18c93b2791308aace6b07a02a
4
- data.tar.gz: bbfbe2609b86b3b216ad0a94c7bf41b7c6bc1b29ea65e4a99388288dfcc80f7f
3
+ metadata.gz: 57482982ec158c16ae7ad70aadbf9bda911cd56b27fa4bfdab86c74c6ce008b2
4
+ data.tar.gz: fb98bd455ce7f4758d7a862305e83048b8809b1548d1bd87eaa596f433a8f820
5
5
  SHA512:
6
- metadata.gz: 29b93ef99bbb0ee170f4619269e79dd94fd89634a328985d55a057b9f0c85980480fdf8bfe47d4e946fb9dfc42e3a91c7e087a1825b8067c7c4a68d27e56f70f
7
- data.tar.gz: dd689a226b1f8c92be65d8543c917b35af81eafa9a90f9de3b718fc2cf7b14e4df0ed7f64aff883bc2cf2141bfe1122dffadb9841a7cf0b1df9147e7b419779c
6
+ metadata.gz: c9a7247488af4a6a96bbb8bb81ead9ea2208efd896a0590a4767c2c7ba88913a8deec5ef9661b72ac15d66f0be489c5177c28c277c527f65e923c904b1bb3038
7
+ data.tar.gz: aa45a18b1bc00ed0db4f6ab13ca85ea54dcb25be4a00dc356d202e3d00033cc8162b1c039e86f5a0c0b0932102c04e6cb657a830b20c2963b6a722c6adf0aa6c
data/README.md CHANGED
@@ -2,7 +2,7 @@ accounts-rails
2
2
  =============
3
3
 
4
4
  [![Gem Version](https://badge.fury.io/rb/openstax_accounts.svg)](http://badge.fury.io/rb/openstax_accounts)
5
- [![Build Status](https://travis-ci.org/openstax/accounts-rails.svg?branch=master)](https://travis-ci.org/openstax/accounts-rails)
5
+ [![Tests](https://github.com/openstax/accounts-rails/workflows/Tests/badge.svg)](https://github.com/openstax/accounts-rails/actions?query=workflow:Tests)
6
6
  [![Code Climate](https://codeclimate.com/github/openstax/accounts-rails/badges/gpa.svg)](https://codeclimate.com/github/openstax/accounts-rails)
7
7
 
8
8
  A rails engine for interfacing with OpenStax's accounts server.
@@ -190,3 +190,8 @@ In that folder's config folder, create a `secret_settings.yml` file according to
190
190
  instructions in `secret_settings.yml.example`. Run the example server in the normal way (bundle install..., migrate db, rails server).
191
191
  7. Navigate to the home page, http://localhost:4000. Click log in and play around. You can also refresh the accounts site and see yourself logged in, log out, etc.
192
192
  8. For fun, change example/config/openstax_accounts.rb to set `enable_stubbing` to `true`. Now when you click login you'll be taken to a developer-only page where you can login as other users, generate new users, create new users, etc.
193
+
194
+ Additional Documentation
195
+ ------------------------
196
+
197
+ Additional documentation is in the [accounts-rails wiki](https://github.com/openstax/accounts-rails/wiki).
@@ -5,6 +5,7 @@ module OpenStax::Accounts
5
5
  SYNC_ATTRIBUTES = [
6
6
  :openstax_uid,
7
7
  :username,
8
+ :is_administrator,
8
9
  :first_name,
9
10
  :last_name,
10
11
  :full_name,
@@ -30,6 +30,12 @@ module OpenStax
30
30
  required: true
31
31
  }
32
32
 
33
+ property :is_administrator,
34
+ type: :boolean,
35
+ schema_info: {
36
+ description: 'Whether or not this user is an administrator on Accounts'
37
+ }
38
+
33
39
  property :first_name,
34
40
  type: String,
35
41
  schema_info: {
@@ -1,3 +1,5 @@
1
+ require 'openstax_api'
2
+
1
3
  module OpenStax
2
4
  module Accounts
3
5
  module Api
@@ -8,7 +8,7 @@ module OpenStax
8
8
  uid = attrs.delete('id')
9
9
  uuid = attrs.delete('uuid')
10
10
  account = Account.find_or_initialize_by(uuid: uuid)
11
- account.update_attributes!(attrs.slice(*Account.column_names))
11
+ account.update!(attrs.slice(*Account.column_names))
12
12
  transfer_errors_from(account, {type: :verbatim})
13
13
  outputs.account = account
14
14
  end
@@ -1,7 +1,5 @@
1
1
  # Routine for getting account updates from the Accounts server
2
- #
3
2
  # Should be scheduled to run regularly
4
-
5
3
  module OpenStax
6
4
  module Accounts
7
5
  class SyncAccounts
@@ -12,36 +10,40 @@ module OpenStax
12
10
  def exec(options={})
13
11
  return if OpenStax::Accounts.configuration.enable_stubbing?
14
12
 
15
- response = OpenStax::Accounts::Api.get_application_account_updates
13
+ loop do
14
+ response = OpenStax::Accounts::Api.get_application_account_updates
16
15
 
17
- app_accounts = []
18
- app_accounts_rep = OpenStax::Accounts::Api::V1::ApplicationAccountsRepresenter
19
- .new(app_accounts)
20
- app_accounts_rep.from_json(response.body)
16
+ app_accounts = []
17
+ app_accounts_rep = OpenStax::Accounts::Api::V1::ApplicationAccountsRepresenter.new(
18
+ app_accounts
19
+ )
20
+ app_accounts_rep.from_json(response.body)
21
21
 
22
- return if app_accounts.empty?
22
+ num_accounts = app_accounts.size
23
+ return if num_accounts == 0
23
24
 
24
- updated_app_accounts = []
25
- app_accounts.each do |app_account|
26
- account = OpenStax::Accounts::Account.find_by(
27
- uuid: app_account.account.uuid
28
- ) || app_account.account
29
- account.syncing = true
25
+ updated_app_accounts = []
26
+ app_accounts.each do |app_account|
27
+ account = OpenStax::Accounts::Account.find_by(
28
+ uuid: app_account.account.uuid
29
+ ) || app_account.account
30
+ account.syncing = true
30
31
 
31
- if account != app_account.account
32
32
  OpenStax::Accounts::Account::SYNC_ATTRIBUTES.each do |attribute|
33
- account.send("#{attribute}=", app_account.account.send(attribute))
34
- end
33
+ account.send "#{attribute}=", app_account.account.send(attribute)
34
+ end if account != app_account.account
35
+
36
+ next unless account.save
37
+
38
+ updated_app_accounts << {
39
+ user_id: account.openstax_uid, read_updates: app_account.unread_updates
40
+ }
35
41
  end
36
42
 
37
- next unless account.save
43
+ OpenStax::Accounts::Api.mark_account_updates_as_read(updated_app_accounts)
38
44
 
39
- updated_app_accounts << {
40
- user_id: account.openstax_uid, read_updates: app_account.unread_updates
41
- }
45
+ return if num_accounts < OpenStax::Accounts.configuration.max_user_updates_per_request
42
46
  end
43
-
44
- OpenStax::Accounts::Api.mark_account_updates_as_read(updated_app_accounts)
45
47
  end
46
48
  end
47
49
  end
data/config/routes.rb CHANGED
@@ -17,8 +17,8 @@ OpenStax::Accounts::Engine.routes.draw do
17
17
 
18
18
  # OmniAuth local routes (SessionsController)
19
19
  scope module: 'sessions' do
20
- get 'auth/:provider/callback', action: :callback, as: :callback # Authentication success
21
- get 'auth/failure', action: :failure, as: :failure # Authentication failure
20
+ get 'auth/openstax/callback', action: :callback, as: :callback # Authentication success
21
+ get 'auth/failure', action: :failure, as: :failure # Authentication failure
22
22
 
23
23
  get 'login', action: :new # Redirects to /auth/openstax or stub
24
24
  match 'logout', action: :destroy, # Redirects to logout path or stub
@@ -0,0 +1,5 @@
1
+ class AddIsAdministratorToOpenStaxAccountsAccounts < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_column :openstax_accounts_accounts, :is_administrator, :boolean
4
+ end
5
+ end
@@ -81,7 +81,9 @@ module OpenStax
81
81
  # On success, returns an OAuth2::Response object.
82
82
  def self.get_application_account_updates(options = {})
83
83
  limit = OpenStax::Accounts.configuration.max_user_updates_per_request
84
- request(:get, "application_users/updates#{ '?limit=' + limit.to_s if !limit.blank? }", options)
84
+ request(
85
+ :get, "application_users/updates#{ '?limit=' + limit.to_s if !limit.blank? }", options
86
+ )
85
87
  end
86
88
 
87
89
  # Marks account updates as "read".
@@ -1,5 +1,5 @@
1
1
  module OpenStax
2
2
  module Accounts
3
- VERSION = '9.5.0'
3
+ VERSION = '9.7.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,43 +1,49 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openstax_accounts
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.5.0
4
+ version: 9.7.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: 2020-08-03 00:00:00.000000000 Z
11
+ date: 2021-10-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '5.0'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '7.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - ">"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '5.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '7.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: omniauth
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
- - - ">="
37
+ - - "<"
32
38
  - !ruby/object:Gem::Version
33
- version: '0'
39
+ version: '2.0'
34
40
  type: :runtime
35
41
  prerelease: false
36
42
  version_requirements: !ruby/object:Gem::Requirement
37
43
  requirements:
38
- - - ">="
44
+ - - "<"
39
45
  - !ruby/object:Gem::Version
40
- version: '0'
46
+ version: '2.0'
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: omniauth-oauth2
43
49
  requirement: !ruby/object:Gem::Requirement
@@ -86,14 +92,14 @@ dependencies:
86
92
  requirements:
87
93
  - - ">="
88
94
  - !ruby/object:Gem::Version
89
- version: '0'
95
+ version: '1.0'
90
96
  type: :runtime
91
97
  prerelease: false
92
98
  version_requirements: !ruby/object:Gem::Requirement
93
99
  requirements:
94
100
  - - ">="
95
101
  - !ruby/object:Gem::Version
96
- version: '0'
102
+ version: '1.0'
97
103
  - !ruby/object:Gem::Dependency
98
104
  name: lev
99
105
  requirement: !ruby/object:Gem::Requirement
@@ -344,6 +350,7 @@ files:
344
350
  - db/migrate/16_add_is_kip_to_openstax_accounts_accounts.rb
345
351
  - db/migrate/17_add_school_location_to_openstax_accounts_accounts.rb
346
352
  - db/migrate/18_add_grant_tutor_access_to_openstax_accounts_accounts.rb
353
+ - db/migrate/19_add_is_administrator_to_openstax_accounts_accounts.rb
347
354
  - db/migrate/1_create_openstax_accounts_groups.rb
348
355
  - db/migrate/2_create_openstax_accounts_group_members.rb
349
356
  - db/migrate/3_create_openstax_accounts_group_owners.rb
@@ -386,7 +393,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
386
393
  - !ruby/object:Gem::Version
387
394
  version: '0'
388
395
  requirements: []
389
- rubygems_version: 3.0.3
396
+ rubygems_version: 3.2.6
390
397
  signing_key:
391
398
  specification_version: 4
392
399
  summary: Rails common code and bindings for the 'accounts' API