// Use the Report $resource to fetch all reports
Report.query(function (reports) {
$scope.reports = reports;
- socket.syncUpdates('report:' + userId, $scope.reports);
+ socket.syncUpdates('report', $scope.reports);
});
// Use the User $resource to fetch all users
};
$scope.$on('$destroy', function () {
- socket.unsyncUpdates('report:' + userId);
+ socket.unsyncUpdates('report');
});
});
td {{(users | filter: {_id:report.user})[0]["name"]}}
td {{report.filename}}
td
- span.label(ng-repeat="ref in referentials", ng-if="report.referential[ref] != 'error'", ng-class="report.referential[ref] == 'valid' ? 'label-success' : 'label-warning'") {{ref}}
+ span.label(ng-repeat="ref in referentials", ng-if="report.referential[ref] != 'error'", ng-class="report.referential[ref] == 'valid' ? 'label-success' : 'label-warning'") {{ref}}
td
i.text-success.fa-2x.fa.fa-check(ng-show='report.isGenerated')
i.text-danger.fa-2x.fa.fa-times(ng-show='!report.isGenerated')
router.post('/', cpUpload, auth.isAuthenticated(), controller.create);
router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-router.delete('/', auth.isAuthenticated(), controller.purge);
+router.delete('/', auth.hasRole('admin'), controller.purge);
module.exports = router;
\ No newline at end of file
}
// Send generation worker
launchWorker(report);
+
+ user.reportCounter = !user.reportCounter ? 1 : user.reportCounter + 1;
+ user.save();
+
// Return ONLY the uuid, you don't need more
return res.status(200).json({id: report._id});
});
// Deletes all report from the DB as a user
exports.purge = function (req, res) {
- Report.find({user: req.user._id, isGenerated: true}, function (err, reports) {
+ Report.find({isGenerated: true}, function (err, reports) {
if (err) {
return handleError(res, err);
}
'use strict';
var Report = require('./report.model');
+var auth = require('../../auth/auth.service');
-exports.register = function(socket) {
- Report.schema.post('save', function (doc) {
- onSave(socket, doc);
- });
- Report.schema.post('remove', function (doc) {
- onRemove(socket, doc);
- });
+exports.register = function (socket) {
+ Report.schema.post('save', function (doc) {
+ onSave(socket, doc);
+ });
+ Report.schema.post('remove', function (doc) {
+ onRemove(socket, doc);
+ });
};
function onSave(socket, doc, cb) {
- socket.emit('report:'+doc.user+':save', doc);
+ socket.emit('report:' + doc.user + ':save', doc);
+ socket.emit('report:save', doc);
}
function onRemove(socket, doc, cb) {
- socket.emit('report:'+doc.user+':remove', doc);
+ socket.emit('report:remove', doc);
}
\ No newline at end of file
exports.create = function (req, res, next) {
var newUser = new User(req.body);
newUser.provider = 'local';
+ newUser.reportCounter = 0;
//newUser.role = 'user';
newUser.save(function (err, user) {
if (err) return validationError(res, err);
delete userData._id;
User.update({_id: user._id}, userData, {upsert: true}, function (err) {
if (err) {
- return res.status(500).send('11000');
+ return res.status(500).send(err);
} else {
return res.status(200).json(user.toObject());
}
var UserSchema = new Schema({
name: String,
referential: Schema.Types.Mixed,
+ reportCounter: Number,
email: {
type: String,
lowercase: true,