diff --git a/client/homebrew/editor/metadataEditor/metadataEditor.less b/client/homebrew/editor/metadataEditor/metadataEditor.less
index 5768c9a..89683e0 100644
--- a/client/homebrew/editor/metadataEditor/metadataEditor.less
+++ b/client/homebrew/editor/metadataEditor/metadataEditor.less
@@ -67,4 +67,8 @@
.button(@red);
}
}
+ .authors.field .value{
+ font-size: 0.8em;
+ line-height : 1.5em;
+ }
}
\ No newline at end of file
diff --git a/server.js b/server.js
index 0b447dd..f34df04 100644
--- a/server.js
+++ b/server.js
@@ -22,15 +22,16 @@ require('mongoose')
//Account MIddleware
-router.use((req, res, next) => {
+app.use((req, res, next) => {
if(req.cookies && req.cookies.nc_session){
- req.user = jwt.decode(req.cookies.nc_session, config.get('secret'));
+ try{
+ req.account = jwt.decode(req.cookies.nc_session, config.get('secret'));
+ }catch(e){}
}
return next();
});
-
app.use(require('./server/homebrew.api.js'));
app.use(require('./server/admin.api.js'));
@@ -40,13 +41,6 @@ const welcomeText = require('fs').readFileSync('./client/homebrew/pages/homePage
const changelogText = require('fs').readFileSync('./changelog.md', 'utf8');
-var sanitizeBrew = function(brew){
- var cleanBrew = _.assign({}, brew);
- delete cleanBrew.editId;
- return cleanBrew;
-};
-
-
//Source page
String.prototype.replaceAll = function(s,r){return this.split(s).join(r)}
@@ -63,6 +57,20 @@ app.get('/source/:id', (req, res)=>{
});
+app.get('/user/:username', (req, res, next) => {
+ const fullAccess = req.account && (req.account.username == req.params.username);
+ HomebrewModel.getByUser(req.params.username, fullAccess)
+ .then((brews) => {
+ req.brews = brews;
+ return next();
+ //return res.json(brews)
+ })
+ .catch((err) => {
+ console.log(err);
+ })
+})
+
+
app.get('/edit/:id', (req, res, next)=>{
HomebrewModel.get({editId : req.params.id})
.then((brew)=>{
@@ -109,6 +117,8 @@ app.get('/print/:id', (req, res, next)=>{
//Render Page
app.use((req, res) => {
+
+ console.log('user', req.account);
vitreumRender({
page: './build/homebrew/bundle.dot',
globals:{
@@ -119,7 +129,8 @@ app.use((req, res) => {
url: req.originalUrl,
welcomeText : welcomeText,
changelog : changelogText,
- brew : req.brew
+ brew : req.brew,
+ brews : req.brews
},
clearRequireCache : !process.env.PRODUCTION,
}, (err, page) => {
diff --git a/server/homebrew.api.js b/server/homebrew.api.js
index 9322327..934cb22 100644
--- a/server/homebrew.api.js
+++ b/server/homebrew.api.js
@@ -16,8 +16,6 @@ refreshCount();
-
-
const getTopBrews = (cb)=>{
HomebrewModel.find().sort({views: -1}).limit(5).exec(function(err, brews) {
cb(brews);
@@ -39,7 +37,10 @@ const getGoodBrewTitle = (text) => {
router.post('/api', (req, res)=>{
- const newHomebrew = new HomebrewModel(req.body);
+ const newHomebrew = new HomebrewModel(_.merge({},
+ req.body,
+ {authors : [req.account.username]}
+ ));
if(!newHomebrew.title){
newHomebrew.title = getGoodBrewTitle(newHomebrew.text);
}
@@ -57,6 +58,7 @@ router.put('/api/update/:id', (req, res)=>{
.then((brew)=>{
brew = _.merge(brew, req.body);
brew.updatedAt = new Date();
+ brew.authors = _.uniq(_.concat(brew.authors, req.account.username));
brew.save((err, obj)=>{
if(err) throw err;
return res.status(200).send(obj);
diff --git a/server/homebrew.model.js b/server/homebrew.model.js
index 8b9ec79..b730738 100644
--- a/server/homebrew.model.js
+++ b/server/homebrew.model.js
@@ -55,6 +55,22 @@ HomebrewSchema.statics.get = function(query){
});
};
+HomebrewSchema.statics.getByUser = function(username, allowAccess=false){
+ return new Promise((resolve, reject) => {
+ let query = {authors : username, published : true};
+ if(allowAccess){
+ delete query.published;
+ }
+ Homebrew.find(query, (err, brews)=>{
+ if(err) return reject('Can not find brew');
+ return resolve(_.map(brews, (brew)=>{
+ return brew.sanatize(!allowAccess);
+ }));
+ });
+ });
+};
+
+
var Homebrew = mongoose.model('Homebrew', HomebrewSchema);