Commit Graph

668 Commits

Author SHA1 Message Date
Vitalii Shpital
97a5c58ce4 web/satellite: cli flow's Skip Flow
Added API key, CLI setup and Generate AG components.
Also some common components were added to reuse in this flow.

Change-Id: Ic7b2e33b02b8d2c0e8f989a1ac59c8ebf05830d4
2021-09-08 20:09:23 +03:00
Vitalii Shpital
390c6b6fc6 web/satellite: cli flow's Encrypt Your Data component
Refactored Generate Passphrase screen to be common for onb and object flows.
Replaced initial Generate Passphrase screen to access grants wizard.
Moved download file functionality to utils.
Implemented Onboarding Encrypt your Data logic.

Change-Id: I46e780a5997c215d53ccd0254964b1c2b39c7c02
2021-09-08 20:09:23 +03:00
Vitalii Shpital
7a08c19c53 web/satellite: initial setup for onboarding CLI flow
Added components for the new flow.
Removed onboarding logic from regular access grant wizard.
Updated routes to include new flow.

Change-Id: I52ca6eb3da1e4e3a4b465ed58cd45398d10fd268
2021-09-08 20:09:23 +03:00
Jeremy Wharton
f55af3125c web/satellite: Replace checkbox reCAPTCHA with invisible reCAPTCHA
This change replaces the checkbox reCAPTCHA in the registration page
with an invisible reCAPTCHA.

Change-Id: I5b52e5fe35b551ba88af2404429b23bf38d4f9c1
2021-09-07 19:04:17 +00:00
Egon Elbre
84539f5798 web/: disallow warnings and errors in tests
* all: fix missing Vue.use(Router)
* multinode: having same state and module names is not allowed
* multinode: simplify store definition
* storagenode: add or fix any annotations

Change-Id: If8a63ae46049fc77fc6cd7a7ad912d4ad74d23ac
2021-09-07 13:43:26 +00:00
Egon Elbre
e5977ec849 web/: add custom linter for requiring @vue/component
Also ignore coverage folder for linting. I had to add a new
.stylelintignore file, because ignoreFiles property was not properly
working.

Change-Id: Iadd99b64eadd9c4103f750519263113ae8780ce1
2021-09-01 13:56:37 +00:00
Egon Elbre
7d5d555264 web/: disallow unregistered and unused components
The components used in templates should always be included in the
component declaration. Similarly, it shouldn't contain extra components
to avoid compiling in components that aren't needed.

Change-Id: I8c47ceffa8bcbcca223ac0f538f9e30d1e849829
2021-08-31 21:25:49 +03:00
Egon Elbre
0889866b17 web/: add @vue/component annotations
Some linters do not work properly without those annotations.
This was done with a batch replace.

Also needed to turn off two lint rules, they will be re-enabled in the
followup change. This way the batch change can be clearly separated from
manual modifications.

Change-Id: I891ae09689520edaba5588c1f2206766db2d2b90
2021-08-31 21:25:49 +03:00
nerdatwork
238282b7f6
web/satellite: fix typo in Add a Payment method popup 2021-08-31 10:44:43 +00:00
Vitalii Shpital
a7e151e970 web/satellite: added ability to restart onboarding tour
Added an info icon which toggles a bubble where user can click a button to restrat onboarding tour

Change-Id: I8b02a1506684377c2887cc9d9c93b5450f1bfd4d
2021-08-30 08:14:38 +00:00
Moby von Briesen
1549a6a68a web/satellite: Use OSP logo
Remove Storj DCS logo and replace it with the Storj OCS logo - the dcs
logo will replace this from our branding repo.

Change-Id: I01daa67380f04bf62df980a2c84b3e48bccd63f1
2021-08-26 16:52:15 +00:00
Vitalii Shpital
0376fcdaef integration/ui/satellite: fixed tests for onboarding flow
Fixed tests to pass

Change-Id: I90c61168a3a67188e586564a5df381f2f41e2834
2021-08-26 19:07:52 +03:00
Egon Elbre
6daad68735 web/satellite: don't require explicit RootGetter type
There's no need to define RootGetter type on StoreModule,
because Context already should have it defined.
Although the invocation to get that type is rather arcane.

Change-Id: I9525c0e4853f4c5211bdaf1645f0a27c26af8f53
2021-08-25 13:16:24 +03:00
Egon Elbre
ad0b19fb02 web/satellite: fix lint issues
Fix svg.d.ts definition.

Disable no-explicit-any in src/api, because wrangling all the GraphQL
result types properly is not that nice. We can either fix this later
manually, generate GraphQL types or remove the GraphQL endpoints.

Add annotations to src/store/. Currently it still uses any in places and
also defines more types than absolutely necessary. This is an
unfortunate side-effect of the vuex api. There does seem to be an
alternative package that handles them, but to minimize the number of
changes, we'll currently use these types. Due to those decisions it's
also not easily possible to have types instead of any in multiple
places.

StripeCardInput currently uses any, however, if we find the proper
declarations, we can replace them later.

Change-Id: I2ec8bf7fdd8023129d1f8739ce2b6d97de2a58d0
2021-08-25 06:01:19 +00:00
Egon Elbre
f0c3514b24 web/satellite: remove uses of v-html
Change-Id: Ief9d8af327c02212a6c138773af9f1dc8028a5b6
2021-08-24 13:29:35 +03:00
Jeremy Wharton
6a6cc28fc1 satellite/console,private/web: Rate limit coupon code application
Rate limits application of coupon codes by user ID to prevent
brute forcing. Refactors the rate limiter to allow limiting based
on arbitrary criteria and not just by IP.

Change-Id: I99d6749bd5b5e47d7e1aeb0314e363a8e7259dba
2021-08-23 17:00:31 +00:00
Vitalii Shpital
ca5215c481 web/satellite: rework passphrase step of objects flow
Combined generate/enter passphrase into 1 component.
Designs were significantly chenged.

Change-Id: I53a533af1b1aad1a270f16c432c6d28101dde966
2021-08-20 10:26:59 +00:00
NickolaiYurchenko
fafabaa501 web/satellite: redundant images deletion
Change-Id: I831804877d3b257f16a489e0d8b4226ac3cd1191
2021-08-20 08:51:58 +00:00
Jeremy Wharton
96e39018c7 satellite/console,web/satellite: Allow disabling MFA with recovery code
This change allows users to disable multi-factor authentication
with a recovery code. Previously, users could only disable MFA
with a passcode.

Change-Id: Iec20bf7d8f6781182b81d1f17d9641491dbc8460
2021-08-18 14:34:17 +00:00
Jeremy Wharton
24b39b7559 web/satellite: Warn user if number of MFA recovery codes is low
Adds a banner at the top of the dashboard warning the user if he
has 3 or less MFA recovery codes.

Change-Id: I3271f1fe33501eaeeeca343bf60ca899e80f0fa1
2021-08-18 13:18:34 +00:00
dlamarmorgan
cc083dbdc9 web/satellite,satellite/console: Allow paid tier users to edit limits
Added editable fields to the project details page for Storage Limit and Bandwidth limit. Leveraged existing types when possible.

Added fixed checking into the limits to prevent reducing limits beyond current usage, as well as limiting usage to less than the default paid tier maximum.

Change-Id: I07ce53470919a8a9d4dce56ade6904ede8daf34c
2021-08-18 00:07:10 +00:00
Jeremy Wharton
ea772a8480 web/satellite: Allow users to see coupon in billing area
This change allows users to see the Stripe coupon applied to their
account in the billing area.

Change-Id: Ie1e810bfb2847f9b0c0bb827d5ca03c16cf5e818
2021-08-14 16:09:54 -05:00
Jeremy Wharton
51ebc564d9 web/satellite,satellite/console: Overhaul password reset
Updates the password reset page to use the new theme.
Adds new endpoint '/api/v0/auth/reset-password'
for password reset.

Additionally, updates the link-clicking mail simulator to only
click links with a specified attribute. Otherwise, the password reset
cancellation link would be clicked before the password reset link
could be accessed, rendering testing impossible.

Change-Id: I8fde74ef7ad980880a7bf6558e3b9ed31509a393
2021-08-12 17:40:53 +00:00
Egon Elbre
e43af5eb3d web/: enable more vue eslint rules
Fixes two things:

All button tags must have type field specified, otherwise it defaults to
submit, which is mostly not correct for our site.

Disallows unused refs.

Change-Id: I28bb44aab9c153f83fec16fc4023a453444c3926
2021-08-12 16:56:37 +03:00
Malcolm Bouzi
92c53afb84 satellite/{payments,console},web/satellite: Adds confirmation step if user already has coupon code applied and wants to replace it
Change-Id: I04d40d3b25bd67e29c043d651541ff300b5379ac
2021-08-11 20:04:23 +00:00
Vitalii Shpital
c5d5229716 web/satellite: update Overview step of onboarding flow
Updated the very first screen after sign up according to new designs

Change-Id: I03521e77ca2331e8ec4d9bf7094eccff7178bc58
2021-08-11 19:36:52 +03:00
Jeremy Wharton
9eb8dc0c79 web/satellite: Fix invalid font reference
Replaces all occurrences of the non-existent 'font_normal'
with 'font_regular'. References to 'font_normal' would always
fallback and never display the proper font.

Change-Id: I2cb98a5bbec33b45f7e4ec6ba67bc5be63b5b523
2021-08-11 15:48:59 +00:00
Egon Elbre
b8280bd057 web/satellite: enable vue/recommended linting
Change-Id: I73cd1e72f369a172f9416be9b1220cbbd6c77637
2021-08-11 11:10:51 +03:00
Egon Elbre
6b153192a3 web/satellite: fix lint issues
After migrating to eslint some errors were disabled to make it easier to
migrate.

This enables all the lint rules and treats all warnings as a build
failure. Similarly, CI won't automatically try to fix mistakes.

Change-Id: I80f808af026fc51bed90421b3b24737994a52094
2021-08-10 09:22:19 +00:00
Jeremy Wharton
7b152cddec web/satellite: Fix Usage Report style
The Usage Report page referenced a nonexistent stylesheet and improperly
imported a font that does not exist in this repository. This change
resolves those issues.

Change-Id: I78006d4a652fd1e32dd4dd146b2287f58a7659d6
2021-08-09 20:56:55 +00:00
Moby von Briesen
7f02e1f469 satellite/console: Remove config flag for MFA
MFA is complete and we are good to enable it in production. This change
removes the flag that disables MFA by default.

Change-Id: I2f985ae501171bdab505d664b43c8cfc248bad8d
2021-08-05 18:04:36 +00:00
NickolaiYurchenko
cc590343c2 web/satellite: server side encryption acknowledge checkbox added
Change-Id: If57ab6e8fddc34c142d19f754caf1338dfdb0bf6
2021-08-04 16:16:26 +00:00
Egon Elbre
f5ac00f909 web/satellite: switch to eslint, sass, bump deps
tslint has been deprecated so it's nice to switch to eslint.
Currently this uses a minimal eslint, to get things up and running.

node-sass requires C which does not work nicely on all platforms.

Change-Id: I3ca9adf2971475c009e541652b7637c18ad960f4
2021-08-03 15:56:33 +00:00
Vitalii Shpital
42a0b92404 web/satellite: set default NotAfter caveat for object browser access grant
According to FIRE-53 ticket we set default NotAfter caveat for object browser access grant

Change-Id: Ib421605f524cc176d9ffbf94fc95c09bd06fd477
2021-08-02 09:45:50 +00:00
Vitalii Shpital
cc277806d0 web/satellite: regenerate recovery codes popup
Added ability to regenerate MFA recovery codes to account settings.
Appropriate button and popup were added.

Change-Id: Ie7d42e7e13e868f3b0b8b7d5db7eacc9e8206aaf
2021-08-02 09:25:00 +00:00
Vitalii Shpital
c6c2a1daf9 web/satellite: added MFA login step
Added Enter MFA passcode step to login after first attempt.
Connected client-side and server-side.

Change-Id: I4482afde50172bbf2c598aa01bbd220763b4f6d1
2021-07-30 08:50:19 +00:00
Egon Elbre
96291a3999 web/{satellite,storagenode}: bump lockfile version
Change-Id: Idc842efb3e49b633e317a0cfe3540f5a05cd81da
2021-07-30 07:47:19 +00:00
Jeremy Wharton
615aae6bdd web/satellite: Remove activated account page
Error message for attempting to activate an already-activated
account is removed from its own page and incorporated into the
login page in an identical manner to the message that appears
upon successful activation.

Change-Id: I29cd2685a7808fa71d34a439c86a38eb5fc3e199
2021-07-29 14:47:57 +00:00
Jeremy Wharton
6bbb5b5cc2 web/satellite: Static error page maintenance fixes
Unifies the stylesheet for 404 and 500 errors. References the
Storj logo rather than embedding it in the HTML. Replaces references
to Storj with Storj DCS. Removes reference to nonexistent font.

Change-Id: If224f30eb0b21171fc8f575de6c4cef98a48c6f5
2021-07-28 16:18:27 +00:00
Jeremy Wharton
49fbb5010f web/satellite: Merge and update 'Forgot Password' page files
Merges the 'Forgot Password' page files into one Vue file and updates
it to be consistent with deployed code. This change is part of an
ongoing effort to remove code from the branding repo.

Change-Id: Ib18b95dd5a3269f26f4f547fc46ac6278c468a54
2021-07-28 14:40:59 +00:00
Jeremy Wharton
3720afb81b web/satellite: Update emails to be consistent with deployed code
Update the forgot password, invite, and welcome emails to be
cosistent with deployed code. This change is part of an ongoing
effort to remove code from the branding repo.

Change-Id: I6edb6811904552c1cf7761b96bc9aa879c2eb154
2021-07-26 22:49:28 +00:00
Jeremy Wharton
276ebcd4b6 satellite: Remove duplicate logo in error pages
Remove duplicate instance of the Storj logo in the
40X and 50X error pages.

Change-Id: I74152560d39f34fb93f5d559b9b390c3e83a61ec
2021-07-26 20:30:16 +00:00
Moby von Briesen
149f6f2626 satellite/payments: Implement coupon codes
Full path: satellite/{payments,console},web/satellite

* Adds the ability to apply coupon codes from the billing page in the
satellite UI.
* Flag for coupon code UI is split into two flags - one for the billing
page and one for the signup page. This commit implements the first, but
not the second.
* Update the Stripe dependency to v72, which is necessary to
use Stripe's promo code functionality.

Change-Id: I19d9815c48205932bef68d87d5cb0b000498fa70
2021-07-26 17:15:55 +00:00
Jeremy Wharton
1535bbe673 satellite/console: Forward friendly registration errors to client
Provides the means to serve an error to the user with a user-friendly
error message (serveCustomJSONError). Auth API uses this when
processing registration attempts.

Previously, the error message was inferred by the client based on
the status code of the response received from the server. However,
if multiple distinct errors fit a certain status code, it was impossible
to correctly interpret the error.

Change-Id: I2f91e9c81ba1a4d14ba67e0b4b531a48800d4799
2021-07-22 11:31:12 +00:00
Vitalii Shpital
4c7384ca2f web/satellite: removed redundant files splitting
Since we removed login/registration explicit templates and styles from branding repo we don't need file splitting in main repo anymore.
So moved html and css code into components

Change-Id: Ib297e2576f16a7fddd17cc62f6c655adf96a59b6
2021-07-20 12:44:02 +03:00
Vitalii Shpital
2489b78d22 web/satellite: move user MFA secret generation to server-side
It was decided to move user MFA secret generation to server-side and be fetched by http request

Change-Id: I5e31d35fb78d1d9f3280518fe3eb543bb8ed4377
2021-07-19 13:48:09 +00:00
Moby von Briesen
bc2f81c2fa web/satellite: Add beta checkbox to registration page
Only if is-beta-satellite is set to true.
Also cleans up some styles.

Change-Id: I2273936ae2b41a3409fb985b13cc987224a3ba85
2021-07-16 15:55:11 +00:00
Moby von Briesen
7624bdd090 web/satellite: Return server-side error message during registration
It turns out, there are multiple different 400 errors that might be
returned from the server during registration. Rather than display
hardcoded text on the client ("Validation of reCAPTCHA was
unsuccessful"), this change simply displays the error sent by the
server.

As mentioned in the comment, we should eventually do this for all
errors, but that will be a more in-depth change. The purpose of this
commit is to unblock a point release.

Change-Id: Ideca107cc4039a0dabfa0fb02c943da920f7ff4f
2021-07-16 09:43:11 -04:00
Jeremy Wharton
1e0a1b15d4 web/satellite: Repair reCAPTCHA resetting upon registration error
Previously, the reCAPTCHA would only reset if a Bad Request
error was received. Resets should initiate regardless of error
type to prevent the same reCAPTCHA response from being submitted
more then once.

Additionally, registration errors could trigger a reset for a
nonexistent reCAPTCHA element.

Change-Id: Ib405707f1803cf41e5de192f31d75153136e6c67
2021-07-15 15:42:52 -05:00
Vitalii Shpital
22e88c8f0a web/satellite: disable MFA functionality
Added disable user MFA functionality to account settings.
Disable MFA popup where user will have to enter MFA passcode first.
2 buttons (enable, disable)) are visible for now until backend is ready.

Change-Id: Iff8b497a370fc1c6c08c5ccaf01ce1f2dc317126
2021-07-14 17:38:57 +03:00