mno-enterprise-api 2.0.1 → 2.0.2
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 +4 -4
- data/app/views/mno_enterprise/webhook/o_auth/providers/myob.html.haml +2 -2
- data/lib/mno_enterprise/concerns/controllers/org_invites_controller.rb +5 -1
- data/lib/mno_enterprise/concerns/controllers/webhook/o_auth_controller.rb +1 -15
- data/spec/controllers/mno_enterprise/org_invites_controller_spec.rb +45 -18
- data/spec/controllers/mno_enterprise/webhook/o_auth_controller_spec.rb +0 -11
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 06a34e4066d4912616b04c98ef5d7a1edeaba36e
|
4
|
+
data.tar.gz: 29516a4df5d0ddf21261b17e78d43d97743f65bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 67aaab3ebbdb8ec01c453b96d53f6d4eae2f0e7cddf2bd5998f461c4e904fc6f760ada7d2f257412c7944a347a55ab7b7868f536e9cbb7106a88485854461053
|
7
|
+
data.tar.gz: e9b4d84536aaf56dc637caa9997128f288ef77beab1d3cd8ec710b21eef0976d41833f0c28ac5f406706dcae813566b8d5c7563bc45f18ad844559dbc4370e86
|
@@ -21,9 +21,9 @@
|
|
21
21
|
|
22
22
|
.form-group
|
23
23
|
%p My version of MYOB is:
|
24
|
-
= select_tag :version, options_for_select([["Account Right
|
24
|
+
= select_tag :version, options_for_select([["Account Right Live","account_right"],["Essentials","essentials"]], "essentials")
|
25
25
|
|
26
26
|
%hr
|
27
27
|
|
28
28
|
.form-group
|
29
|
-
%button{ class: 'btn btn-warning', type: 'submit' } Connect
|
29
|
+
%button{ class: 'btn btn-warning', type: 'submit' } Connect
|
@@ -23,7 +23,6 @@ module MnoEnterprise::Concerns::Controllers::OrgInvitesController
|
|
23
23
|
# Instance methods
|
24
24
|
#==================================================================
|
25
25
|
# GET /org_invites/1?token=HJuiofjpa45A73255a74F534FDfds
|
26
|
-
# TODO: improve integration with new frontends
|
27
26
|
def show
|
28
27
|
@current_user = current_user
|
29
28
|
@org_invite = MnoEnterprise::OrgInvite.active.where(id: params[:id], token: params[:token]).first
|
@@ -39,6 +38,11 @@ module MnoEnterprise::Concerns::Controllers::OrgInvitesController
|
|
39
38
|
message = { alert: "Unfortunately, this invite does not seem to be valid." }
|
40
39
|
end
|
41
40
|
|
41
|
+
# Add flash msg in url fragment for the new frontend
|
42
|
+
type, msg = message.first
|
43
|
+
type = (type == :alert ? :error : :success)
|
44
|
+
redirect_path = add_param_to_fragment(redirect_path.to_s, 'flash', [{msg: msg, type: type}.to_json])
|
45
|
+
|
42
46
|
redirect_to redirect_path, message
|
43
47
|
end
|
44
48
|
end
|
@@ -30,7 +30,7 @@ module MnoEnterprise::Concerns::Controllers::Webhook::OAuthController
|
|
30
30
|
# Return a hash of extra parameters that were passed along with
|
31
31
|
# the request
|
32
32
|
def extra_params
|
33
|
-
params.
|
33
|
+
params.except(:controller,:action,:id, :perform)
|
34
34
|
end
|
35
35
|
|
36
36
|
# Current user web token
|
@@ -38,20 +38,6 @@ module MnoEnterprise::Concerns::Controllers::Webhook::OAuthController
|
|
38
38
|
MnoEnterprise.jwt(user_id: current_user.uid)
|
39
39
|
end
|
40
40
|
|
41
|
-
# Append params to the fragment part of an existing url String
|
42
|
-
# add_param("/#/platform/accounts", 'foo', 'bar')
|
43
|
-
# => "/#/platform/accounts?foo=bar"
|
44
|
-
# add_param("/#/platform/dashboard/he/43?en=690", 'foo', 'bar')
|
45
|
-
# => "/#/platform/dashboard/he/43?en=690&foo=bar"
|
46
|
-
def add_param_to_fragment(url, param_name, param_value)
|
47
|
-
uri = URI(url)
|
48
|
-
fragment = URI(uri.fragment || "")
|
49
|
-
params = URI.decode_www_form(fragment.query || "") << [param_name, param_value]
|
50
|
-
fragment.query = URI.encode_www_form(params)
|
51
|
-
uri.fragment = fragment.to_s
|
52
|
-
uri.to_s
|
53
|
-
end
|
54
|
-
|
55
41
|
def error_message(error_key)
|
56
42
|
case error_key.to_sym
|
57
43
|
when :bad_relinking
|
@@ -1,29 +1,56 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
|
+
def mnoe_home_path
|
4
|
+
controller.send(:mnoe_home_path)
|
5
|
+
end
|
6
|
+
|
3
7
|
module MnoEnterprise
|
4
8
|
describe OrgInvitesController, type: :controller do
|
5
9
|
render_views
|
6
10
|
routes { MnoEnterprise::Engine.routes }
|
7
11
|
|
8
12
|
let(:user) { build(:user) }
|
9
|
-
|
10
|
-
|
11
|
-
|
13
|
+
let(:invite) { build(:org_invite, user: user) }
|
14
|
+
let(:token) { invite.token }
|
15
|
+
|
16
|
+
before do
|
17
|
+
api_stub_for(get: "/users/#{user.id}", response: from_api(user))
|
18
|
+
|
19
|
+
# Invite stubs
|
20
|
+
api_stub_for(get: "/org_invites?filter[id]=#{invite.id}&filter[status]=pending&filter[token]=#{token}", response: from_api([invite]))
|
21
|
+
api_stub_for(get: "/org_invites?filter[id]=#{invite.id}&filter[status]=pending&filter[token]", response: from_api([]))
|
22
|
+
api_stub_for(put: "/org_invites/#{invite.id}", response: from_api(invite.tap { |x| x.status = 'accepted' }))
|
23
|
+
end
|
24
|
+
|
12
25
|
describe "GET #show" do
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
26
|
+
subject { get :show, id: invite.id, token: token}
|
27
|
+
|
28
|
+
let(:success_fragment) { "#/?dhbRefId=#{invite.organization.id}&#{URI.encode_www_form([['flash', {msg: "You are now part of #{invite.organization.name}", type: :success}.to_json]])}" }
|
29
|
+
let(:expired_fragment) { "#?#{URI.encode_www_form([['flash', {msg: "It looks like this invite has expired. Please ask your company administrator to resend the invite.", type: :error}.to_json]])}" }
|
30
|
+
let(:invalid_fragment) { "#?#{URI.encode_www_form([['flash', {msg: "Unfortunately, this invite does not seem to be valid.", type: :error}.to_json]])}" }
|
31
|
+
|
32
|
+
context 'when not signed in' do
|
33
|
+
it { expect(subject).not_to be_success }
|
34
|
+
it { expect(subject).to redirect_to(new_user_session_path) }
|
35
|
+
end
|
36
|
+
|
37
|
+
context 'when signed in' do
|
38
|
+
before { sign_in user }
|
39
|
+
before { subject }
|
40
|
+
|
41
|
+
it { expect(response).to redirect_to(mnoe_home_path + success_fragment) }
|
42
|
+
it { expect(assigns(:org_invite)).to eq(invite) }
|
43
|
+
|
44
|
+
context 'with expired invited' do
|
45
|
+
let(:invite) { build(:org_invite, :expired, user: user) }
|
46
|
+
it { expect(response).to redirect_to(mnoe_home_path + expired_fragment) }
|
47
|
+
end
|
48
|
+
|
49
|
+
context 'without token' do
|
50
|
+
let(:token) { nil }
|
51
|
+
it { expect(response).to redirect_to(mnoe_home_path + invalid_fragment) }
|
52
|
+
end
|
53
|
+
end
|
25
54
|
end
|
26
|
-
|
27
55
|
end
|
28
|
-
|
29
|
-
end
|
56
|
+
end
|
@@ -89,16 +89,5 @@ module MnoEnterprise
|
|
89
89
|
|
90
90
|
it { subject; expect(response).to redirect_to(redirect_url) }
|
91
91
|
end
|
92
|
-
|
93
|
-
describe '#add_param_to_fragment' do
|
94
|
-
let(:controller) { described_class.new }
|
95
|
-
|
96
|
-
it { expect(subject.send(:add_param_to_fragment, '/#/platform/accounts', 'foo', 'bar')).to eq('/#/platform/accounts?foo=bar') }
|
97
|
-
it { expect(subject.send(:add_param_to_fragment, '/', 'foo', 'bar')).to eq('/#?foo=bar') }
|
98
|
-
it { expect(subject.send(:add_param_to_fragment, '/#/platform/dashboard/he/43?en=690', 'foo', 'bar')).to eq('/#/platform/dashboard/he/43?en=690&foo=bar') }
|
99
|
-
it { expect(subject.send(:add_param_to_fragment, '/#/platform/dashboard/he/43?en=690', 'foo', [{msg: 'yolo'}])).to eq('/#/platform/dashboard/he/43?en=690&foo=%7B%3Amsg%3D%3E%22yolo%22%7D') }
|
100
|
-
|
101
|
-
end
|
102
|
-
|
103
92
|
end
|
104
93
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mno-enterprise-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arnaud Lachaume
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-05-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: mno-enterprise-core
|
@@ -17,14 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - '='
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 2.0.
|
20
|
+
version: 2.0.2
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - '='
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 2.0.
|
27
|
+
version: 2.0.2
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: jbuilder
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -324,7 +324,7 @@ files:
|
|
324
324
|
- spec/spec_helper.rb
|
325
325
|
homepage: https://maestrano.com
|
326
326
|
licenses:
|
327
|
-
-
|
327
|
+
- Apache-2.0
|
328
328
|
metadata: {}
|
329
329
|
post_install_message:
|
330
330
|
rdoc_options: []
|