bullet_train 1.0.27 → 1.0.28
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/models/concerns/current_attributes/base.rb +36 -0
- data/config/locales/en/base.yml +127 -0
- data/config/locales/en/doorkeeper.en.yml +152 -0
- data/config/locales/en/oauth.en.yml +15 -0
- data/config/locales/en/roles.en.yml +6 -0
- data/config/locales/en/user_mailer.en.yml +36 -0
- data/lib/bullet_train/version.rb +1 -1
- metadata +7 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e9a2cb019fbf151b922e19e9ad2aec5f84ac7fd50045bd23d2ba94478c86a0dc
|
4
|
+
data.tar.gz: e63d7bb9128c48f49ee9e7b388c490173569624c2aaeb35d0c7a8d72d54c5abd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cbfa5d7e78cb1d62ad68966763a1c8d654c2ca6d080a3ad7a3d6e1126d0b46a44d96dcfeac454e368b5d58388dc2c5ab7f3d41122b8c03acb004e1447c2aced6
|
7
|
+
data.tar.gz: 73abfc993caaf2fbc71fccace9925bf8e897e35db76d4ef9c5cfe50495db45b33fecc924866da25a5b410e70d0a0f100da7f5a3f515cb4d681e2db68a60b1260
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module CurrentAttributes::Base
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
|
4
|
+
included do
|
5
|
+
attribute :user, :team, :membership, :ability
|
6
|
+
|
7
|
+
resets do
|
8
|
+
Time.zone = nil
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def user=(user)
|
13
|
+
super
|
14
|
+
|
15
|
+
if user
|
16
|
+
Time.zone = user.time_zone
|
17
|
+
self.ability = Ability.new(user)
|
18
|
+
else
|
19
|
+
Time.zone = nil
|
20
|
+
self.ability = nil
|
21
|
+
end
|
22
|
+
|
23
|
+
update_membership
|
24
|
+
end
|
25
|
+
|
26
|
+
def team=(team)
|
27
|
+
super
|
28
|
+
update_membership
|
29
|
+
end
|
30
|
+
|
31
|
+
def update_membership
|
32
|
+
self.membership = if user && team
|
33
|
+
user.memberships.where(team: team)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,127 @@
|
|
1
|
+
# Files in the config/locales directory are used for internationalization
|
2
|
+
# and are automatically loaded by Rails. If you want to use locales other
|
3
|
+
# than English, add the necessary files in this directory.
|
4
|
+
#
|
5
|
+
# To use the locales, use `I18n.t`:
|
6
|
+
#
|
7
|
+
# I18n.t "hello"
|
8
|
+
#
|
9
|
+
# In views, this is aliased to just `t`:
|
10
|
+
#
|
11
|
+
# <%= t("hello") %>
|
12
|
+
#
|
13
|
+
# To use a different locale, set it with `I18n.locale`:
|
14
|
+
#
|
15
|
+
# I18n.locale = :es
|
16
|
+
#
|
17
|
+
# This would use the information in config/locales/es.yml.
|
18
|
+
#
|
19
|
+
# The following keys must be escaped otherwise they will not be retrieved by
|
20
|
+
# the default I18n backend:
|
21
|
+
#
|
22
|
+
# true, false, on, off, yes, no
|
23
|
+
#
|
24
|
+
# Instead, surround them with single quotes.
|
25
|
+
#
|
26
|
+
# en:
|
27
|
+
# "true": "foo"
|
28
|
+
#
|
29
|
+
# To learn more, please read the Rails Internationalization guide
|
30
|
+
# available at https://guides.rubyonrails.org/i18n.html.
|
31
|
+
|
32
|
+
en:
|
33
|
+
|
34
|
+
global:
|
35
|
+
or: Or
|
36
|
+
more: More
|
37
|
+
is_admin: Admin?
|
38
|
+
person: Person
|
39
|
+
admin: Admin
|
40
|
+
confirm_message: Are you sure?
|
41
|
+
typing_search: Start typing search...
|
42
|
+
sidebar: Sidebar
|
43
|
+
creator: Bullet Train, Inc.
|
44
|
+
buttons:
|
45
|
+
other: Other
|
46
|
+
debug: Debug
|
47
|
+
details: Details
|
48
|
+
revoke: Revoke
|
49
|
+
cancel: Cancel
|
50
|
+
next: Next
|
51
|
+
back: Back
|
52
|
+
new: New
|
53
|
+
edit: Edit
|
54
|
+
settings: Settings
|
55
|
+
configure: Configure
|
56
|
+
remove: Remove
|
57
|
+
delete: Delete
|
58
|
+
update: Update
|
59
|
+
sign_up: Sign Up
|
60
|
+
sign_in: Sign In
|
61
|
+
notifications:
|
62
|
+
not_found: not found
|
63
|
+
all_fields_required: All of these fields are required.
|
64
|
+
dates:
|
65
|
+
today: Today
|
66
|
+
day:
|
67
|
+
one: 1 Day
|
68
|
+
other: '%{count} Days'
|
69
|
+
last_month: Last Month
|
70
|
+
last_week: Last Week
|
71
|
+
last_day:
|
72
|
+
one: Last Day
|
73
|
+
other: Last %{count} Days
|
74
|
+
formats:
|
75
|
+
date: '%m/%d/%Y'
|
76
|
+
date_and_time: '%m/%d/%Y %l:%M %p'
|
77
|
+
|
78
|
+
menus:
|
79
|
+
main:
|
80
|
+
labels:
|
81
|
+
account: Account
|
82
|
+
new: New
|
83
|
+
profile_details: Profile Details
|
84
|
+
logout: Logout
|
85
|
+
skip: Skip For Now
|
86
|
+
dashboard: Dashboard
|
87
|
+
team_members: Team Members
|
88
|
+
webhooks: Webhooks
|
89
|
+
invitations: Invitations
|
90
|
+
billing: Billing
|
91
|
+
upgrade: Upgrade
|
92
|
+
switch_teams: Switch Teams
|
93
|
+
add_new_team: Add New Team
|
94
|
+
edit_account_details: Account Details
|
95
|
+
resources: Resources
|
96
|
+
collaborate: Collaborate
|
97
|
+
integrations: Integrations
|
98
|
+
developers: Developers
|
99
|
+
your_account: Your Account
|
100
|
+
|
101
|
+
breadcrumbs:
|
102
|
+
your_dashboard: Your Dashboard
|
103
|
+
actions:
|
104
|
+
edit: 'Edit'
|
105
|
+
new: 'New'
|
106
|
+
|
107
|
+
fields:
|
108
|
+
date_field:
|
109
|
+
apply: Apply
|
110
|
+
cancel: Clear
|
111
|
+
|
112
|
+
layouts:
|
113
|
+
|
114
|
+
application:
|
115
|
+
raise: we should never be using the application layout.
|
116
|
+
|
117
|
+
mailer:
|
118
|
+
trouble: If you’re having trouble with the button above, copy and paste the URL below into your web browser.
|
119
|
+
all_rights_reserved: "%{year} %{product_name}. All rights reserved."
|
120
|
+
|
121
|
+
public:
|
122
|
+
launch_help: We're helping people launch high quality SaaS products!
|
123
|
+
developed_by: Developed By
|
124
|
+
made_with_love: Made With Love In
|
125
|
+
location: Los Angeles, California
|
126
|
+
follow_us: Follow Us
|
127
|
+
all_rights_reserved: "%{year} Bullet Train, Inc., All Rights Reserved"
|
@@ -0,0 +1,152 @@
|
|
1
|
+
en:
|
2
|
+
activerecord:
|
3
|
+
attributes:
|
4
|
+
platform/application:
|
5
|
+
name: 'Name'
|
6
|
+
redirect_uri: 'Redirect URI'
|
7
|
+
errors:
|
8
|
+
models:
|
9
|
+
platform/application:
|
10
|
+
attributes:
|
11
|
+
redirect_uri:
|
12
|
+
fragment_present: 'cannot contain a fragment.'
|
13
|
+
invalid_uri: 'must be a valid URI.'
|
14
|
+
unspecified_scheme: 'must specify a scheme.'
|
15
|
+
relative_uri: 'must be an absolute URI.'
|
16
|
+
secured_uri: 'must be an HTTPS/SSL URI.'
|
17
|
+
forbidden_uri: 'is forbidden by the server.'
|
18
|
+
scopes:
|
19
|
+
not_match_configured: "can only contain the strings \"read\", \"write\", or \"delete\". You can also leave this field blank"
|
20
|
+
|
21
|
+
platform:
|
22
|
+
applications:
|
23
|
+
confirmations:
|
24
|
+
destroy: 'Are you sure?'
|
25
|
+
buttons:
|
26
|
+
edit: 'Edit'
|
27
|
+
destroy: 'Destroy'
|
28
|
+
submit: 'Submit'
|
29
|
+
cancel: 'Cancel'
|
30
|
+
authorize: 'Authorize'
|
31
|
+
form:
|
32
|
+
error: 'Whoops! Check your form for possible errors'
|
33
|
+
help:
|
34
|
+
confidential: 'Application will be used where the client secret can be kept confidential. Native mobile apps and Single Page Apps are considered non-confidential.'
|
35
|
+
redirect_uri: 'Use one line per URI'
|
36
|
+
blank_redirect_uri: "Leave it blank if you configured your provider to use Client Credentials, Resource Owner Password Credentials or any other grant type that doesn't require redirect URI."
|
37
|
+
scopes: 'Separate scopes with spaces. Leave blank to use the default scope.'
|
38
|
+
edit:
|
39
|
+
title: 'Edit application'
|
40
|
+
index:
|
41
|
+
title: 'Your applications'
|
42
|
+
new: 'New Application'
|
43
|
+
name: 'Name'
|
44
|
+
callback_url: 'Callback URL'
|
45
|
+
confidential: 'Confidential?'
|
46
|
+
actions: 'Actions'
|
47
|
+
confidentiality:
|
48
|
+
'yes': 'Yes'
|
49
|
+
'no': 'No'
|
50
|
+
new:
|
51
|
+
title: 'New Application'
|
52
|
+
show:
|
53
|
+
title: 'Application: %{name}'
|
54
|
+
application_id: 'UID'
|
55
|
+
secret: 'Secret'
|
56
|
+
secret_hashed: 'Secret hashed'
|
57
|
+
scopes: 'Scopes'
|
58
|
+
confidential: 'Confidential'
|
59
|
+
callback_urls: 'Callback urls'
|
60
|
+
actions: 'Actions'
|
61
|
+
not_defined: 'Not defined'
|
62
|
+
|
63
|
+
doorkeeper:
|
64
|
+
authorizations:
|
65
|
+
buttons:
|
66
|
+
authorize: 'Authorize'
|
67
|
+
deny: 'Deny'
|
68
|
+
error:
|
69
|
+
title: 'An error has occurred'
|
70
|
+
new:
|
71
|
+
title: 'Authorization required'
|
72
|
+
prompt: 'Authorize %{client_name} to use your account?'
|
73
|
+
able_to: 'This application will be able to'
|
74
|
+
show:
|
75
|
+
title: 'Authorization code'
|
76
|
+
|
77
|
+
authorized_applications:
|
78
|
+
confirmations:
|
79
|
+
revoke: 'Are you sure?'
|
80
|
+
buttons:
|
81
|
+
revoke: 'Revoke'
|
82
|
+
index:
|
83
|
+
title: 'Your authorized applications'
|
84
|
+
application: 'Application'
|
85
|
+
created_at: 'Created At'
|
86
|
+
date_format: '%Y-%m-%d %H:%M:%S'
|
87
|
+
|
88
|
+
pre_authorization:
|
89
|
+
status: 'Pre-authorization'
|
90
|
+
|
91
|
+
errors:
|
92
|
+
messages:
|
93
|
+
# Common error messages
|
94
|
+
invalid_request:
|
95
|
+
unknown: 'The request is missing a required parameter, includes an unsupported parameter value, or is otherwise malformed.'
|
96
|
+
missing_param: 'Missing required parameter: %{value}.'
|
97
|
+
not_support_pkce: 'Invalid code_verifier parameter. Server does not support pkce.'
|
98
|
+
request_not_authorized: 'Request need to be authorized. Required parameter for authorizing request is missing or invalid.'
|
99
|
+
invalid_redirect_uri: "The requested redirect uri is malformed or doesn't match client redirect URI."
|
100
|
+
unauthorized_client: 'The client is not authorized to perform this request using this method.'
|
101
|
+
access_denied: 'The resource owner or authorization server denied the request.'
|
102
|
+
invalid_scope: 'The requested scope is invalid, unknown, or malformed.'
|
103
|
+
invalid_code_challenge_method: 'The code challenge method must be plain or S256.'
|
104
|
+
server_error: 'The authorization server encountered an unexpected condition which prevented it from fulfilling the request.'
|
105
|
+
temporarily_unavailable: 'The authorization server is currently unable to handle the request due to a temporary overloading or maintenance of the server.'
|
106
|
+
|
107
|
+
# Configuration error messages
|
108
|
+
credential_flow_not_configured: 'Resource Owner Password Credentials flow failed due to Doorkeeper.configure.resource_owner_from_credentials being unconfigured.'
|
109
|
+
resource_owner_authenticator_not_configured: 'Resource Owner find failed due to Doorkeeper.configure.resource_owner_authenticator being unconfigured.'
|
110
|
+
admin_authenticator_not_configured: 'Access to admin panel is forbidden due to Doorkeeper.configure.admin_authenticator being unconfigured.'
|
111
|
+
|
112
|
+
# Access grant errors
|
113
|
+
unsupported_response_type: 'The authorization server does not support this response type.'
|
114
|
+
|
115
|
+
# Access token errors
|
116
|
+
invalid_client: 'Client authentication failed due to unknown client, no client authentication included, or unsupported authentication method.'
|
117
|
+
invalid_grant: 'The provided authorization grant is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client.'
|
118
|
+
unsupported_grant_type: 'The authorization grant type is not supported by the authorization server.'
|
119
|
+
|
120
|
+
invalid_token:
|
121
|
+
revoked: "The access token was revoked"
|
122
|
+
expired: "The access token expired"
|
123
|
+
unknown: "The access token is invalid"
|
124
|
+
revoke:
|
125
|
+
unauthorized: "You are not authorized to revoke this token"
|
126
|
+
|
127
|
+
flash:
|
128
|
+
applications:
|
129
|
+
create:
|
130
|
+
notice: 'Application created.'
|
131
|
+
destroy:
|
132
|
+
notice: 'Application deleted.'
|
133
|
+
update:
|
134
|
+
notice: 'Application updated.'
|
135
|
+
authorized_applications:
|
136
|
+
destroy:
|
137
|
+
notice: 'Application revoked.'
|
138
|
+
|
139
|
+
layouts:
|
140
|
+
admin:
|
141
|
+
title: 'Doorkeeper'
|
142
|
+
nav:
|
143
|
+
oauth2_provider: 'OAuth2 Provider'
|
144
|
+
applications: 'Applications'
|
145
|
+
home: 'Home'
|
146
|
+
application:
|
147
|
+
title: 'OAuth authorization required'
|
148
|
+
|
149
|
+
scopes:
|
150
|
+
delete: "Your OAuth application is missing the 'delete' scope to access this API method."
|
151
|
+
read: "Your OAuth application is missing the 'read' scope to access this API method."
|
152
|
+
write: "Your OAuth application is missing the 'write' scope to access this API method."
|
@@ -0,0 +1,15 @@
|
|
1
|
+
en:
|
2
|
+
stripe_connect: Stripe
|
3
|
+
# 🚅 super scaffolding will insert new oauth providers above this line.
|
4
|
+
omniauth:
|
5
|
+
team:
|
6
|
+
connected: "We've successfully added that %{provider} account to your team!"
|
7
|
+
denied: "Permission to connect to %{provider} was not granted. Not a problem! You can try again if you want to."
|
8
|
+
already_present: "That %{provider} account is already present for this team!"
|
9
|
+
not_allowed: "You're not allowed to add a %{provider} account to a team you don't have access to."
|
10
|
+
user:
|
11
|
+
connected: "We've successfully connected that %{provider} account to your user account."
|
12
|
+
reconnected: "That %{provider} account is already connected to your user account."
|
13
|
+
already_registered: "That %{provider} account is already connected to another user. Before you can connect that %{provider} account with your user account, you'll need to sign out and sign back in using that account and remove it from that user account profile."
|
14
|
+
email_already_registered: "Sorry, there is already a user registered with the email address %{email}, but this %{provider} account isn't configured for login with that account. Please sign in using your password and then add this account."
|
15
|
+
account_not_found: "Sorry, no existing account was found for that %{provider} account. In order to create a new account, please click the link in the invitation you received via email."
|
@@ -0,0 +1,36 @@
|
|
1
|
+
en:
|
2
|
+
user_mailer:
|
3
|
+
signature: &SIGNATURE
|
4
|
+
html:
|
5
|
+
<p>If you have any questions, please don't hesitate to <a href="mailto:%{support_email}">send us an email</a>.</p>
|
6
|
+
<p>Thanks,<br>Bullet Train, Inc.</p>
|
7
|
+
invited:
|
8
|
+
subject: Invitation to join %{team_name} on Bullet Train!
|
9
|
+
preview: '%{inviter_name} has sent you this invitation.'
|
10
|
+
heading: You're invited!
|
11
|
+
body:
|
12
|
+
html:
|
13
|
+
<p>
|
14
|
+
%{inviter_name} has invited you to join %{team_name} on Bullet Train.
|
15
|
+
You can join %{team_name} by clicking the button below.
|
16
|
+
</p>
|
17
|
+
cta:
|
18
|
+
label: Join %{team_name}
|
19
|
+
signature:
|
20
|
+
<<: *SIGNATURE
|
21
|
+
welcome:
|
22
|
+
subject: Welcome to the Bullet Train demo!
|
23
|
+
preview: This is the default Bullet Train welcome email. Check out the layout!
|
24
|
+
heading: Welcome to Bullet Train!
|
25
|
+
body:
|
26
|
+
html:
|
27
|
+
<p>This is the default welcome email for Bullet Train!</p>
|
28
|
+
<p>If you have any questions about Bullet Train, just reply to this email!</p>
|
29
|
+
<p>It was important to us that Bullet Train applications have a good looking, branded email template by default.</p>
|
30
|
+
<p>Thankfully our friends at <a href="https://postmarkapp.com">Postmark</a> made the foundation of this email template <a href="https://github.com/wildbit/postmark-templates">freely available</a>. From there, we've customized it slightly to better match the default Bullet Train look-and-feel.</p>
|
31
|
+
cta:
|
32
|
+
heading: What's next?
|
33
|
+
body: You can use the following link to always return to your Bullet Train account dashboard.
|
34
|
+
label: View Your Account Dashboard
|
35
|
+
signature:
|
36
|
+
<<: *SIGNATURE
|
data/lib/bullet_train/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bullet_train
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.28
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Culver
|
@@ -399,6 +399,7 @@ files:
|
|
399
399
|
- app/mailers/concerns/mailers/base.rb
|
400
400
|
- app/mailers/devise_mailer.rb
|
401
401
|
- app/mailers/user_mailer.rb
|
402
|
+
- app/models/concerns/current_attributes/base.rb
|
402
403
|
- app/models/concerns/invitations/base.rb
|
403
404
|
- app/models/concerns/memberships/base.rb
|
404
405
|
- app/models/concerns/records/base.rb
|
@@ -471,12 +472,17 @@ files:
|
|
471
472
|
- app/views/public/home/docs.html.erb
|
472
473
|
- app/views/user_mailer/invited.html.erb
|
473
474
|
- app/views/user_mailer/welcome.html.erb
|
475
|
+
- config/locales/en/base.yml
|
474
476
|
- config/locales/en/devise.en.yml
|
477
|
+
- config/locales/en/doorkeeper.en.yml
|
475
478
|
- config/locales/en/invitations.en.yml
|
476
479
|
- config/locales/en/memberships.en.yml
|
480
|
+
- config/locales/en/oauth.en.yml
|
477
481
|
- config/locales/en/onboarding/user_details.en.yml
|
478
482
|
- config/locales/en/onboarding/user_email.en.yml
|
483
|
+
- config/locales/en/roles.en.yml
|
479
484
|
- config/locales/en/teams.en.yml
|
485
|
+
- config/locales/en/user_mailer.en.yml
|
480
486
|
- config/locales/en/users.en.yml
|
481
487
|
- config/routes.rb
|
482
488
|
- db/migrate/20161115160419_devise_create_users.rb
|