Merge pull request +7835 from c9/active-usage

Active usage
pull/117/merge
Lennart Kats 2015-06-19 14:01:30 +02:00
commit c06c3e6f3c
1 zmienionych plików z 18 dodań i 4 usunięć

Wyświetl plik

@ -7,7 +7,8 @@ plugin.consumes = [
"connect.render", "connect.render",
"connect.render.ejs", "connect.render.ejs",
"connect.remote-address", "connect.remote-address",
"vfs.cache" "vfs.cache",
"analytics"
]; ];
plugin.provides = [ plugin.provides = [
"vfs.server" "vfs.server"
@ -34,6 +35,7 @@ function plugin(options, imports, register) {
var passport = imports.passport; var passport = imports.passport;
var connect = imports.connect; var connect = imports.connect;
var render = imports["connect.render"]; var render = imports["connect.render"];
var analytics = imports["analytics"];
var Types = require("frontdoor").Types; var Types = require("frontdoor").Types;
var error = require("http-error"); var error = require("http-error");
@ -43,6 +45,7 @@ function plugin(options, imports, register) {
var section = api.section("vfs"); var section = api.section("vfs");
var VFS_ACTIVITY_WINDOW = 1000 * 60 * 60;
section.registerType("vfsid", new Types.RegExp(/[a-zA-Z0-9]{16}/)); section.registerType("vfsid", new Types.RegExp(/[a-zA-Z0-9]{16}/));
section.registerType("pid", new Types.Number(0)); section.registerType("pid", new Types.Number(0));
@ -59,7 +62,6 @@ function plugin(options, imports, register) {
}, [ }, [
api.ensureAdmin(), api.ensureAdmin(),
function(req, res, next) { function(req, res, next) {
var type = req.params.status.split(".")[1] || "html"; var type = req.params.status.split(".")[1] || "html";
var entries = cache.getAll(); var entries = cache.getAll();
@ -277,7 +279,7 @@ function plugin(options, imports, register) {
err.code = 499; err.code = 499;
return next(err); return next(err);
} }
trackActivity(entry.user);
entry.vfs.handleRest(scope, path, req, res, next); entry.vfs.handleRest(scope, path, req, res, next);
} }
]); ]);
@ -306,10 +308,22 @@ function plugin(options, imports, register) {
err.code = 499; err.code = 499;
return next(err); return next(err);
} }
entry.vfs.handleEngine(req, res, next); entry.vfs.handleEngine(req, res, next);
} }
]); ]);
function trackActivity(user) {
if (new Date(user.lastVfsAccess).getDate() != new Date().getDate() ||
Date.now() > user.lastVfsAccess + VFS_ACTIVITY_WINDOW) {
analytics.identifyClean(user);
analytics.trackClean(user, "VFS is active");
user.lastVfsAccess = Date.now();
user.save(function() {});
}
}
register(null, { register(null, {
"vfs.server": { "vfs.server": {