1 28 29 30 package com.opencms.workplace; 31 32 import org.opencms.file.CmsObject; 33 import org.opencms.file.CmsProject; 34 import org.opencms.file.CmsUser; 35 import org.opencms.main.CmsException; 36 import org.opencms.main.CmsSessionInfo; 37 import org.opencms.main.OpenCms; 38 import org.opencms.util.CmsDateUtil; 39 import org.opencms.util.CmsStringUtil; 40 import org.opencms.util.PrintfFormat; 41 42 import java.util.Collections ; 43 import java.util.Hashtable ; 44 import java.util.Iterator ; 45 import java.util.List ; 46 47 57 58 public class CmsAdminLoggedInUsers extends CmsWorkplaceDefault { 59 60 71 72 public byte[] getContent(CmsObject cms, String templateFile, String elementName, 73 Hashtable parameters, String templateSelector) throws CmsException { 74 75 CmsXmlWpTemplateFile xmlTemplateDocument = new CmsXmlWpTemplateFile(cms, templateFile); 76 77 if (parameters.get("message") != null) { 78 OpenCms.getSessionManager().sendBroadcast(cms, (String )parameters.get("message")); 80 } 81 82 List sessionInfos = OpenCms.getSessionManager().getSessionInfos(); 83 Collections.sort(sessionInfos); 85 StringBuffer ret = new StringBuffer (); 86 Iterator i = sessionInfos.iterator(); 87 int count = 1; 88 PrintfFormat format = new PrintfFormat("%3.3d"); 89 while (i.hasNext()) { 90 try { 91 CmsSessionInfo info = (CmsSessionInfo)i.next(); 92 CmsUser cmsUser = info.getUser(); 93 CmsProject cmsProject = cms.readProject(info.getProject()); 94 xmlTemplateDocument.setData("username", cmsUser.getName()); 95 xmlTemplateDocument.setData("firstname", cmsUser.getFirstname()); 96 xmlTemplateDocument.setData("lastname", cmsUser.getLastname()); 97 xmlTemplateDocument.setData("email", cmsUser.getEmail()); 98 xmlTemplateDocument.setData("currentgroup", 100 format.sprintf(count) 101 + " - " 102 + CmsDateUtil.getDateTimeShort(info.getTimeCreated()) 103 + " - " 104 + CmsStringUtil.formatRuntime(System.currentTimeMillis() - info.getTimeUpdated())); 105 xmlTemplateDocument.setData("messagepending", 106 String.valueOf(!info.getBroadcastQueue().isEmpty())); 107 xmlTemplateDocument.setData("currentproject", 108 cmsProject.getName() 109 + " - " 110 + info.getSiteRoot()); 111 ret.append(xmlTemplateDocument.getProcessedDataValue("line")); 112 count++; 113 } catch (Exception exc) { 114 } 116 } 117 118 xmlTemplateDocument.setData("all_lines", ret.toString()); 119 120 return startProcessing(cms, xmlTemplateDocument, elementName, parameters, templateSelector); 122 } 123 } 124
| Popular Tags
|