mno-enterprise-core 3.1.4 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
/*-----------------------------------------------------------------------*/
|