Sourcecode in SysMgr/cleanupFunctions.js:
1: function deleteInactiveSites() {
2:
3: return;
4:
5: var enable = root.sys_deleteInactiveSites;
6: var delWarningAfter = root.sys_deleteWarningAfter;
7: var delAfterWarning = root.sys_deleteAfterWarning;
8: if (!enable) {
9: // blocking of private sites is disabled
10: return;
11: } else if (!delWarningAfter || !delAfterWarning) {
12: // something is fishy with properties
13: this.syslogs.add (new SysLog("system", null, "cleanup of sites cancelled", null));
14: return;
15: }
16: var size = root.size();
17: this.syslogs.add (new SysLog("system", null, "checking " + size + " sites for inactivity ...", null));
18:
19: // get thresholds in millis
20: warnThreshold = delWarningAfter*1000*60*60*24;
21: delThreshold = delAfterWarning*1000*60*60*24;
22:
23: for (var i=size;i>0;i--) {
24: var site = root.get(i-1);
25: // if site is trusted, we do nothing
26: if (site.trusted)
27: continue;
28:
29: var idleFor = new Date() - site.lastupdate;
30: var timeSinceWarning = new Date() - site.lastdelwarn;
31: if (idleFor >= warnThreshold) {
32: // check if site-admins have been warned already
33: var alreadyWarned = false;
34: if (site.lastdelwarn > site.lastupdate)
35: alreadyWarned = true;
36: // check whether warn admins or block site
37: if (!alreadyWarned) {
38: // admins of site haven't been warned about upcoming block, so do it now
39: var warning = new Mail();
40: var recipient = site.email ? site.email : site.creator.email;
41: warning.addTo(recipient);
42: warning.setFrom(root.sys_email);
43: warning.setSubject(getMessage("mail.deleteWarning", site.title));
44: var sp = new Object();
45: sp.site = site.alias;
46: sp.url = site.href();
47: sp.inactivity = delWarningAfter;
48: sp.daysleft = delAfterWarning;
49: sp.contact = root.sys_email;
50: warning.addText(this.renderSkinAsString("deletewarnmail", sp));
51: warning.send();
52: this.syslogs.add (new SysLog("site", site.alias, "site was inactive for more than " + delWarningAfter + " days, sent warning to " + recipient, null));
53: site.lastdelwarn = new Date();
54: } else if (timeSinceWarning >= blockThreshold) {
55: // site is inactive for too long, so delete it
56: root.deleteSite(site);
57: }
58: } else
59: break;
60: }
61: this.syslogs.add (new SysLog("system", null, "finished checking for inactive sites", null));
62: return true;
63: }
|