Skip to content

Commit

Permalink
Merge pull request freeCodeCamp#3849 from FreeCodeCamp/feature/block-…
Browse files Browse the repository at this point in the history
…camper-news

Add camper must be auth with gitub to post to news
  • Loading branch information
QuincyLarson committed Oct 23, 2015
2 parents 844f978 + 2ac7045 commit 1fa5db2
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 13 deletions.
48 changes: 36 additions & 12 deletions server/boot/story.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,18 @@ var Rx = require('rx'),
validator = require('validator'),
secrets = require('../../config/secrets');

var foundationDate = 1413298800000;
var time48Hours = 172800000;
import {
ifNoUser401,
ifNoUserRedirectTo
} from '../utils/middleware';

var unDasherize = utils.unDasherize;
var dasherize = utils.dasherize;
var getURLTitle = utils.getURLTitle;
var ifNoUser401 = require('../utils/middleware').ifNoUser401;
const foundationDate = 1413298800000;
const time48Hours = 172800000;

const unDasherize = utils.unDasherize;
const dasherize = utils.dasherize;
const getURLTitle = utils.getURLTitle;
const sendNonUserToNews = ifNoUserRedirectTo('/news');

function hotRank(timeValue, rank) {
/*
Expand Down Expand Up @@ -62,8 +67,16 @@ module.exports = function(app) {

router.get('/news/hot', hotJSON);
router.get('/stories/hotStories', hotJSON);
router.get('/stories/submit', submitNew);
router.get('/stories/submit/new-story', preSubmit);
router.get(
'/stories/submit',
sendNonUserToNews,
submitNew
);
router.get(
'/stories/submit/new-story',
sendNonUserToNews,
preSubmit
);
router.post('/stories/preliminary', ifNoUser401, newStory);
router.post('/stories/', ifNoUser401, storySubmission);
router.get('/news/', hot);
Expand Down Expand Up @@ -102,17 +115,25 @@ module.exports = function(app) {
}

function submitNew(req, res) {
if (!req.user.isGithubCool) {
req.flash('errors', {
msg: 'You must link GitHub with your account before you can post' +
' on Camper News.'
});
return res.redirect('/news');
}

return res.render('stories/index', {
title: 'Submit a new story to Camper News',
page: 'submit'
});
}

function preSubmit(req, res, next) {
function preSubmit(req, res) {
var data = req.query;
if (typeof data.url !== 'string') {
req.flash('errors', { msg: 'No URL supplied with story' });
return next(new TypeError('No URL supplied with story'));
return res.redirect('/news');
}
var cleanedData = cleanData(data.url);

Expand Down Expand Up @@ -264,8 +285,11 @@ module.exports = function(app) {
}

function newStory(req, res, next) {
if (!req.user) {
return next(new Error('Must be logged in'));
if (!req.user.isGithubCool) {
req.flash('errors', {
msg: 'You must authenticate with Github to post to Camper News'
});
return res.redirect('/news');
}
var url = req.body.data.url;

Expand Down
2 changes: 1 addition & 1 deletion server/views/stories/hot-stories.jade
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@
(typeof username !== 'undefined' ?
"<button id='" + data[i].id + "' class='btn btn-no-shadow btn-primary btn-xs btn-primary-ghost btn-upvote'>upvote</button>" :
"<a href='/signin' class='btn btn-no-shadow btn-primary btn-xs btn-primary-ghost'>upvote</a>") +
"<a class='btn btn-no-shadow btn-primary btn-xs btn-primary-ghost hidden' href='/news/" + linkedName + "'>more info</a> · " +
"<a class='btn btn-no-shadow btn-primary btn-xs btn-primary-ghost hidden' href='/news/" + linkedName + "'>more info</a> &nbsp; " +
rank + (rank > 1 ? " points" : " point") + " · posted " +
moment(data[i].timePosted).fromNow() +
" by <a href='/" + data[i].author.username + "'>@" + data[i].author.username + "</a> " +
Expand Down

0 comments on commit 1fa5db2

Please sign in to comment.