0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-01-06 22:40:14 -05:00
Independent technology for modern publishing, memberships, subscriptions and newsletters.
Find a file
Katharina Irrgang 4e7779b783 🎨 remove token logic from user model (#7622)
* 🔥  remove User model functions

- validateToken
- generateToken
- resetPassword
- all this logic will re-appear in a different way

Token logic:
- was already extracted as separate PR, see https://github.com/TryGhost/Ghost/pull/7554
- we will use this logic in the controller, you will see in the next commits

Reset Password:
Was just a wrapper for calling the token logic and change the password.
We can reconsider keeping the function to call: changePassword and activate the status of the user - but i think it's fine to trigger these two actions from the controlling unit.

* 🔥  remove password reset tests from User model

- we already have unit tests for change password and the token logic
- i will re-check at the end if any test case is missing - but for now i will just burn the tests

*   add token logic to controlling unit

generateResetToken endpoint
- the only change here is instead of calling the User model to generate a token, we generate the token via utils
- we fetch the user by email, and generate a hash and return

resetPassword endpoint
- here we have changed a little bit more
- first of all: we have added the validation check if the new passwords match
- a new helper method to extract the token informations
- the brute force security check, which can be handled later from the new bruteforce middleware (see TODO)
- the actual reset function is doing the steps: load me the user, compare the token, change the password and activate the user
- we can think of wrapping these steps into a User model function
- i was not sure about it, because it is actually part of the controlling unit

[ci skip]

* 🎨  tidy up

- jscs
- jshint
- naming functions
- fixes

*   add a test for resetting the password

- there was none
- added a test to reset the password

* 🎨  add more token tests

- ensure quality
- ensure logic we had

* 🔥  remove compare new password check from User Model

- this part of controlling unit

*   compare new passwords for user endpoint

- we deleted the logic in User Model
- we are adding the logic to controlling unit

* 🐛  spam prevention forgotten can crash

- no validation happend before this middleware
- it just assumes that the root key is present
- when we work on our API, we need to ensure that
  1. pre validation happens
  2. we call middlewares
  3. ...

* 🎨  token translation key
2016-11-07 11:18:50 +00:00
.github Fix broken troubleshooting link in contributing.md (#7481) 2016-10-04 18:04:18 +01:00
content 🎨 add logs folder to content folder (#7635) 2016-10-28 14:27:02 +01:00
core 🎨 remove token logic from user model (#7622) 2016-11-07 11:18:50 +00:00
.editorconfig Various post-repo-split cleanup (#6910) 2016-07-12 11:55:46 -06:00
.gitignore 🎨 add logs folder to content folder (#7635) 2016-10-28 14:27:02 +01:00
.gitmodules Add Admin-Client as submodule at core/client 2016-05-19 14:20:18 +01:00
.jscsrc Various post-repo-split cleanup (#6910) 2016-07-12 11:55:46 -06:00
.jshintrc improvement: jshint/jscs 2016-06-17 22:59:47 +02:00
.knex-migrator knex migrator (#7565) 2016-10-17 13:50:29 +01:00
.npmignore Mail consolidation 2015-08-20 11:36:14 +02:00
.travis.yml 🔥 remove postgres support 2016-09-20 15:59:34 +01:00
Gruntfile.js 🎨 grunt release .knex-migrator (#7591) 2016-10-24 10:18:04 +01:00
gulpfile.js 🎨 improve gulp dev reload behaviour (#7543) 2016-10-11 14:06:07 +02:00
index.js Error creation (#7477) 2016-10-06 13:27:35 +01:00
LICENSE Update LICENSE 2016-01-03 15:03:34 +02:00
package.json chore(package): update ghost-editor to version 0.1.4 (#7686) 2016-11-07 11:49:46 +01:00
PRIVACY.md Switch to new native system font stack (#7219) 2016-08-18 20:29:46 +01:00
README.md knex migrator (#7565) 2016-10-17 13:50:29 +01:00
SECURITY.md Update SECURITY.md 2016-01-13 18:22:09 +02:00

Ghost Build status

Warning: Major release in progress. Expect things to be broken in master.

The project is maintained by a non-profit organisation called the Ghost Foundation, along with an amazing group of independent contributors. We're trying to make publishing software that changes the shape of online journalism.

NOTE: If youre stuck, cant get something working or need some help, please head on over and join our Slack community rather than opening an issue.

 

Quick Start Install

First, youll need Node.js v4 LTS or a supported version.

  1. Download the latest release of Ghost
  2. Unzip, and fire up terminal
  3. npm install --production
  4. Start Ghost!
    • Local environment: npm start
    • On a server: npm start --production
  5. http://localhost:2368/ghost 🎉

More install docs here in case you get stuck.

 

Developer Install

This is for if you want to hack on Ghost core. First, youll need Node.js v4 LTS or a supported version. Then:

git clone git://github.com/tryghost/ghost.git
cd ghost

Install grunt

npm install -g grunt-cli

Install knex-migrator

npm install -g knex-migrator

Install Ghost

npm install

Build the things!

grunt init

Start your engines

grunt dev

Congrats! You made it. BTW you can also just npm install ghost if you're into that sort of thing. NPM aficionados can also read up on using Ghost as an NPM module. More general install docs here in case you got stuck.

 

Deploying Ghost

Ghost(Pro)

The easiest way to deploy Ghost is with our official Ghost(Pro) managed service. You can have a fresh instance up and running in a couple of clicks with a worldwide CDN, backups, security and maintenance all done for you.

Not only will it save you many hours per month, but all revenue goes to the Ghost Foundation, which funds the maintenance and further development of Ghost itself. So youll be supporting open source software and getting a great service at the same time! Talk about win/win. 🏆

Other options are also available if you prefer playing around with servers by yourself, of course. The freedom of choice is in your hands.

 

Staying Up to Date

When a new version of Ghost comes out, you'll want to look over these upgrade instructions for what to do next.

You can talk to other Ghost users and developers in our public Slack team (it's pretty awesome). We have a public meeting every Tuesday at 5:30pm UK time.

New releases are announced on the dev blog. You can subscribe by email or follow @TryGhost_Dev on Twitter, if you prefer your updates bite-sized and facetious. 🎷🐢

 

Copyright & License

Copyright (c) 2013-2016 Ghost Foundation - Released under the MIT license.