void searchUsers(String query, AsyncCallback<List<UserDTO>> callback);
- void getSystemStatistics(AsyncCallback<SystemStatsDTO> callback);
+ void getSystemStatistics(AsyncCallback<SystemStatsDTO> callback);
void getLastLoggedInUsers(Date lastLoginDate, AsyncCallback<List<UserDTO>> callback);
@Override
public String getCellValue(final UserDTO rowValue) {
- if(rowValue.getLastLoginDate()==null)
+ if(rowValue.getCurrentLoginDate()==null)
return "no data";
- return DateTimeFormat.getFormat("dd/MM/yyyy hh:mm:ss tt").format(rowValue.getLastLoginDate());
+ return DateTimeFormat.getFormat("dd/MM/yyyy hh:mm:ss tt").format(rowValue.getCurrentLoginDate());
}
@Override
*/
private AbstractImagePrototype getFileIcon(FileResource file) {
String mimetype = file.getContentType();
- boolean shared=false;
+ Boolean shared = false;
Folders folders = GSS.get().getFolders();
if(folders.getCurrent() != null && folders.isOthersSharedItem(folders.getCurrent())){
DnDTreeItem otherUser = (DnDTreeItem) folders.getUserOfSharedItem(folders.getCurrent());
- if(otherUser==null)
+ if(otherUser == null)
shared = false;
else{
String uname = otherUser.getOtherUserResource().getUsername();
- if(uname==null)
+ if(uname == null)
uname = ((DnDTreeItem)folders.getSharesItem()).getOthersResource().getUsernameOfUri(otherUser.getOtherUserResource().getUri());
if(uname != null)
shared = file.getShared();
}
}
else
- shared = file.getShared();
+ shared = file.getShared();
if (mimetype == null)
return shared ? AbstractImagePrototype.create(images.documentShared()) : AbstractImagePrototype.create(images.document());
mimetype = mimetype.toLowerCase();
return;
}
if (folderItem instanceof DnDTreeItem) {
- DnDTreeItem dnd = (DnDTreeItem) folderItem;
+ DnDTreeItem dnd = (DnDTreeItem) folderItem;
if (dnd.getFolderResource() != null) {
- if (GSS.get().getFolders().isTrashItem(dnd))
+ if (GSS.get().getFolders().isTrashItem(dnd)){
+ DisplayHelper.log("------- folderResource is Trash Item ");
setFiles(new ArrayList<FileResource>());
+ }
else
setFiles(dnd.getFolderResource().getFiles());
/**
* Modify the shared.
*
- * @param shared the shared to set
+ * @param _shared the shared to set
*/
- public void setShared(Boolean shared) {
- this.shared = shared;
+ public void setShared(Boolean _shared) {
+ this.shared = _shared;
}
/**
String fname = unmarshallString(fo, "name");
String fowner = unmarshallString(fo, "owner");
String fcontent = unmarshallString(fo, "content");
- String fpath = unmarshallString(fo, "path");
+ Boolean fshared = unmarshallBoolean(fo, "shared");
+ String fpath = unmarshallString(fo, "path");
fpath = URL.decodeComponent(fpath);
Integer fversion = null;
if (fo.get("version") != null)
fs.setCreationDate(fcreationDate);
fs.setModificationDate(fmodificationDate);
fs.setContentType(fcontent);
+ fs.setShared(fshared);
files.add(fs);
}
}
private Boolean active;
private Date lastLoginDate;
+
+ private Date currentLoginDate;
/**
* The user class to which this user belongs.
u.setLastLoginDate(lastLoginDate);
return u;
}
+
+ /**
+ * Modify the currentLoginDate.
+ *
+ * @param _currentLoginDate the currentLoginDate to set
+ */
+ public void setCurrentLoginDate(Date _currentLoginDate) {
+ this.currentLoginDate = _currentLoginDate;
+ }
+
+ /**
+ * Retrieve the currentLoginDate.
+ *
+ * @return the currentLoginDate
+ */
+ public Date getCurrentLoginDate() {
+ return currentLoginDate;
+ }
}
import gr.ebs.gss.server.domain.Permission;
import gr.ebs.gss.server.domain.User;
import gr.ebs.gss.server.domain.UserClass;
+import gr.ebs.gss.server.domain.UserLogin;
import gr.ebs.gss.server.domain.dto.FileBodyDTO;
import gr.ebs.gss.server.domain.dto.FileHeaderDTO;
import gr.ebs.gss.server.domain.dto.FolderDTO;
public List<UserDTO> searchUsers(String query) {
List<User> users = dao.getUsersByUserNameOrEmailLike(query);
List<UserDTO> result = new ArrayList<UserDTO>();
- for (User u : users)
- result.add(u.getDTO());
+ for (User u : users){
+ UserDTO tempDTO = u.getDTO();
+ List<UserLogin> userLogins = dao.getLoginsForUser(u.getId());
+ tempDTO.setCurrentLoginDate(userLogins.get(0).getLoginDate());
+ tempDTO.setLastLoginDate(userLogins.get(1).getLoginDate());
+ result.add(tempDTO);
+ }
return result;
}
@Override
public UserDTO getUser(String username) throws ObjectNotFoundException{
User u = dao.getUser(username);
- if(u!=null)
- return u.getDTO();
+ if(u!=null){
+ UserDTO tempDTO = u.getDTO();
+ List<UserLogin> userLogins = dao.getLoginsForUser(u.getId());
+ tempDTO.setCurrentLoginDate(userLogins.get(0).getLoginDate());
+ tempDTO.setLastLoginDate(userLogins.get(1).getLoginDate());
+ return tempDTO;
+
+ }
return null;
}
@Override
public List<UserDTO> getLastLoggedInUsers(Date lastLoginDate) {
List<User> users = dao.getUsersByLastLogin(lastLoginDate);
List<UserDTO> result = new ArrayList<UserDTO>();
- for (User u : users)
- result.add(u.getDTO());
+ for (User u : users){
+ UserDTO tempDTO = u.getDTO();
+ List<UserLogin> userLogins = dao.getLoginsForUser(u.getId());
+ tempDTO.setCurrentLoginDate(userLogins.get(0).getLoginDate());
+ tempDTO.setLastLoginDate(userLogins.get(1).getLoginDate());
+ result.add(tempDTO);
+ }
return result;
}
-
+
@Override
public List<FileBodyDTO> getVersions(Long userId, Long fileId) throws ObjectNotFoundException, InsufficientPermissionsException {
if (userId == null)
public List<UserDTO> getUsersWaitingActivation(){
List<User> users = dao.getInactiveUsers();
List<UserDTO> result = new ArrayList<UserDTO>();
- for(User u :users)
- result.add(u.getDTO());
+ for(User u :users){
+ UserDTO tempDTO = u.getDTO();
+ List<UserLogin> userLogins = dao.getLoginsForUser(u.getId());
+ tempDTO.setCurrentLoginDate(userLogins.get(0).getLoginDate());
+ tempDTO.setLastLoginDate(userLogins.get(1).getLoginDate());
+ result.add(tempDTO);
+
+ }
return result;
}
for(FileUploadStatus s : sts)
dao.delete(s);
int deleteCount=dao.deletePermissionsNotCorrespondingToFilesAndFolders(userId);
+
+ List<UserLogin> allUserLogins = dao.getAllLoginsForUser(userId);
+ for(UserLogin ul : allUserLogins)
+ dao.delete(ul);
dao.flush();
dao.delete(user);
}
*/
public List<UserLogin> getLoginsForUser (Long userId);
+ /**
+ * Returns a list of all entries related to the date that a user logged in the service.
+ *
+ * @param userId
+ * @return a list of last user login and the current session user login
+ */
+ public List<UserLogin> getAllLoginsForUser (Long userId);
+
}
@Override
public Long getCountUsersByLastLogin(Date lastLoginDate) {
return (Long) manager.createQuery(
- " select count(ul) " +
- " from UserLogin ul " +
- " where ul.loginDate >= :ldate "
+ " select count(distinct ul.user.id) from UserLogin ul " +
+ " where ul.loginDate >=:ldate"
).setParameter("ldate", lastLoginDate).getSingleResult();
}
@Override
public List<User> getUsersByLastLogin(Date lastLoginDate) {
- return manager.createQuery("select user from UserLogin ul " +
- " left join ul.user.id user" +
- " where ul.loginDate >=:ldate" +
- " order by ul.loginDate desc").
- setParameter("ldate", lastLoginDate).getResultList();
+ return manager.createQuery(" select distinct ul.user from UserLogin ul " +
+ " where ul.loginDate >=:ldate ")
+ .setParameter("ldate", lastLoginDate)
+ .getResultList();
}
@Override
return res;
}
+ public List<UserLogin> getAllLoginsForUser (Long userId){
+ List<UserLogin> res = manager
+ .createQuery("select ul from UserLogin ul where ul.user.id=:userId ")
+ .setParameter("userId", userId)
+ .getResultList();
+ return res;
+ }
}
put("deleted", f.isDeleted()).
put("version", f.getVersion()).
put("size", f.getFileSize()).
+ put("shared", f.getShared()).
put("content", f.getMimeType()).
put("path", f.getFolder().getPath()).
put("creationDate", f.getAuditInfo().getCreationDate().getTime()).