Commit Graph

2397 Commits

Author SHA1 Message Date
Fabien O'Carroll
bf156b0b79 Removed auth pages from lib/members
no-issue

These have been moved to https://github.com:TryGhost/Members
2019-05-07 17:35:17 +02:00
Zimo
5101735f9d Updated members payment failed copy and style
no-issue
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
79f31b7323 Updated token generation to use plans on member
no-issue

This is to remove duplication of logic, that now lives solely in the
getMember method
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
239237f402 Updated getMember to return plans
no-issue

Plans are distinct from subscriptions, as in theory a subscription could
have many plans. These moves the construction of the plans array into
the getMember function so that every consumer has access to the same
data.
2019-05-07 17:35:17 +02:00
Rish
618f7e35cc Updated signup flow to handle invalid payments
no issue
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
371a0698a6 Fixed bug with deleting members after config change 2019-05-07 17:35:17 +02:00
Fabien O'Carroll
c1a85e8bc3 Updated members auth pages to use gateway-protocol (#10695)
no-issue

This swaps out a hand copied library with the published one on npm
2019-05-07 17:35:17 +02:00
Zimo
9e53c6332a Added close event on member pages background click 2019-05-07 17:35:17 +02:00
Peter Zimon
540977fcb8 Members refine buttons (#10692)
* Members: disabled signup button during signup

* Members: disabled non-Stripe signup button during signup

* Members: added check to Log in button logged in state
2019-05-07 17:35:17 +02:00
Zimo
d63127bcdc Updated mobile styles for members upgrade screen 2019-05-07 17:35:17 +02:00
Fabien O'Carroll
ac9daac9f2 Fixed subscription issue with null coupons
no-issue

Coupons were being sent as null to the api, so we support non required fields
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
6e37c50ce7 Added default disabled state of false to FormInput
no-issue
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
43d65d0709 Removed unused onClick handler in StripeSubscribePage
no-issue
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
c1c13379c7 Added coupon support to StripeSubscribePage
no-issue

Only shows the (disabled) input when a coupon is available
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
9a5abbbde2 Cleaned up render{Subscribe,Upgrade}Page
no-issue

- ensured promises are returned
- removed unused prop
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
016e29c5a8 Added CouponInput component
no-issue

This can be used in the subscribe pages to pass coupon info through
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
e0225b8b54 Added support for disabled form elements
no-issue

This can be used for a coupon input in future
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
fbe6ba4b49 Updated members api and gateway to pass coupo
no-issue

This will allow the auth pages and members sdk to pass coupons through
to the api.
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
f99d66d8b9 Passed coupon from metadata through to stripe
no-issue

This will allow us to send through coupons from the api layer and have
stripe handle the rest :)
2019-05-07 17:35:17 +02:00
Rish
b00c82d3a6 Added spinner on member signup pages
no issue
2019-05-07 17:35:17 +02:00
Rish
0fbc808ff9 Updated member signin page to show logged in status
no issue
2019-05-07 17:35:17 +02:00
Zimo
8cb3c1510d Added fade in for signup complete page 2019-05-07 17:35:17 +02:00
Peter Zimon
43adc432f5 Members refinements (#10689)
* Updated close animation speed for members pages
* Updated responsive styles for members mobile screens 
* Adding spinner CSS to members pages
* Adding members signup complete page
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
10bfe05b39 Updated theme layer to use members-ssr (#10676)
* Removed support for cookies in members auth middleware

no-issue

The members middleware will no longer be supporting cookies, the cookie
will be handled by a new middleware specific for serverside rendering,
more informations can be found here:

https://paper.dropbox.com/doc/Members-Auth-II-4WP4vF6coMqDYbSMIajo5

* Removed members auth middleware from site app

no-issue

The site app no longer needs the members auth middleware as it doesn't
support cookies, and will be replaced by ssr specific middleware.

https://paper.dropbox.com/doc/Members-Auth-II-4WP4vF6coMqDYbSMIajo5

* Added comment for session_secret setting

no-issue

We are going to have multiple concepts of sessions, so adding a comment
here to be specific that this is for the Ghost Admin client

* Added theme_session_secret setting dynamic default

no-issue

Sessions for the theme layer will be signed, so we generate a random hex
string to use as a signing key

* Added getPublicConfig method

* Replaced export of httpHandler with POJO apiInstance

no-issue

This is mainly to reduce the public api, so it's easier to document.

* Renamed memberUserObject -> members

no-issue

Simplifies the interface, and is more inline with what we would want to export as an api library.

* Removed use of require options inside members

no-issue

This was too tight of a coupling between Ghost and Members

* Simplified apiInstance definition

no-issue

* Added getMember method to members api

* Added MembersSSR instance to members service

* Wired up routes for members ssr

* Updated members auth middleware to use getPublicConfig

* Removed publicKey static export from members service

* Used real session secret

no-issue

* Added DELETE /members/ssr handler

no-issue

This allows users to log out of the theme layer

* Fixed missing code property

no-issue

Ignition uses the statusCode property to forward status codes to call sites

* Removed superfluous error middleware

no-issue

Before we used generic JWT middleware which would reject, now the
middleware catches it's own error and doesn't error, thus this
middleware is unecessary.

* Removed console.logs

no-issue

* Updated token expirty to hardcoded 20 minutes

no-issue

This returns to our previous state of using short lived tokens, both for
security and simplicity.

* Removed hardcoded default member settings

no-issue

This is no longer needed, as defaults are in default-settings.json

* Removed stripe from default payment processor

no-issue

* Exported `getSiteUrl` method from url utils

no-issue

This keeps inline with newer naming conventions

* Updated how audience access control works

no-issue

Rather than being passed a function, members api now receives an object
which describes which origins have access to which audiences, and how
long those tokens should be allowed to work for. It also allows syntax
for default tokens where audience === origin requesting it. This can be
set to undefined or null to disable this functionality.

{
    "http://site.com": {
        "http://site.com": {
            tokenLength: '5m'
        },
        "http://othersite.com": {
            tokenLength: '1h'
        }
    },
    "*": {
        tokenLength: '30m'
    }
}

* Updated members service to use access control feature

no-issue

This also cleans up a lot of unecessary variable definitions, and some
other minor cleanups.

* Added status code to auth pages html response

no-issue

This was missing, probably default but better to be explicit

* Updated gateway to have membersApiUrl from config

no-issue

Previously we were parsing the url, this was not very safe as we can
have Ghost hosted on a subdomain, and this would have failed.

* Added issuer to public config for members

no-issue

This can be used to request SSR tokens in the client

* Fixed path for gateway bundle

no-issue

* Updated settings model tests

no-issue

* Revert "Removed stripe from default payment processor"

This reverts commit 1d88d9b6d73a10091070bcc1b7f5779d071c7845.

* Revert "Removed hardcoded default member settings"

This reverts commit 9d899048ba7d4b272b9ac65a95a52af66b30914a.

* Installed @tryghost/members-ssr

* Fixed tests for settings model
2019-05-07 17:35:17 +02:00
Rish
345d69102a Updated subscription data in member request
no issue

- Added subscription amount to member subscription data
2019-05-07 17:35:17 +02:00
Rishabh Garg
daf5a41af0 Added Admin API for deleting members (#10673)
no issue

- Added new API to delete members
- Added methods to handle e2e member deletion
- Deleting member via Admin leads to
  - Removal of member from payment processor and cancelling all active subscriptions immediately
  - Removal of member information from DB
2019-05-07 17:35:17 +02:00
Rish
bc889ae9a0 Refactored members auth flow with dynamic settings
no issue

- Updated members auth flow UI
- Updated members settings and routing to be dynamic
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
25aac1359d Added support for serverside rendering of members content (#10522)
no-issue

- Added member auth middleware to siteApp
- Passed member as context in routing service
- set Cache-Control: private for member requests
- fucked up some tests
- Added member as global template variable
- Updated tokens to have expiry of subscription_period_end
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
121b7d200f Improved Members security and performance (#10511)
no-issue

* Corrected function names for rpc methods

* Updated gateway to store tokens locally

* Fixed lint

* Added hardcoded 30 minute expiry for member tokens

* Added default contentApiAccess config;

* Updated validateAudience method

This is required for security, we need to restrict which domains can access
tokens meant for the content api
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
eb94871b6c Added upgrade page to members auth (#10513)
no-issue
2019-05-07 17:35:17 +02:00
Zimo
3b7d35ed0a Applying basic styles to members popups
no issue
2019-05-07 17:35:17 +02:00
Rish
a06d924493 Updated members modal UI structure
no issue
2019-05-07 17:35:17 +02:00
Rishabh Garg
beeedf7005 Updated signup page for members (#10493)
no issue

* Added new subscribe page with stripe integration
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
464caaf5df Updated product hashseed to be hardcoded (#10484)
no-issue
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
cd674fb470 Added config endpoint to Member API (#10467)
no-issue

* Added getPublicConfig method to stripe payment processor
* Added getPublicConfig method to subscriptions service
* Added initial config endpoint for members api
* Added getConfig method to members gateway
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
88b9f25541 Added initial subscription support with stripe to Members API (#10460)
These changes introduce a new "service" to the members api, which handles getting and creating subscriptions.

This is wired up to get subscription information when creating tokens, and attaching information to the token, so that the Content API can allow/deny access. 

Behind the subscription service we have a Stripe "payment processor", this holds the logic for creating subscriptions etc... in Stripe.

The logic for getting items out of stripe uses a hash of the relevant data as the id to search for, this allows us to forgo keeping stripe data in a db, so that this feature can get out quicker.
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
e1ba916ce6 Refactored auth pages for future flows (#10458)
no-issue

* Used camelCase for gateway method calls
* Added some components for building blocks of forms
* Added input specific components
* Added Form component
    This handles collecting the data to submit and sharing state between forms
* Added Pages component to handle urls
* Added the pages for the popup
* Added MembersProvider component
    This is designed to give its children access to gateway methods
* Added Modal component
    This wraps the pages and handles dispatching form submissions to the members gateway
* Refactored index.js to use new components/pages
* Fixed default page from Signup -> Signin
2019-05-07 17:35:17 +02:00
Rishabh Garg
0b2d70d617 Added new admin API for members (#10435)
no issue

- Added read and browse admin API for members
2019-05-07 17:35:17 +02:00
Rish
740209e2e4 Fixed console getting cleared on dev start
closes https://github.com/TryGhost/Ghost/issues/10409

- Removed `clearConsole` on preact cli
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
5ffdfe9875 Refactored members for management api (#10408)
no-issue
2019-05-07 17:35:17 +02:00
Rish
7ef520c2ea Fixed error handling for members reset password
no-issue

- Both input and form error was shown on submitting reset-password form
- Does not submit form anymore in case of validation errors
2019-05-07 17:35:17 +02:00
Peter Zimon
8d87eedcb4 Members auth ui refinements (#10279)
* Update mobile modal animations
* Member popup input error and placeholder refinements
* Adding close animation to members auth popups
* Improve members auth dialog
* Refine members reset password design
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
99aeda5909 Removed ssoOriginCheck from signout endpoint (#10277)
no-issue

the ssoOriginCheck exists to ensure that we only allow signin/signup to
be called from the specified auth page, this is a very minor security
feature in that it forces signins to go via the page you've designated.
signout however does not need this protection as the call to signout
completely bypasses any UI (this is the same for the call to /token)
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
b219e26ea6 Added members lib module (#10260)
* Added members library inc. gateway

refs #10213

* Added the auth pages and build steps for them

refs #10213

* Cleaned up logs

* Updated gruntfile to run yarn for member auth

* Design refinements on members popups

* UI refinements

* Updated backend call to trigger only if frontend validation passes

* Design refinements for error messages

* Added error message for email failure

* Updated request-password-reset to not attempt to send headers twice

* Updated preact publicPath to relative path

* Build auth pages on init
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
e511fcf4d9 Renamed index.js to app.js
no-issue

This is so when requiring the module we don't require a preact app in
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
adf8da686a Updated package.json to match packages
no-issue
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
07e15b8f68 Added blank index.js
no-issue

This is to ensue the module is a valid node module
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
2731953423 Included dist and index.js in package files array
no-issue

This is to ensure the dist directory is including the the tarball for
npm, and that the module has an index.js file so it can be
requires/resolved
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
3679f10783 Fixed clean script to use dist directory
no-issue
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
fd07779c1e Renamed index.js to app.js
no-issue

This is so when requiring the module we don't require a preact app in
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
3f71eccc77 Updated output public path to use root
no-issue

When installing this module in another project, we want to serve the
entire `dist` directory as-is, on whichever path we want, rather than
enforicing a /static after the relative part.
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
b31162b182 Renamed package to @tryghost/members-auth-pages
no-issue
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
341d4294fc Updated to preact-cli@next
no-issue

This version includes support for workspaces
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
31d8ab12d7 Disabled linting temporarily
no-issue
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
1bad6dee4e Fixed linting for auth-pages
no-issue
2019-05-07 17:15:50 +02:00
Zimo
d805f93c14 Updated members payment failed copy and style
no-issue
2019-05-07 17:15:50 +02:00
Rish
0872ff4e9b Updated signup flow to handle invalid payments
no issue
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
946514d630 Updated members auth pages to use gateway-protocol (#10695)
no-issue

This swaps out a hand copied library with the published one on npm
2019-05-07 17:15:50 +02:00
Zimo
0db210ab68 Added close event on member pages background click 2019-05-07 17:15:50 +02:00
Peter Zimon
25e5a31d91 Members refine buttons (#10692)
* Members: disabled signup button during signup

* Members: disabled non-Stripe signup button during signup

* Members: added check to Log in button logged in state
2019-05-07 17:15:50 +02:00
Zimo
e163f527a0 Updated mobile styles for members upgrade screen 2019-05-07 17:15:50 +02:00
Fabien O'Carroll
ce68df5462 Fixed subscription issue with null coupons
no-issue

Coupons were being sent as null to the api, so we support non required fields
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
9692a0f066 Added default disabled state of false to FormInput
no-issue
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
9a842cab7c Removed unused onClick handler in StripeSubscribePage
no-issue
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
eb0463b119 Added coupon support to StripeSubscribePage
no-issue

Only shows the (disabled) input when a coupon is available
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
5cb9850784 Cleaned up render{Subscribe,Upgrade}Page
no-issue

- ensured promises are returned
- removed unused prop
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
f0f1583817 Added CouponInput component
no-issue

This can be used in the subscribe pages to pass coupon info through
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
5b063659d0 Added support for disabled form elements
no-issue

This can be used for a coupon input in future
2019-05-07 17:15:50 +02:00
Rish
f3722b6979 Added spinner on member signup pages
no issue
2019-05-07 17:15:50 +02:00
Rish
ab2f65e5a5 Updated member signin page to show logged in status
no issue
2019-05-07 17:15:50 +02:00
Zimo
26728c50a8 Added fade in for signup complete page 2019-05-07 17:15:50 +02:00
Peter Zimon
09fde87ad9 Members refinements (#10689)
* Updated close animation speed for members pages
* Updated responsive styles for members mobile screens 
* Adding spinner CSS to members pages
* Adding members signup complete page
2019-05-07 17:15:50 +02:00
Rish
19f243aed1 Refactored members auth flow with dynamic settings
no issue

- Updated members auth flow UI
- Updated members settings and routing to be dynamic
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
33c574f257 Added support for serverside rendering of members content (#10522)
no-issue

- Added member auth middleware to siteApp
- Passed member as context in routing service
- set Cache-Control: private for member requests
- fucked up some tests
- Added member as global template variable
- Updated tokens to have expiry of subscription_period_end
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
b51b6b1d43 Added upgrade page to members auth (#10513)
no-issue
2019-05-07 17:15:50 +02:00
Zimo
3fbe1981d0 Applying basic styles to members popups
no issue
2019-05-07 17:15:50 +02:00
Rish
84d09e7dc6 Updated members modal UI structure
no issue
2019-05-07 17:15:50 +02:00
Rishabh Garg
7d826c4b44 Updated signup page for members (#10493)
no issue

* Added new subscribe page with stripe integration
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
b1a1f61d5d Refactored auth pages for future flows (#10458)
no-issue

* Used camelCase for gateway method calls
* Added some components for building blocks of forms
* Added input specific components
* Added Form component
    This handles collecting the data to submit and sharing state between forms
* Added Pages component to handle urls
* Added the pages for the popup
* Added MembersProvider component
    This is designed to give its children access to gateway methods
* Added Modal component
    This wraps the pages and handles dispatching form submissions to the members gateway
* Refactored index.js to use new components/pages
* Fixed default page from Signup -> Signin
2019-05-07 17:15:50 +02:00
Rish
0755036926 Fixed console getting cleared on dev start
closes https://github.com/TryGhost/Ghost/issues/10409

- Removed `clearConsole` on preact cli
2019-05-07 17:15:50 +02:00
Rish
42bed3c22d Fixed error handling for members reset password
no-issue

- Both input and form error was shown on submitting reset-password form
- Does not submit form anymore in case of validation errors
2019-05-07 17:15:50 +02:00
Peter Zimon
e85a6a1cac Members auth ui refinements (#10279)
* Update mobile modal animations
* Member popup input error and placeholder refinements
* Adding close animation to members auth popups
* Improve members auth dialog
* Refine members reset password design
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
07b6e73bd8 Added members lib module (#10260)
* Added members library inc. gateway

refs #10213

* Added the auth pages and build steps for them

refs #10213

* Cleaned up logs

* Updated gruntfile to run yarn for member auth

* Design refinements on members popups

* UI refinements

* Updated backend call to trigger only if frontend validation passes

* Design refinements for error messages

* Added error message for email failure

* Updated request-password-reset to not attempt to send headers twice

* Updated preact publicPath to relative path

* Build auth pages on init
2019-05-07 17:15:50 +02:00
Rish
58084ac96e Updated to use slugify method from SDK for safe string
refs #10618

- Updated lib safe string security method
2019-05-07 15:33:07 +05:30
Fabien O'Carroll
8d8c8a69ca Published new versions
- @tryghost/members-ssr@0.1.5
2019-05-06 12:25:45 +02:00
Fabien O'Carroll
7e5733998e Removed request stream consumption unless required
no-issue

This is to avoid the getMemberDataFromCookie helper consuming the
request stream before other handlers can read from it.
2019-05-06 12:23:27 +02:00
Fabien O'Carroll
9f307746ca Published new versions
- @tryghost/members-browser-auth@0.1.1
 - @tryghost/members-gateway-api@0.1.2
 - @tryghost/members-gateway-protocol@0.1.1
 - @tryghost/members-ssr@0.1.4
 - @tryghost/members-theme-bindings@0.1.0
2019-04-23 16:47:39 +02:00
Renovate Bot
67135f58e8 Pin dependencies 2019-04-23 16:46:09 +02:00
Fabien O'Carroll
ce7f55b7b9 Added clean commands for prebuild and pretest
no-issue
2019-04-23 16:45:05 +02:00
Fabien O'Carroll
5b8fe0f643 Updated init method to take siteUrl named param 2019-04-23 16:42:11 +02:00
Fabien O'Carroll
87690f9a03 Added members-theme-bindings module
no-issue
2019-04-23 16:42:11 +02:00
Renovate Bot
9e996857bc Update dependency jsdom to v15 2019-04-23 10:16:13 +02:00
Renovate Bot
7187a4e074 Pin dependency keypair to 1.0.1 2019-04-23 10:15:48 +02:00
Renovate Bot
b5e9bf7047 Update dependency jsdom to v14.1.0 2019-04-22 03:43:40 +00:00
Renovate Bot
f374362ba5 Update Test & linting packages 2019-04-22 01:29:05 +00:00
Renovate Bot
2045157cb6 Update Test & linting packages 2019-04-22 01:28:43 +00:00
Fabien O'Carroll
c70f1c7b45 Published new versions
- @tryghost/members-browser-auth@0.1.0
 - @tryghost/members-gateway-api@0.1.1
2019-04-18 14:09:55 +02:00
Fabien O'Carroll
bfa1354ef4 Updated gateway-api package.json 2019-04-18 14:08:11 +02:00
Fabien O'Carroll
d5972c137c Added initial browser-auth package 2019-04-18 14:07:59 +02:00
Fabien O'Carroll
3432d6801b Published new versions
- @tryghost/members-gateway-api@0.1.0
2019-04-18 13:50:06 +02:00
Fabien O'Carroll
8fe55f2306 Added initial gateway-api module 2019-04-18 13:49:26 +02:00
Fabien O'Carroll
6aa6da6da0 Published new versions
- @tryghost/members-gateway-protocol@0.1.0
 - @tryghost/members-ssr@0.1.3
2019-04-18 13:09:32 +02:00
Fabien O'Carroll
13b7f536e8 Enabled public access for members-gateway-protocol 2019-04-18 12:21:56 +02:00
Fabien O'Carroll
e0643344a2 Published new versions
- @tryghost/members-ssr@0.1.2
2019-04-18 12:16:29 +02:00
Fabien O'Carroll
766635ab85 Fixed lint task for members-ssr package 2019-04-18 11:40:42 +02:00
Fabien O'Carroll
8ce18f2b4b Removed sdk dir (#6) 2019-04-18 11:40:22 +02:00
Fabien O'Carroll
182b43b5b2 Created members-gateway-protocol package (#5) 2019-04-18 11:03:44 +02:00
Fabien O'Carroll
99c4a454ad Added support for signup buttons w/ coupons
no-issue

This will allows themes to have an element like:
<el data-members-signup data-members-coupon="blah"/>

To open the signup page, and optionally apply a coupon
2019-04-17 11:30:51 +02:00
Fabien O'Carroll
3c3cbabacf Refactored dropin script event handlers
no-issue
2019-04-17 11:30:51 +02:00
Fabien O'Carroll
547b27aa68 Added signup method to open signup page w/ coupon
no-issue

This is so that coupons can be passed to the auth pages
2019-04-17 11:30:51 +02:00
Rish
cf7c8df6f7 Published new versions
- @tryghost/members-ssr@0.1.1
2019-04-16 19:14:57 +05:30
Rish
a9453604cc Updated publish config 2019-04-16 19:13:45 +05:30
Rish
8fd78ab221 Published new versions
- @tryghost/members-ssr@0.1.0
2019-04-16 18:14:59 +05:30
Fabien O'Carroll
b22d254c12 Updated members-ssr package name 2019-04-16 12:28:58 +02:00
Fabien O'Carroll
60cdf82354 Removed lazy loading 2019-04-16 12:22:55 +02:00
Fabien O'Carroll
de410052dd Removed lint task for members-ssr
no-issue

For some reason this task hangs. Need to fix
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
68fa28b4f5 Updated dropin script to use SSR tokens
no-issue

This finalises the use of SSR for the dropin script
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
73b18e6566 Added getSSRToken method to members layer2
no-issue

This fetches a token with an audience of the members api to be used with SSR
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
cd5a9d0c6b Fixed lazy load of auth pages
no-issue

dumb mistake, cant call then on a function
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
37266cf552 Added getConfig method to members layer1
no-issue

This can be used for fetching information about the members api
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
ee11ef5cf4 Added lazyLoad support for auth pages
no-issue
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
ae32d3e2b5 Updated README
no-issue
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
32e81fb030 Updated example
no-issue
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
27bb3a6955 Updated theme-dropin to use correct audience for SSR
no-issue

This is to be inline with the updated use of audience claims
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
632fdce8b1 Added deleteSession method
no-issue

This will be used for logout
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
8ae95f6d32 Updated to return Promise.reject rather than throw
no-issue

This is cleaner IMO
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
eaf163cb9c Updated to use membersApi iss as expected aud
no-issue

This is because we now use specific URLs for audiences claims, e.g. for
members running locally the audience would be:

    - http://localhost:2368/ghost/api/v2/members/
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
524e32bed5 Removed unused token parsing and cookie checks
no-issue

We no longer store anything in document.cookie, so all of this code is
redundant
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
17fd366e3b Updated SDK to use new serverside rendering
no-issue
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
db74ef3d1a Used return value of {set,remove}Cookie
no-issue

Soon these functions will make network calls, returning them allows us to use promises
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
02468bfe0c Fixed cookie verification handling
no-issue

turns out the get method fails if the cookie is missing, rather than returning null
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
1ee0720ed5 Ran yarn add concat-stream
no-issue

Used for getting contents of request stream
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
5c9ed65b06 Added runnable example w/ mock membersApi 2019-04-16 12:22:55 +02:00
Fabien O'Carroll
2e40e253d6 Implemented MVP 2019-04-16 12:22:55 +02:00
Fabien O'Carroll
47f46d5b9b Added example usage to README 2019-04-16 12:22:55 +02:00
Fabien O'Carroll
e55430c726 Ran yarn add --dev keypair 2019-04-16 12:22:55 +02:00
Fabien O'Carroll
d4a8e3dc1e Ran yarn add cookies jsonwebtoken 2019-04-16 12:22:55 +02:00
Fabien O'Carroll
803b09664c Ran slimer new members-ssr 2019-04-16 12:22:55 +02:00
Renovate Bot
58f3f93822 Update dependency mocha to v6.1.3 2019-04-15 01:28:32 +00:00
Renovate Bot
7c19484dd2 Update dependency mocha to v6.1.1 2019-04-08 01:29:25 +00:00
Hannah Wolfe
982e045ba4 Update README.md to mention ui.log
- added missing docs for ui.log
2019-04-05 12:41:24 +01:00
Nazar Gargol
8a36066e81 Published new versions
- @tryghost/pretty-cli@1.2.1
 - @tryghost/release-utils@0.3.2
2019-04-05 15:52:24 +08:00
Nazar Gargol
931be83e7d Fixed repository reference for pretty-cli 2019-04-05 15:50:03 +08:00
Renovate Bot
8871293364 Update dependency sinon to v7.3.1 2019-03-27 12:08:01 +00:00
Fabien O'Carroll
cbbd28cc90 Ensured that signups/signins get fresh token
no-issue

This is to avoid any weirdness around the two requests for signup to a
paid site. First we have the signup request, and then we have the create
subscription request. After the first signup request a "signedin" event
is fired, fetching a token, but one without any plans.
2019-03-25 09:35:07 +01:00
Fabien O'Carroll
036b195af9 Fixed upgrade not updating member state on reload
no-issue

The problem here is that upgrade would recieve the same token from the
localStorage cache, rather than a brand new token with the plan info.
2019-03-25 09:35:07 +01:00
Fabien O'Carroll
487326aef5 Updated layer2 to pass fresh param to layer1
no-issue

This is needed so that the theme dropin script can ensure that a new
token is recieved after upgrade
2019-03-25 09:35:07 +01:00
Fabien O'Carroll
709a1cce4e Updated layer1 to pass fresh param to gateway
no-issue

This is needed so that we can request a brand new token from layer1, in
the instance of knowing user data has changed, we can have a token whihc
reflects it.
2019-03-25 09:35:07 +01:00
Fabien O'Carroll
5dfcbb6b5e Added missing semicolons
no-issue
2019-03-25 09:35:07 +01:00
Fabien O'Carroll
e553ea6e02 Corrected refs for content-api and layer1 deps
no-issue

content-api is not in same repo any more, layer1 brought inline with how
layer2 works
2019-03-25 09:35:07 +01:00
Rish
074c15acc3 Published new versions
- @tryghost/release-utils@0.3.1
2019-03-18 00:59:53 +05:30
Rish
ec94fb9529 🐛 Fixed changelog getting set as empty
no issue

- Changelog was set as empty due to concat creating new arrays
2019-03-18 00:43:40 +05:30
Rish
51693d0b5e Published new versions
- @tryghost/release-utils@0.3.0
2019-03-17 17:53:49 +05:30
Rish
86132d0681 releases.create accepts changelogPath as single path or array
- changelogPath can be a single path as before, or an array of paths with optional content which will be pre-pended
- Removed non-generic casper option from releases.create options
2019-03-17 17:53:17 +05:30
Rish
fc28d5e13f Published new versions
- @tryghost/release-utils@0.2.1
2019-03-17 13:27:05 +05:30
Rish
d0bde8c9bc Added casper changelog option to release draft
no issue

- Added option to allow appending casper changelog to main release draft
- Uses capser changelog path and new version info to append casper changes
2019-03-17 13:16:07 +05:30
kirrg001
dba3b43708 Published new versions
- @tryghost/release-utils@0.2.0
2019-03-14 17:13:24 +01:00
kirrg001
5247eb95f5 releases.create accepts optional content array
no issue

e.g. content: ['line\n']
2019-03-14 17:12:08 +01:00
kirrg001
0b49f17250 Published new versions
- @tryghost/release-utils@0.1.1
2019-03-14 16:52:23 +01:00
kirrg001
d7c930d278 🐛 Fixed changelog entry with emoji not being detected
no issue
2019-03-14 16:51:47 +01:00
kirrg001
89c555e29f Published new versions
- @tryghost/release-utils@0.1.0
2019-03-14 16:39:58 +01:00
kirrg001
696b87b103 Added more emoji tests
no issue
2019-03-14 16:35:48 +01:00
Rish
e6e5209a8c Moved members SDK packages from Ghost-SDK 2019-03-14 13:16:15 +05:30
Rish
ef01a65da5 Initial commit 2019-03-14 12:14:23 +05:30
Fabien O'Carroll
23fd4702a0 Fixed emoji tests to use correct input data 2019-03-13 17:01:29 +01:00
Fabien O'Carroll
df57b8c944 Refactored emoji filtering to only loop once
Small perf improvment, also easier to read now because we can use 0
index which is more obvious as to what we're doing
2019-03-13 17:01:29 +01:00
Fabien O'Carroll
c681b8e9be Refactored line parsing to use regex
Was having issues debugging the index issue, and regex cleans it up a little
2019-03-13 17:01:29 +01:00
Fabien O'Carroll
f8f96b49db Fixed check for emoji index
The emoji *must* be at index=2 as each line looks like:
    "* <commit message>"
We use index=2 to make test whether emoji is first character(s) in the
commit message
2019-03-13 17:01:29 +01:00
Fabien O'Carroll
5e9bf5cfb5 Added error handling to filestream
This would have probably rejected the promise anyway because uncaught
error, but it's better to be explicit
2019-03-13 17:01:29 +01:00
Fabien O'Carroll
d40a44b9a0 Fixed passing request completion handler
We were passing this as the second argument to pipe - ups!
2019-03-13 17:01:29 +01:00
kirrg001
791a1b54b5 [@tryghost/release-utils] Removed unused dependencies
no issue

- ...unused? 👻
2019-03-12 21:55:00 +01:00
Katharina Irrgang
3cb6042b10 Added initial implementation of @tryghost/release-utils (#7)
- Added the first version of release-utils
- Will release a v0.0.1

- Be able to create changelog.md based on previous version.
- Be able to merge & clean changelog.md.
- Be able to create a gist
- Be able to filter commits by emojis (user-facing changes)
- Be able to create a draft release
- Be able to upload a release zip to Github

The goal is to use our release-utils in multiple places (e.g. in Casper).

We will discuss if we want to replace some of our manual written utilities by existing npm packages. But to avoid breaking everything, we do it iteratively. Our release utils works and was designed based on our needs. We've tested some release utility in the past, they were all not really satisfying. TBC...
2019-03-12 21:53:32 +01:00
Hannah Wolfe
3f9137903e Published new versions
- @tryghost/pretty-cli@1.2.0
2019-03-12 13:39:12 +00:00
Hannah Wolfe
a929b6a0f9 Added full suite of log functions
- matches logging in ignition: https://github.com/TryGhost/Ignition/blob/master/lib/logging/PrettyStream.js#L11
- so that it's possible to add log lines to our CLI tools that have a consistent format
2019-03-10 15:08:53 +00:00
Hannah Wolfe
93dbcef099 🛠 Moved Pretty-CLI into Ghost-Utils repo
- this was originally created in the slimer repo, as that's where it was first used
- it's also used in migrate, should be used in gscan, and hopefully eventually, will also be part of Ghost-CLI
- therefore, it belongs somewhere more general
2019-03-10 14:00:05 +00:00
Hannah Wolfe
2eb39e6c2b Published new versions
- @tryghost/generator-slimer@1.3.0
 - @tryghost/pretty-cli@1.1.4
 - @tryghost/slimer-cli@0.2.3
 - @tryghost/slimer@0.5.0
2019-03-05 17:27:33 +00:00
renovate[bot]
d0b1331c51 Update dependency sinon to v7 (#9) 2019-03-05 17:25:41 +00:00
renovate[bot]
24898228b6 Update dependency mocha to v6 (#8) 2019-03-05 17:22:08 +00:00
renovate[bot]
d7861f390e Update dependency sinon to v6.3.5 (#5) 2019-03-05 16:54:19 +00:00
Hannah Wolfe
aa6971f82f Published new versions
- @tryghost/generator-slimer@1.2.0
 - @tryghost/pretty-cli@1.1.3
 - @tryghost/slimer-cli@0.2.2
 - @tryghost/slimer@0.4.0
2019-03-05 16:15:41 +00:00
Fabien O'Carroll
cfac2339cb Updated members drop-in script to set cookie for SSR (#61)
no-issue
2019-02-25 10:17:58 +01:00
Rish
db8d51f458 Updated members SDK 2019-02-23 17:29:02 +07:00
Fabien O'Carroll
7c360aa51d Updated members SDK to handle upgrade (#52)
no-issue

Adds update method to layer 2

Adds update support to drop in script

Improves flickering
2019-02-23 04:33:14 +01:00
Fabien O'Carroll
8d2bbe5b0d Updated members sdk to latest content-api (#45)
no-issue

* Upgrade to latest content api
* Removed unused closeAuth

* Removed auto close of popup and wait for event
* Added globals to top of file
2019-02-06 17:03:55 +01:00
Hannah Wolfe
e3132f4fe5 Initial commit 2019-01-21 22:07:40 +00:00
Hannah Wolfe
9ca92908ef Updated docs links to best equivalents (#10386)
* Updated docs links to best equivalents
   - Our documentation has been overhauled, this updates the all the old links sprinkled through Ghost
* Update integrity hash
2019-01-17 06:57:37 +00:00
Hannah Wolfe
c0b5d28a78 Updated docs links to best equivalents (#10386)
* Updated docs links to best equivalents
   - Our documentation has been overhauled, this updates the all the old links sprinkled through Ghost
* Update integrity hash
2019-01-17 06:57:37 +00:00
John O'Nolan
0f6809bab5 2019 2019-01-01 14:38:49 +00:00
John O'Nolan
50e83faccd 2019 2019-01-01 14:27:50 +00:00
John O'Nolan
5e10faee8b 2019 2019-01-01 14:07:15 +00:00
Fabien O'Carroll
51be84182d Updated members sdks for third party use (#25)
* Pass container from layer2 for iframes to be attached

* Updated layer2 to resolve with success for auth page methods

* Updated theme dropin to reload when auth method succeeds
2018-12-10 15:55:10 +07:00
Fabien O'Carroll
b990761136 Updated layer2 to listen to close request from auth popup 2018-12-09 14:00:02 +07:00
Fabien O'Carroll
aec178ee8b Removed hash after password reset 2018-12-07 18:59:47 +07:00
Fabien O'Carroll
cf6822ba36 Fixed JWT regex 2018-12-07 16:21:52 +07:00
Fabien O'Carroll
9b105e7590 Members update (#24)
* Ignored build

* Deleted build dir

* Updated layer1 to interface with simplified gateway

* Updated layer1 to only handle gateway

* Updated layer2 to handle gateway & auth, but no DOM

* Updated theme dropin to handle DOM

* Updated layer2;

* Added password-reset flow to the member dropin script

* Reload page after password reset
2018-12-07 14:32:23 +05:30
Zimo
eddcbaff5b Update position of auth iFrame 2018-12-04 19:42:47 +01:00
Zimo
481b9d6459 Update members iFrame style 2018-12-04 19:33:21 +01:00
Zimo
0c8af4fa64 Update members auth iFrame style 2018-12-04 19:24:03 +01:00
Fabien O'Carroll
cb5592d853 Updated member layers (#23)
* Corrected the event handling of layer0

* Updated layer1 to use layer0

* Updated dropin script to read blogUrl from window;
2018-12-04 09:24:04 +05:30
Hannah Wolfe
2315781eb7 Published new versions
- @tryghost/pretty-cli@1.1.2
 - @tryghost/slimer-cli@0.2.1
 - @tryghost/slimer@0.3.1
2018-11-29 16:06:15 +00:00
Hannah Wolfe
66f1ddcbe9 🎨 Update to use files array in package.json
- run `slimer fix package.json` to add a files array everywhere
- manually update slimer-cli to have a files array for bin
- manually update slimer to include commands or else this will break!!
- update pretty-cli to use our standard /lib/ pattern
- this means we only publish what we need to npm, and keeps things cleaner and safer
2018-11-29 16:04:13 +00:00
Fabien O'Carroll
399219b6ea Members layer0 (#22)
* Created initial layer0 sdk

* Updated layer1 to use layer0

* Updated layer2 to accept and pass blogUrl to layer1

* Updated theme-dropin to pass blogUrl to layer2

* Updated yarn.lock
2018-11-23 15:43:16 +07:00
Rishabh Garg
56bbc14d43 Created drop-in script module for ghost themes (#19)
* Added WIP drop-in script for prototype

* Cleaned up theme dropping script module

- Updated layer2 to work with reload as an option, as well as sign-in cta on the page

* Handle cat failure

* Updated SDK data attires

* Used commonjs exports

* Used browserify for the build
2018-11-15 14:36:51 +07:00
Fabien O'Carroll
dacd58c768 Update packages/members/layer2/index.js 2018-11-14 17:36:26 +05:30
Fabien O'Carroll
52759bceb1 Updated layer2 to inline with drop in solution 2018-11-14 17:36:26 +05:30
Fabien O'Carroll
37e8d5b670 Updated README for members layer2 SDK 2018-11-14 15:12:59 +07:00
Fabien O'Carroll
51a5e53c06 Updated layer2 drop in script to set/unset cookies (#17)
* Updated layer2 drop in script to set/unset cookies

* Use ES5 and remove transforms
2018-11-14 15:09:29 +07:00
Fabien O'Carroll
7fdbd57667 Fixed logout for members layer1
no-issue

LocalStorage converts items to strings so "null" was being stored.
2018-11-14 12:06:46 +07:00
Fabien O'Carroll
d4f8fc89a3 Created initial layer2 for Members SDK
closes #9
2018-11-14 08:47:17 +05:30
Fabien O'Carroll
d201b62f73 Fixed jwt sign method call
no-issue
2018-11-13 15:23:36 +05:30
Rish
7366f6bf4c Updated members layer1 to handle create/destroy/get jwt token
closes #11

- Uses signed jwt with NONE algorithm
- Token stored in localStorage
2018-11-12 13:59:59 +07:00
Rish
32ee16a081 Created members-layer1 sdk base structure
closes #8
2018-11-09 13:24:16 +05:30
Katharina Irrgang
7fb0b96f3e Added Node v10 Support (#10058)
* Added Node v10 Support

no issue

Signed-off-by: kirrg001 <katharina.irrgang@googlemail.com>

* Bump amperize to version 0.3.8

no issue

* Bump mysql to version 2.16.0

no issue

- mysql 2.15.0 uses a deprecated notation for timers
- e.g. timers.unenroll()

* Bump sub dependencies

no issue

- e.g. knex-migrator used mysql 2.15.0

* Bump dependencies

no issue

* Replaced `new Buffer` with `Buffer.from`

no issue

- Buffer() is deprecated due to security and usability issues.
- https://nodejs.org/en/docs/guides/buffer-constructor-deprecation/
2018-10-30 15:45:51 +07:00
Hannah Wolfe
d715596b50 Published new versions
- @tryghost/generator-slimer@1.0.7
 - @tryghost/pretty-cli@1.1.1
 - @tryghost/slimer-cli@0.1.8
 - @tryghost/slimer@0.2.1
2018-10-04 20:14:39 +01:00
Hannah Wolfe
45763f9267 📖 Update all README.md files to use full commands
- We don't use aliases in docs, to be as clear as possible
2018-10-04 14:45:02 +01:00
Hannah Wolfe
8bbfaf578c Published new versions
- @tryghost/generator-slimer@1.0.6
 - @tryghost/pretty-cli@1.1.0
 - @tryghost/slimer-cli@0.1.7
 - @tryghost/slimer@0.2.0
2018-10-04 13:37:38 +01:00
Hannah Wolfe
dfe1610a47 🎨 Move Slimer UI into Pretty CLI
- We'll want these log utils in other cli tools
2018-10-04 13:30:59 +01:00
kirrg001
b7b4026fd5 Extended sequence utility
no issue

- support promise and none promise tasks
- helpful if you create an array of operations and not all of the operations/tasks are async
- `response instanceof Promise` does not work for all cases e.g. some usages return a transaction/bookshelf chain
2018-10-03 00:17:45 +02:00
Hannah Wolfe
e80f4e93f2 Published new versions
- @tryghost/generator-slimer@1.0.0
 - @tryghost/pretty-cli@1.0.2
 - @tryghost/slimer-cli@0.1.0
 - @tryghost/slimer@0.1.0
2018-10-01 12:01:30 +01:00
Hannah Wolfe
e7bc545b36 Add support for public vs private
- Projects can be public or private -> they are either oss or not.
  - With flags like this, there is no default. We either want to pass a flag or be prompted later if we forget
  - To achieve this: added a custom sywac type of Switch, that is able to handle this concept
 - We may want to change this to a proper boolean that defaults to true
  - That would be easier, and possibly more sensible for the public tool
2018-09-28 17:59:41 +01:00
Hannah Wolfe
8c1b5cd383 Published new versions
- generator-slimer@0.0.2
 - @tryghost/pretty-cli@1.0.1
 - @tryghost/slimer-cli@0.0.2
 - @tryghost/slimer@0.0.2
2018-09-21 14:15:45 +01:00
Hannah Wolfe
c52b095955 📖 Updated READMEs with more clarity
- Getting used to developing in the monorepo structure
- Add more instructions that are relevant, push people to the top level repo
- Make READMEs as consistent as possible
- PROFIT!
2018-09-21 13:45:33 +01:00
Hannah Wolfe
b305b8582c Published new versions
- @tryghost/pretty-cli@1.0.0
2018-09-21 13:21:25 +01:00
Hannah Wolfe
7f234269a5 Pretty CLI - provide a styled sywac instance
- Initial commit
- Added a mini module to style sywac (http://sywac.io)
- Makes really pretty, easy to read, CLI instances
2018-09-21 13:12:12 +01:00
kirrg001
cb03ca2529 Changed http to https links
no issue

- use https
- replace broken links e.g. docs.ghost.org/themes
2018-08-16 12:13:24 +02:00
kirrg001
1af0dbc717 Fixed tests
no issue

- replace test themes
  - otherwise they are all invalid with the new GScan version
- fix general tests because of Ghost 2.0 logic
2018-08-16 12:13:24 +02:00
kirrg001
a7a3c27a2e Updated docs links
refs #9742

- rebase against master updated some docs links again
- go over code base again and double check that all docs links are correct
- 2.0 will become the latest version on our readme pages
2018-08-16 12:13:24 +02:00
kirrg001
847d4b2f01 Updated docs links
refs #9742

- Ghost 2.0 is coming
- all doc links in 1.0 must use concrete links e.g. docs.ghost.org/v1 or themes.ghost.org/v1.23.0/
- if we release Ghost 2.0, docs.ghost.org will show 2.0 docs
2018-07-20 23:49:16 +02:00
kirrg001
74d6e1681d Updated docs links
refs #9742

- Ghost 2.0 is coming
- all doc links in 1.0 must use concrete links e.g. docs.ghost.org/v1 or themes.ghost.org/v1.23.0/
- if we release Ghost 2.0, docs.ghost.org will show 2.0 docs
2018-07-20 23:49:16 +02:00
Katharina Irrgang
7d9e2a21ad Dynamic Routing: Added migration for routes.yaml file (#9692)
refs #9601

- the home.hbs behaviour for the index collection (`/`) is hardcoded in Ghost
- we would like to migrate all existing routes.yaml files
- we only replace the file if the contents of the routes.yaml file equals the old routes.yaml format (with home.hbs as template)
- updated README of settings folder
- if we don't remove the home.hbs template from the default routes.yaml file, home.hbs will be rendered for any page of the index collection
  - the backwards compatible behaviour was different
  - only render home.hbs for page 1
- remember: the default routes.yaml file reflects how Ghost was working without dynamic routing
2018-06-22 20:28:01 +02:00
kirrg001
83933be526 Removed old jshint/jscs rules
refs bcf5a1bc34

- leftovers
2018-06-02 21:48:23 +02:00
Ivan Akulov
e9d1d34739 Fixed missing Bluebird require in security/password.js (#9624)
no issue
2018-05-28 23:01:01 +02:00
kirrg001
821db41992 🔥 Drop Node v4 Support
no issue

- support ends today
- see https://github.com/nodejs/Release
- removed `use strict`
2018-05-01 14:06:18 +02:00
kirrg001
f83ba3cbf1 🔥 Drop Node v4 Support
no issue

- support ends today
- see https://github.com/nodejs/Release
- removed `use strict`
2018-05-01 14:06:18 +02:00
kirrg001
c19a0c9942 🔥 Drop Node v4 Support
no issue

- support ends today
- see https://github.com/nodejs/Release
- removed `use strict`
2018-05-01 14:06:18 +02:00
kirrg001
a0ee411e6e Added unit tests for models.Invite.add
no issue

- replaced token creation by `lib.common.security`
- added unit tests for adding invites
- allow a different invite status for internal access
2018-04-25 11:56:45 +02:00
kirrg001
5d1a4418bd Added lib.security.password lib
no issue

- move password hashing and password comparison to lib/security/password
- added two unit test
- FYI: password hashing takes ~100ms
  - we could probably mock password hashing in certain cases when unit testing
2018-02-15 21:13:04 +01:00
juan-g
11e9904ff3 Theme translations and blog localisation (#8437)
refs #5345, refs #3801

- Blog localisation
  - default is `en` (English)
  - you can change the language code in the admin panel, see https://github.com/TryGhost/Ghost-Admin/pull/703
  - blog behaviour changes depending on the language e.g. date helper format
  - theme translation get's loaded if available depending on the language setting
  - falls back to english if not available

- Theme translation
  - complete automatic translation of Ghost's frontend for site visitors (themes, etc.), to quickly deploy a site in a non-English language
  - added {{t}} and {{lang}} helper
  - no backend or admin panel translations (!)
  - easily readable translation keys - very simple translation
  - server restart required when adding new language files or changing existing files in the theme
  - no language code validation for now (will be added soon)
  - a full theme translation requires to translate Ghost core templates (e.g. subscriber form)
  - when activating a different theme, theme translations are auto re-loaded
  - when switching language of blog, theme translations are auto re-loaded

- Bump gscan to version 1.3.0 to support more known helpers

**Documentation can be found at https://themes.ghost.org/v1.20.0/docs/i18n.**
2018-01-09 14:50:57 +01:00
John O'Nolan
eac6a2df3a 2018 2018-01-02 21:44:41 +00:00
kirrg001
69c1e2647d Moved zip folder, read csv and package-json to lib/fs
refs #9178, refs 849e97640f

- i've reconsidered, these modules belong to lib
- prettify package-json module
2017-12-14 22:07:53 +01:00
kirrg001
4b168db2be Moved zip folder, read csv and package-json to lib/fs
refs #9178, refs 849e97640f

- i've reconsidered, these modules belong to lib
- prettify package-json module
2017-12-14 22:07:53 +01:00
kirrg001
7f77fe2dbb Moved utils constants to lib/constants
refs #9178
2017-12-14 14:13:40 +01:00
kirrg001
72911862e7 Moved unique identifier generation to lib/security
refs #9178
2017-12-14 13:52:20 +01:00
kirrg001
411ce69006 Moved tokens, url safe and safe string utility to lib/security
refs #9178

- we could now also move any crypto usages to lib/security, but no priority
- the main goal is to tidy up our utils folder
2017-12-14 13:38:00 +01:00
kirrg001
137016ab94 Moved pipeline/sequence to lib/promise
refs #9178

- continue with killing our global utils folder
- i haven't found any better naming for lib/promise
- so, require single files for now
- instead of doing `promiseLib = require('../lib/promise')`
- we can optimise the requires later
2017-12-13 22:20:02 +01:00
Katharina Irrgang
1c5e9d9ed3 Tests: Sort out usage of content folder in tests (#9034)
no issue

- use latest casper in test fixtures
- never ever use the root content folder for tests
- if we start/fork Ghost for the tests, we use a tmp folder
- this change is required to for an upcoming PR (#9029)
- i've added a TODO to create a helper fn for stopping the ghost server, so we can cleanup the tmp folder

* Care about TODO's in our channels spec

- add the 1.4 compatible casper theme to fixtures
- so as soon as you start Ghost, the test env will provide the content folder in /tmp something with the activated latest default casper and the 1.4 compatible old casper
- there are tests which tests different logici e.g. pagination
- therefor we need a different theme, we are simply using our 1.4 casper
2017-09-21 15:05:35 +01:00
Katharina Irrgang
4afb9a691c feature: define redirects in a custom file (#7719) (#7945)
refs #7707

- be able to add a custom redirect file into the content folder
- define redirects as JSON format

The redirects feature is already present in the LTS branch.
I was not able to cherry-pick over, too many changes or conflicts.
Creating a PR to ensure 1. tests pass and 2. overview of code changes.
I had to add an example active theme to our test fixture utils, because otherwise Ghost will complain when forking Ghost.
2017-02-06 15:32:40 +01:00