mno-enterprise-core 3.1.4 → 3.2.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 +4 -4
- data/app/assets/images/mno_enterprise/logo-intuit.png +0 -0
- data/app/assets/images/mno_enterprise/main-logo.png +0 -0
- data/app/assets/stylesheets/mno_enterprise/mail.css +1 -4
- data/app/controllers/mno_enterprise/application_controller.rb +1 -1
- data/app/helpers/mno_enterprise/application_helper.rb +7 -7
- data/app/models/mno_enterprise/app.rb +12 -3
- data/app/models/mno_enterprise/app_answer.rb +13 -0
- data/app/models/mno_enterprise/app_comment.rb +10 -0
- data/app/models/mno_enterprise/app_feedback.rb +7 -0
- data/app/models/mno_enterprise/app_question.rb +9 -0
- data/app/models/mno_enterprise/app_review.rb +7 -0
- data/app/models/mno_enterprise/base_resource.rb +6 -1
- data/app/models/mno_enterprise/identity.rb +24 -0
- data/app/models/mno_enterprise/impac/alert.rb +10 -0
- data/app/models/mno_enterprise/impac/dashboard.rb +10 -11
- data/app/models/mno_enterprise/impac/kpi.rb +4 -2
- data/app/models/mno_enterprise/impac/widget.rb +4 -1
- data/app/models/mno_enterprise/team.rb +1 -33
- data/app/models/mno_enterprise/user.rb +109 -28
- data/app/views/system_notifications/email-change.html.erb +27 -0
- data/app/views/system_notifications/email-change.text.erb +10 -0
- data/app/views/system_notifications/password-change.html.erb +25 -0
- data/app/views/system_notifications/password-change.text.erb +7 -0
- data/app/views/system_notifications/reconfirmation-instructions.html.erb +7 -5
- data/app/views/system_notifications/reconfirmation-instructions.text.erb +3 -2
- data/config/initializers/config.rb +5 -0
- data/config/locales/models/user/en.yml +5 -0
- data/config/locales/templates/components/en.yml +9 -0
- data/config/locales/templates/dashboard/en.yml +14 -0
- data/config/locales/templates/dashboard/marketplace/en.yml +111 -8
- data/config/locales/templates/dashboard/organization/en.yml +1 -0
- data/config/locales/templates/impac/dock/en.yml +28 -0
- data/config/locales/views/auth/shared/en.yml +1 -2
- data/config/locales/views/webhook/o_auth/providers/en.yml +11 -6
- data/lib/devise/hooks/lockable.rb +13 -0
- data/lib/devise/models/remote_authenticatable.rb +31 -5
- data/lib/generators/mno_enterprise/install/install_generator.rb +7 -0
- data/lib/generators/mno_enterprise/install/templates/Procfile +1 -1
- data/lib/generators/mno_enterprise/install/templates/Procfile.dev +1 -1
- data/lib/generators/mno_enterprise/install/templates/config/application.yml +17 -0
- data/lib/generators/mno_enterprise/install/templates/config/initializers/mno_enterprise.rb +8 -3
- data/lib/generators/mno_enterprise/install/templates/config/newrelic.yml +46 -0
- data/lib/generators/mno_enterprise/install/templates/config/puma.rb +56 -0
- data/lib/generators/mno_enterprise/install/templates/config/settings/production.yml +1 -1
- data/lib/generators/mno_enterprise/install/templates/config/settings/uat.yml +1 -1
- data/lib/generators/mno_enterprise/install/templates/config/settings.yml +21 -0
- data/lib/generators/mno_enterprise/install/templates/stylesheets/variables.less +3 -0
- data/lib/her_extension/model/associations/association_proxy.rb +10 -6
- data/lib/mno_enterprise/concerns/controllers/auth/confirmations_controller.rb +1 -1
- data/lib/mno_enterprise/concerns/controllers/auth/omniauth_callbacks_controller.rb +203 -0
- data/lib/mno_enterprise/concerns/models/ability.rb +28 -0
- data/lib/mno_enterprise/concerns/models/app_instance.rb +22 -4
- data/lib/mno_enterprise/concerns/models/intercom_user.rb +28 -0
- data/lib/mno_enterprise/concerns/models/organization.rb +14 -1
- data/lib/mno_enterprise/concerns/models/team.rb +67 -0
- data/lib/mno_enterprise/core.rb +22 -3
- data/lib/mno_enterprise/impac_client.rb +19 -0
- data/lib/mno_enterprise/mail_adapters/mandrill_adapter.rb +4 -1
- data/lib/mno_enterprise/testing_support/factories/app_review.rb +51 -0
- data/lib/mno_enterprise/testing_support/factories/apps.rb +12 -10
- data/lib/mno_enterprise/testing_support/factories/identity.rb +9 -0
- data/lib/mno_enterprise/testing_support/factories/impac/alerts.rb +18 -0
- data/lib/mno_enterprise/testing_support/factories/impac/kpis.rb +5 -9
- data/lib/mno_enterprise/testing_support/factories/users.rb +4 -0
- data/lib/mno_enterprise/testing_support/jpi_v1_test_helper.rb +39 -0
- data/lib/mno_enterprise/testing_support/organizations_shared_helpers.rb +2 -1
- data/lib/mno_enterprise/testing_support/shared_examples/jpi_v1_admin.rb +38 -0
- data/lib/mno_enterprise/version.rb +1 -1
- data/spec/lib/devise/model/remote_authenticable_spec.rb +76 -0
- data/spec/lib/mno_enterprise/impac_client_spec.rb +31 -0
- data/spec/mno_enterprise_spec.rb +7 -8
- data/spec/models/mno_enterprise/app_spec.rb +1 -1
- data/spec/models/mno_enterprise/identity_spec.rb +39 -0
- data/spec/models/mno_enterprise/organization_spec.rb +19 -2
- data/spec/models/mno_enterprise/user_spec.rb +238 -0
- metadata +86 -22
@@ -10,16 +10,18 @@
|
|
10
10
|
</p>
|
11
11
|
|
12
12
|
<p>Hi <%= @info[:first_name] %></p>
|
13
|
-
|
14
|
-
<p>You have asked to change your email address in the platform. Please confirm this new email address by clicking on the following link</p>
|
15
|
-
|
13
|
+
|
14
|
+
<p>You have asked to change your email address in the platform. Please confirm this new email address by clicking on the following link</p>
|
15
|
+
|
16
16
|
<a href="<%= @info[:confirmation_link] %>">Confirm my new email address</a>
|
17
|
-
|
17
|
+
|
18
|
+
<p>If you did not ask for a modification just ignore this email.</p>
|
19
|
+
|
18
20
|
<p>
|
19
21
|
Regards,<br/>
|
20
22
|
The Marketplace team
|
21
23
|
</p>
|
22
|
-
|
24
|
+
|
23
25
|
<p class="footer">
|
24
26
|
<%= @info[:company] %>
|
25
27
|
</p>
|
@@ -2,9 +2,10 @@ Hi <%= @info[:first_name] %>
|
|
2
2
|
=================================================================
|
3
3
|
|
4
4
|
You have asked to change your email address in the platform. Please confirm this new email address by clicking on the following link
|
5
|
-
|
5
|
+
|
6
6
|
<%= @info[:confirmation_link] %>
|
7
|
-
|
7
|
+
|
8
|
+
If you did not ask for a modification just ignore this email.
|
8
9
|
|
9
10
|
Regards,
|
10
11
|
The Marketplace team
|
@@ -1,3 +1,8 @@
|
|
1
1
|
Config.setup do |config|
|
2
2
|
config.const_name = "Settings"
|
3
3
|
end
|
4
|
+
|
5
|
+
# Use the template as default settings
|
6
|
+
default = File.expand_path("../../../lib/generators/mno_enterprise/install/templates/config/settings.yml", __FILE__)
|
7
|
+
Settings.prepend_source!(default)
|
8
|
+
Settings.reload!
|
@@ -41,5 +41,10 @@ en:
|
|
41
41
|
updated_at: Updated at
|
42
42
|
website: Website
|
43
43
|
errors:
|
44
|
+
models:
|
45
|
+
mno_enterprise/user:
|
46
|
+
attributes:
|
47
|
+
email:
|
48
|
+
taken: "has already been taken"
|
44
49
|
mno_enterprise/user:
|
45
50
|
password_weak: "Password is not strong enough. Try mixing letters, numbers and cases"
|
@@ -19,3 +19,12 @@ en:
|
|
19
19
|
app_not_found: Application not found
|
20
20
|
app_not_managed_by_us: The app you requested does not seem to be managed by us.
|
21
21
|
did_you_type_the_right_url: Are you sure you typed the right url?
|
22
|
+
|
23
|
+
app_install_btn:
|
24
|
+
conflicting_app: "You cannot install this App as it is incompatible with:"
|
25
|
+
start_app: "Start Now!"
|
26
|
+
launch_app: "Launch App"
|
27
|
+
connect_app: "Connect App"
|
28
|
+
success_notification_title: "{{name}} has been added to your account"
|
29
|
+
success_launch_notification_body: "To start using {{name}}, click on the {{name}} icon then click on \"Launch\"."
|
30
|
+
success_connect_notification_body: "To start using {{name}}, click on the {{name}} icon then click on \"Connect\"."
|
@@ -19,6 +19,20 @@ en:
|
|
19
19
|
passwd_form_cancel: Cancel
|
20
20
|
settings: Settings
|
21
21
|
|
22
|
+
developer: Developer
|
23
|
+
are_you_developer: Are you a Developer looking to contribute to the Maestrano platform?
|
24
|
+
register: Register!
|
25
|
+
api_key: API Key
|
26
|
+
secret_key: Secret Key
|
27
|
+
show: Show
|
28
|
+
hide: Hide
|
29
|
+
name: Name
|
30
|
+
uid: UID
|
31
|
+
view_developer_docs: View our developer documentation
|
32
|
+
here: here
|
33
|
+
conceal: Conceal
|
34
|
+
organizations: Organizations
|
35
|
+
|
22
36
|
app_deletion:
|
23
37
|
title: Confirm app deletion
|
24
38
|
instructions: In order to delete your app, please enter the following statement in the box below.
|
@@ -4,13 +4,116 @@ en:
|
|
4
4
|
dashboard:
|
5
5
|
marketplace:
|
6
6
|
index:
|
7
|
-
title: Marketplace
|
8
|
-
select_all: All
|
9
|
-
search: Search
|
7
|
+
title: "Marketplace"
|
8
|
+
select_all: "All"
|
9
|
+
search: "Search"
|
10
|
+
compare: "Compare application"
|
11
|
+
select_apps: "Compare up to 4 applications"
|
12
|
+
toastr:
|
13
|
+
error: "You can only compare up to 4 applications."
|
14
|
+
cancel: "Cancel"
|
15
|
+
compare_apps: "Compare"
|
10
16
|
|
11
17
|
show:
|
12
|
-
back: Back
|
13
|
-
start_app: Start Now!
|
14
|
-
|
15
|
-
|
16
|
-
|
18
|
+
back: "Back"
|
19
|
+
start_app: "Start Now!"
|
20
|
+
launch_app: "Launch app"
|
21
|
+
connect_app: "Connect App"
|
22
|
+
tag_responsive: "Responsive"
|
23
|
+
tag_star: "Star!™ Tutorials"
|
24
|
+
tag_connec: "Connec!™ Ready"
|
25
|
+
conflicting_app: "You cannot install this app as it is incompatible with:"
|
26
|
+
success_notification_title: "{{name}} has been added to your account"
|
27
|
+
success_launch_notification_body: "To start using {{name}}, click on the {{name}} icon then click on \"Launch\"."
|
28
|
+
success_connect_notification_body: "To start using {{name}}, click on the {{name}} icon then click on \"Connect\"."
|
29
|
+
no_reviews: "No reviews on"
|
30
|
+
write_review: "Write a review"
|
31
|
+
number_of_reviews: "Reviews per page:"
|
32
|
+
success_toastr: "Your review has been taken into account!"
|
33
|
+
error_toastr: "An error occurred while saving your review."
|
34
|
+
from: "from"
|
35
|
+
"on": "on"
|
36
|
+
platform_admin: "Platform moderator"
|
37
|
+
edited_by_user: "Edited by User"
|
38
|
+
edited_by_user_tooltip: "Show edit history"
|
39
|
+
edited_by_admin: "Edited by Admin"
|
40
|
+
just_now: "Just Now"
|
41
|
+
company_feedback: "Company feedback"
|
42
|
+
review_title: "Review"
|
43
|
+
no_app_no_review: "You need to have the app running in order to give your feedback."
|
44
|
+
tell_others: "Tell others what you think about this application (optional)"
|
45
|
+
cancel: "Cancel"
|
46
|
+
submit: "Submit"
|
47
|
+
comment_title: "Comment this feedback:"
|
48
|
+
comment_placeholder: "Enter your comment here..."
|
49
|
+
question_title: "Question"
|
50
|
+
question_search: "Search..."
|
51
|
+
question_ask: "Ask a question"
|
52
|
+
question_ask_placeholder: "Enter your question here..."
|
53
|
+
no_review: "There are no reviews of {{name}}."
|
54
|
+
answers: "Answers"
|
55
|
+
answer_q: "Answer this Question"
|
56
|
+
answer_placeholder: "Enter your answer to this question here..."
|
57
|
+
delete: "Delete"
|
58
|
+
delete_q: "Delete this Question"
|
59
|
+
edit: "Edit"
|
60
|
+
edit_review: "Edit your review"
|
61
|
+
edit_answer: "Edit your answer"
|
62
|
+
edit_question: "Edit your question"
|
63
|
+
edit_comment: "Edit your comment"
|
64
|
+
edit_q: "Edit this Question"
|
65
|
+
filter: "Filter by:"
|
66
|
+
filter_rating_desc: "rating high to low"
|
67
|
+
filter_rating_ask: "rating low to high"
|
68
|
+
filter_date_desc: "date high to low"
|
69
|
+
filter_date_ask: "date low to high"
|
70
|
+
success_toastr_2: "Success."
|
71
|
+
success_toastr_answer: "Thank you for answering this question!"
|
72
|
+
success_toastr_question: "Your question has been successfully posted!"
|
73
|
+
error_toastr_answer: "An error occurred while saving your answer"
|
74
|
+
error_toastr_question: "An error occurred while saving your question"
|
75
|
+
review:
|
76
|
+
delete_modal_header: "Delete a review"
|
77
|
+
delete_modal_body: "Do you really want to delete your review?"
|
78
|
+
delete_modal_cancel: "Cancel"
|
79
|
+
delete_modal_delete: "Delete"
|
80
|
+
question:
|
81
|
+
delete_modal_header: "Delete a question"
|
82
|
+
delete_modal_body: "Do you really want to delete your question?"
|
83
|
+
delete_modal_cancel: "Cancel"
|
84
|
+
delete_modal_delete: "Delete"
|
85
|
+
no_question: "There are no questions on {{name}}."
|
86
|
+
comment:
|
87
|
+
delete_modal_header: "Delete a comment"
|
88
|
+
delete_modal_body: "Do you really want to delete your comment?"
|
89
|
+
delete_modal_cancel: "Cancel"
|
90
|
+
delete_modal_delete: "Delete"
|
91
|
+
answer:
|
92
|
+
delete_modal_header: "Delete an answer"
|
93
|
+
delete_modal_body: "Do you really want to delete your answer?"
|
94
|
+
delete_modal_cancel: "Cancel"
|
95
|
+
delete_modal_delete: "Delete"
|
96
|
+
edited: "Edited"
|
97
|
+
edited_tooltip: "Show edit history"
|
98
|
+
modals:
|
99
|
+
history:
|
100
|
+
title: "Edit History"
|
101
|
+
close: "Close"
|
102
|
+
|
103
|
+
app_selection:
|
104
|
+
next: "Next"
|
105
|
+
cancel: "Cancel"
|
106
|
+
select_orga: "Select an organization"
|
107
|
+
no_orga_authorized: "Invalid purchase"
|
108
|
+
unauthorized_to_add_app: "Unfortunately you do not have permission to purchase products for this organization. Please select another organization:"
|
109
|
+
|
110
|
+
compare:
|
111
|
+
title: "Comparison"
|
112
|
+
application_provider: "Application Provider"
|
113
|
+
category: "Category"
|
114
|
+
key_benefits: "Key benefits"
|
115
|
+
short_description: "Short description"
|
116
|
+
rating: "Rating"
|
117
|
+
companies_number: "Number of companies using the application"
|
118
|
+
pricing: "Pricing"
|
119
|
+
pricing_not_available: "pricing information not available"
|
@@ -0,0 +1,28 @@
|
|
1
|
+
en:
|
2
|
+
mno_enterprise:
|
3
|
+
templates:
|
4
|
+
impac:
|
5
|
+
dock:
|
6
|
+
launch: Launch
|
7
|
+
connect: Connect
|
8
|
+
settings: Settings
|
9
|
+
add_more_apps: Add more apps
|
10
|
+
cancel: Cancel
|
11
|
+
settings:
|
12
|
+
settings: Settings
|
13
|
+
status: Status
|
14
|
+
app_name: Name
|
15
|
+
access_add-on_settings: Access add-on Settings
|
16
|
+
manual_data_sharing: Data sharing
|
17
|
+
manual_data_sync: Manual Data Sync
|
18
|
+
disconnect_link: Disconnect Link
|
19
|
+
delete: Delete
|
20
|
+
confirm_app_deletion: Confirm app deletion
|
21
|
+
please_note_this_app: Please note this app is on a monthly plan. Your billing for this app will be calculated pro rata.
|
22
|
+
delete_instructions: In order to delete your app, please enter the following statement in the box below.
|
23
|
+
cancel: Cancel
|
24
|
+
developer_details: developer details
|
25
|
+
linked_to: Linked to
|
26
|
+
organization_id: Organization id
|
27
|
+
group_id: Group id (uid)
|
28
|
+
|
@@ -3,13 +3,18 @@ en:
|
|
3
3
|
webhook:
|
4
4
|
o_auth:
|
5
5
|
providers:
|
6
|
+
cancel: "Cancel"
|
7
|
+
|
6
8
|
myob:
|
7
|
-
which_version_used: Which version of MYOB do you use?
|
9
|
+
which_version_used: "Which version of MYOB do you use?"
|
8
10
|
my_version_is: "My version of MYOB is:"
|
9
|
-
connect: Connect
|
11
|
+
connect: "Connect"
|
12
|
+
connect_to: "Connect to {{appname}}"
|
10
13
|
|
11
14
|
xero:
|
12
|
-
how_do_you_want_to_connect: How do you want us to connect your Xero account?
|
13
|
-
which_extra_modules: Do you want to connect any of the following extra modules?
|
14
|
-
|
15
|
-
|
15
|
+
how_do_you_want_to_connect: "How do you want us to connect your Xero account?"
|
16
|
+
which_extra_modules: "Do you want to connect any of the following extra modules?"
|
17
|
+
payroll: "Payroll"
|
18
|
+
which_country_for_the_account: "What is the country associated with your Xero account?"
|
19
|
+
connect: "Connect"
|
20
|
+
connect_to: "Connect to {{appname}}"
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# using current version https://github.com/plataformatec/devise/blob/e841c4c5ef826b6838b269d259170bb4fbca82f1/lib/devise/hooks/lockable.rb
|
2
|
+
# as 3-stable version https://github.com/plataformatec/devise/blob/3-stable/lib/devise/hooks/lockable.rb
|
3
|
+
# is using update_attribute which is not supported by Her
|
4
|
+
# After each sign in, if resource responds to failed_attempts, sets it to 0
|
5
|
+
# This is only triggered when the user is explicitly set (with set_user)
|
6
|
+
Warden::Manager.after_set_user except: :fetch do |record, warden, options|
|
7
|
+
if record.respond_to?(:failed_attempts) && warden.authenticated?(options[:scope])
|
8
|
+
unless record.failed_attempts.to_i.zero?
|
9
|
+
record.failed_attempts = 0
|
10
|
+
record.save(validate: false)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -2,7 +2,7 @@ module Devise
|
|
2
2
|
module Models
|
3
3
|
module RemoteAuthenticatable
|
4
4
|
extend ActiveSupport::Concern
|
5
|
-
|
5
|
+
|
6
6
|
#
|
7
7
|
# Here you do the request to the external webservice
|
8
8
|
#
|
@@ -14,12 +14,23 @@ module Devise
|
|
14
14
|
def remote_authentication(authentication_hash)
|
15
15
|
self.class.authenticate(authentication_hash) # call MnoEnterprise::User.authenticate
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
|
+
included do
|
19
|
+
before_update :track_password_changed
|
20
|
+
after_update :send_password_change_notification, if: :send_password_change_notification?
|
21
|
+
end
|
22
|
+
|
23
|
+
def send_password_change_notification
|
24
|
+
send_devise_notification(:password_change)
|
25
|
+
end
|
26
|
+
|
18
27
|
####################################
|
19
28
|
# Overriden methods from Devise::Models::Authenticatable
|
20
29
|
####################################
|
21
30
|
module ClassMethods
|
22
|
-
|
31
|
+
# Flag to enable password change notification
|
32
|
+
Devise::Models.config(self, :send_password_change_notification)
|
33
|
+
|
23
34
|
# This method is called from:
|
24
35
|
# Warden::SessionSerializer in devise
|
25
36
|
#
|
@@ -33,7 +44,7 @@ module Devise
|
|
33
44
|
end.tap {|r| r && r.clear_association_cache}
|
34
45
|
record if record && record.authenticatable_salt == salt
|
35
46
|
end
|
36
|
-
|
47
|
+
|
37
48
|
# Here you have to return and array with the data of your resource
|
38
49
|
# that you want to serialize into the session
|
39
50
|
#
|
@@ -41,8 +52,23 @@ module Devise
|
|
41
52
|
def serialize_into_session(record)
|
42
53
|
[record.to_key, record.authenticatable_salt]
|
43
54
|
end
|
44
|
-
|
55
|
+
|
45
56
|
end
|
57
|
+
|
58
|
+
protected
|
59
|
+
|
60
|
+
# We want to send the notification once the password has changed but
|
61
|
+
# we won't have access to dirty attributes.
|
62
|
+
# Flag change before the model is saved.
|
63
|
+
# Do not send a notification at confirmation
|
64
|
+
def track_password_changed
|
65
|
+
@password_changed = password_changed? && confirmed_at_was.present?
|
66
|
+
true # before callback needs to return true to continue
|
67
|
+
end
|
68
|
+
|
69
|
+
def send_password_change_notification?
|
70
|
+
self.class.send_password_change_notification && @password_changed
|
71
|
+
end
|
46
72
|
end
|
47
73
|
end
|
48
74
|
end
|
@@ -12,10 +12,15 @@ module MnoEnterprise
|
|
12
12
|
class_option :skip_admin, type: :boolean, default: false, desc: 'Skip admin installation'
|
13
13
|
|
14
14
|
def copy_initializer
|
15
|
+
# Foreman config
|
15
16
|
template "Procfile"
|
16
17
|
template "Procfile.dev"
|
18
|
+
template ".foreman"
|
19
|
+
template ".healthcheck"
|
20
|
+
|
17
21
|
template "config/initializers/mno_enterprise.rb"
|
18
22
|
template "config/mno_enterprise_styleguide.yml"
|
23
|
+
template "config/puma.rb", skip: true # Copied from Rails 5 - skip if already existing
|
19
24
|
|
20
25
|
# Settings
|
21
26
|
template "config/settings.yml", "config/settings.yml"
|
@@ -24,6 +29,8 @@ module MnoEnterprise
|
|
24
29
|
|
25
30
|
template "config/application.yml", "config/application.yml"
|
26
31
|
template "config/application.yml", "config/application.sample.yml"
|
32
|
+
|
33
|
+
template "config/newrelic.yml", "config/newrelic.yml"
|
27
34
|
end
|
28
35
|
|
29
36
|
def setup_assets
|
@@ -1 +1 @@
|
|
1
|
-
web: bundle exec puma
|
1
|
+
web: bundle exec puma
|
@@ -1,2 +1,2 @@
|
|
1
|
-
web: bundle exec puma
|
1
|
+
web: bundle exec puma
|
2
2
|
gulp: cd ./tmp/build/frontend && node_modules/.bin/gulp serve
|
@@ -13,3 +13,20 @@ SECRET_KEY_BASE: <%= SecureRandom.hex(64) %>
|
|
13
13
|
|
14
14
|
# Google Tag Manager
|
15
15
|
google_tag_container: GTM-TH3MLB
|
16
|
+
|
17
|
+
# Intercom - uncomment and add a valid intercom_id to enable
|
18
|
+
# INTERCOM_APP_ID: intercom_app_id
|
19
|
+
# INTERCOM_API_SECRET: intercom_api_secret
|
20
|
+
# INTERCOM_API_KEY: intercom_api_key
|
21
|
+
|
22
|
+
# OmniAuth - uncomment and add a valid values to enable
|
23
|
+
|
24
|
+
# OAUTH_LINKEDIN_KEY: changeme
|
25
|
+
# OAUTH_LINKEDIN_SECRET: changeme
|
26
|
+
|
27
|
+
# OAUTH_GOOGLE_KEY: changeme
|
28
|
+
# OAUTH_GOOGLE_SECRET: changeme
|
29
|
+
|
30
|
+
# OAUTH_FACEBOOK_KEY: changeme
|
31
|
+
# OAUTH_FACEBOOK_SECRET: changeme
|
32
|
+
|
@@ -3,7 +3,7 @@ MnoEnterprise.configure do |config|
|
|
3
3
|
# General Configuration
|
4
4
|
#===============================================
|
5
5
|
# Name of your company/application
|
6
|
-
config.app_name =
|
6
|
+
config.app_name = 'My Company'
|
7
7
|
|
8
8
|
# Fallback default country.
|
9
9
|
# Used as default in geolocalised fields (e.g.: country, phone number)
|
@@ -63,7 +63,7 @@ MnoEnterprise.configure do |config|
|
|
63
63
|
# I18n - Controls:
|
64
64
|
# - Routing in development
|
65
65
|
# - Filter and locale management in controllers
|
66
|
-
config.i18n_enabled =
|
66
|
+
config.i18n_enabled = false
|
67
67
|
|
68
68
|
#===============================================
|
69
69
|
# Third Party Plugins
|
@@ -71,6 +71,12 @@ MnoEnterprise.configure do |config|
|
|
71
71
|
# Google Tag Manager
|
72
72
|
config.google_tag_container = ENV['google_tag_container']
|
73
73
|
|
74
|
+
# Intercom (both API Keys and Personal token are supported)
|
75
|
+
config.intercom_token = ENV['INTERCOM_TOKEN']
|
76
|
+
config.intercom_app_id = ENV['INTERCOM_APP_ID']
|
77
|
+
config.intercom_api_key = ENV['INTERCOM_API_KEY']
|
78
|
+
config.intercom_api_secret = ENV['INTERCOM_API_SECRET']
|
79
|
+
|
74
80
|
#===============================================
|
75
81
|
# API Configuration
|
76
82
|
#===============================================
|
@@ -189,5 +195,4 @@ MnoEnterprise.configure do |config|
|
|
189
195
|
# 'sales/forecast',
|
190
196
|
# 'sales/performance'
|
191
197
|
# ]
|
192
|
-
|
193
198
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
#
|
2
|
+
# This file configures the New Relic Agent. New Relic monitors Ruby, Java,
|
3
|
+
# .NET, PHP, Python and Node applications with deep visibility and low
|
4
|
+
# overhead. For more information, visit www.newrelic.com.
|
5
|
+
#
|
6
|
+
# For full documentation of agent configuration options, please refer to
|
7
|
+
# https://docs.newrelic.com/docs/agents/ruby-agent/installation-configuration/ruby-agent-configuration
|
8
|
+
|
9
|
+
common: &default_settings
|
10
|
+
# Required license key associated with your New Relic account.
|
11
|
+
license_key: <%%= ENV['NEWRELIC_LICENSE_KEY'] %>
|
12
|
+
|
13
|
+
# Your application name. Renaming here affects where data displays in New
|
14
|
+
# Relic. For more details, see https://docs.newrelic.com/docs/apm/new-relic-apm/maintenance/renaming-applications
|
15
|
+
app_name: <%= Rails.application.class.parent_name %>
|
16
|
+
|
17
|
+
# Logging level for log/newrelic_agent.log
|
18
|
+
log_level: info
|
19
|
+
|
20
|
+
# Ignore ping logging
|
21
|
+
rules:
|
22
|
+
ignore_url_regexes: ["^/mnoe/ping", "^/mnoe/health_check", "^/mnoe/version"]
|
23
|
+
|
24
|
+
# Environment-specific settings are in this section.
|
25
|
+
# RAILS_ENV or RACK_ENV (as appropriate) is used to determine the environment.
|
26
|
+
# If your application has other named environments, configure them here.
|
27
|
+
development:
|
28
|
+
<<: *default_settings
|
29
|
+
app_name: <%= Rails.application.class.parent_name %> (Development)
|
30
|
+
|
31
|
+
# NOTE: There is substantial overhead when running in developer mode.
|
32
|
+
# Do not use for production or load testing.
|
33
|
+
developer_mode: false
|
34
|
+
monitor_mode: false
|
35
|
+
|
36
|
+
test:
|
37
|
+
<<: *default_settings
|
38
|
+
# It doesn't make sense to report to New Relic from automated test runs.
|
39
|
+
monitor_mode: false
|
40
|
+
|
41
|
+
uat:
|
42
|
+
<<: *default_settings
|
43
|
+
app_name: <%= Rails.application.class.parent_name %> (UAT)
|
44
|
+
|
45
|
+
production:
|
46
|
+
<<: *default_settings
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# Puma can serve each request in a thread from an internal thread pool.
|
2
|
+
# The `threads` method setting takes two numbers: a minimum and maximum.
|
3
|
+
# Any libraries that use thread pools should be configured to match
|
4
|
+
# the maximum value specified for Puma. Default is set to 5 threads for minimum
|
5
|
+
# and maximum; this matches the default thread size of Active Record.
|
6
|
+
#
|
7
|
+
threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
|
8
|
+
threads threads_count, threads_count
|
9
|
+
|
10
|
+
# Specifies the `port` that Puma will listen on to receive requests; default is 3000.
|
11
|
+
#
|
12
|
+
port ENV.fetch("PORT") { 3000 }
|
13
|
+
|
14
|
+
# Specifies the `environment` that Puma will run in.
|
15
|
+
#
|
16
|
+
environment ENV.fetch("RAILS_ENV") { "development" }
|
17
|
+
|
18
|
+
# Specifies the number of `workers` to boot in clustered mode.
|
19
|
+
# Workers are forked webserver processes. If using threads and workers together
|
20
|
+
# the concurrency of the application would be max `threads` * `workers`.
|
21
|
+
# Workers do not work on JRuby or Windows (both of which do not support
|
22
|
+
# processes).
|
23
|
+
#
|
24
|
+
# workers ENV.fetch("WEB_CONCURRENCY") { 2 }
|
25
|
+
|
26
|
+
# Use the `preload_app!` method when specifying a `workers` number.
|
27
|
+
# This directive tells Puma to first boot the application and load code
|
28
|
+
# before forking the application. This takes advantage of Copy On Write
|
29
|
+
# process behavior so workers use less memory. If you use this option
|
30
|
+
# you need to make sure to reconnect any threads in the `on_worker_boot`
|
31
|
+
# block.
|
32
|
+
#
|
33
|
+
# preload_app!
|
34
|
+
|
35
|
+
# If you are preloading your application and using Active Record, it's
|
36
|
+
# recommended that you close any connections to the database before workers
|
37
|
+
# are forked to prevent connection leakage.
|
38
|
+
#
|
39
|
+
# before_fork do
|
40
|
+
# ActiveRecord::Base.connection_pool.disconnect! if defined?(ActiveRecord)
|
41
|
+
# end
|
42
|
+
|
43
|
+
# The code in the `on_worker_boot` will be called if you are using
|
44
|
+
# clustered mode by specifying a number of `workers`. After each worker
|
45
|
+
# process is booted, this block will be run. If you are using the `preload_app!`
|
46
|
+
# option, you will want to use this block to reconnect to any threads
|
47
|
+
# or connections that may have been created at application boot, as Ruby
|
48
|
+
# cannot share connections between processes.
|
49
|
+
#
|
50
|
+
# on_worker_boot do
|
51
|
+
# ActiveRecord::Base.establish_connection if defined?(ActiveRecord)
|
52
|
+
# end
|
53
|
+
#
|
54
|
+
|
55
|
+
# Allow puma to be restarted by `rails restart` command.
|
56
|
+
plugin :tmp_restart
|
@@ -1,9 +1,30 @@
|
|
1
1
|
impac:
|
2
2
|
paths:
|
3
3
|
mnohub_api: /mnoe/jpi/v1
|
4
|
+
pusher:
|
5
|
+
key: <%= ENV['impac_pusher_key'] %>
|
4
6
|
mno:
|
5
7
|
paths:
|
6
8
|
root: /api/mnoe/v1
|
7
9
|
frontend_host:
|
10
|
+
|
11
|
+
#===============================================
|
12
|
+
# Feature Flags
|
13
|
+
#===============================================
|
14
|
+
|
15
|
+
# Display App Pricing on Marketplace
|
8
16
|
pricing:
|
9
17
|
enabled: false
|
18
|
+
# Enable the App Dock
|
19
|
+
dock:
|
20
|
+
enabled: true
|
21
|
+
# Display the Developer section on "My Account"
|
22
|
+
developer:
|
23
|
+
enabled: false
|
24
|
+
# Enable Reviews in the marketplace
|
25
|
+
reviews:
|
26
|
+
enabled: false
|
27
|
+
|
28
|
+
marketplace:
|
29
|
+
comparison:
|
30
|
+
enabled: false
|
@@ -29,6 +29,7 @@
|
|
29
29
|
/* Login Page */
|
30
30
|
/*-----------------------------------------------------------------------*/
|
31
31
|
@login-bg-color: @bg-main-color;
|
32
|
+
@login-bg-img: "";
|
32
33
|
@login-box-grid-position: { margin-top: 80px; .make-sm-column(4); .make-sm-column-offset(4); };
|
33
34
|
|
34
35
|
@login-box-title-color: @decorator-main-color;
|
@@ -41,6 +42,8 @@
|
|
41
42
|
@login-box-brand-logo: { min-height: 61px; max-width: 160px; max-height: 130px; margin: 17px auto 5px auto; };
|
42
43
|
@login-box-btn-login: { width: 100%; };
|
43
44
|
|
45
|
+
@login-box-sso-intuit-logo: "mno_enterprise/logo-intuit.png";
|
46
|
+
|
44
47
|
/*-----------------------------------------------------------------------*/
|
45
48
|
/* Dashboard Layout */
|
46
49
|
/*-----------------------------------------------------------------------*/
|