mno-enterprise-api 3.0.1 → 3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0f9a59af5d82066b5218e41fded2d2d15415c3f2
4
- data.tar.gz: fd7515bcc91ce757de834cc3456c86a52f4a81aa
3
+ metadata.gz: 2d433295f9c87eef1d54931eb24268c0d884dd7a
4
+ data.tar.gz: 4153fae7373b8991c6cd74d2e77a8666c06c5de3
5
5
  SHA512:
6
- metadata.gz: 0426722e7384f3fd85058066d2ac2ab2eaafe86127d8f76844f4c1c2a152e776927f91667857929eea4399a7c22ea89bab48d2c1ab40d50159ed0f50b7563289
7
- data.tar.gz: b834cc97dc3bd7253171f58dc36cf7d62b34584aa071388ce415b8f46da3085a4c2a5d72b0812e3b061ffc73d5aa730e3b06adfa9b150e7471c92721f611daee
6
+ metadata.gz: 8063295c92c5ec525ba18177120644ec0daf04609716a697c8dc63c9540018801adb9f18f3c171f357c503d866d4a9cedd297b77b5a63873535d1ff2f2696cd2
7
+ data.tar.gz: 98a9789331a4d92dffcbad5737f1a24e67413d3873093ac8ed4578902ddcab8f5753cf8e029179384c21699e8a524ac1ce30b53362cfff5021bcee0baac95db0
@@ -21,7 +21,7 @@
21
21
 
22
22
  .form-group
23
23
  %p= t('.my_version_is')
24
- = select_tag :version, options_for_select([["Account Right (Desktop)","account_right"],["Essentials (Cloud)","essentials"]], "essentials")
24
+ = select_tag :version, options_for_select([["Account Right Live","account_right"],["Essentials","essentials"]], "essentials")
25
25
 
26
26
  %hr
27
27
 
@@ -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.reject { |k,v| [:controller,:action,:id, :perform].include?(k.to_sym) }
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
- #before { api_stub_for(get: "/users/#{user.id}", response: from_api(user)) }
10
- #before { api_stub_for(put: "/users/#{user.id}", response: from_api(user)) }
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
- before { sign_in user }
14
- subject { get :show }
15
-
16
- # it_behaves_like "a navigatable protected user action"
17
- #
18
- # it "assigns the right meta information" do
19
- # get :myspace
20
- # meta = {}
21
- # meta[:title] = "Dashboard"
22
- # meta[:description] = "Dashboard"
23
- # assigns(:meta).should == meta
24
- # end
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: 3.0.1
4
+ version: 3.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-04-22 00:00:00.000000000 Z
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: 3.0.1
20
+ version: 3.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: 3.0.1
27
+ version: 3.0.2
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: jbuilder
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -318,7 +318,7 @@ files:
318
318
  - spec/spec_helper.rb
319
319
  homepage: https://maestrano.com
320
320
  licenses:
321
- - Maestrano Enterprise License V1
321
+ - Apache-2.0
322
322
  metadata: {}
323
323
  post_install_message:
324
324
  rdoc_options: []