Mercurial > hg > LGServices
changeset 26:ce2e3f2814c0
new: check userGroup when login
author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
---|---|
date | Tue, 30 Jun 2015 14:31:29 +0200 |
parents | 86694755415d |
children | 3b3e2963c8f7 aa9b50ad64e6 |
files | src/main/java/de/mpiwg/gazetteer/dataverse/DataverseUtils.java src/main/java/de/mpiwg/gazetteer/dataverse/bo/VDCUser.java src/main/java/de/mpiwg/gazetteer/db/DBSectionVersion.java src/main/java/de/mpiwg/gazetteer/utils/AbstractDataProvider.java src/main/java/de/mpiwg/gazetteer/utils/DBService.java src/main/java/de/mpiwg/gazetteer/utils/DataProvider.java src/main/java/de/mpiwg/web/jsp/SessionBean.java src/main/webapp/pages/books.jsp |
diffstat | 8 files changed, 78 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- a/src/main/java/de/mpiwg/gazetteer/dataverse/DataverseUtils.java Fri Jun 26 11:32:33 2015 +0200 +++ b/src/main/java/de/mpiwg/gazetteer/dataverse/DataverseUtils.java Tue Jun 30 14:31:29 2015 +0200 @@ -1,20 +1,13 @@ package de.mpiwg.gazetteer.dataverse; -import java.io.BufferedReader; -import java.io.DataOutputStream; -import java.io.File; -import java.io.FileInputStream; + import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.net.HttpURLConnection; -import java.net.URL; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.StringUtils; import org.json.JSONArray; +import org.json.JSONException; import org.json.JSONObject; import de.mpiwg.gazetteer.bo.LGBranch; @@ -22,7 +15,6 @@ import de.mpiwg.gazetteer.dataverse.bo.Study; import de.mpiwg.gazetteer.dataverse.bo.VDCUser; import de.mpiwg.gazetteer.utils.DataProvider; -import de.mpiwg.gazetteer.utils.FileManager; import de.mpiwg.gazetteer.utils.HTTPUtils; import de.mpiwg.gazetteer.utils.HTTPUtils.HttpStringResponse; import de.mpiwg.gazetteer.utils.PropertiesUtils; @@ -143,6 +135,7 @@ return "user-no-found ("+ id +")"; } + public static List<VDCUser> getAllUsers() throws Exception{ List<VDCUser> list = new ArrayList<VDCUser>(); @@ -209,6 +202,32 @@ return null; } + public static boolean isUserInGroups(VDCUser user, List<String> userGroups) { + // find user who named userName belongs in what groups. check if the user is in any of the groups in userGroup list + try { + JSONArray groupArray = user.getUserGroups(); + + for(int i=0; i<groupArray.length(); i++){ + JSONObject groupString = groupArray.getJSONObject(i); + + String friendlyName = (String) groupString.get("friendlyName"); + + for(String u : userGroups) { + if(StringUtils.equals(u, friendlyName)) { + return true; + } + } + + } + + } catch (JSONException e) { + + e.printStackTrace(); + } + + return false; + } + }
--- a/src/main/java/de/mpiwg/gazetteer/dataverse/bo/VDCUser.java Fri Jun 26 11:32:33 2015 +0200 +++ b/src/main/java/de/mpiwg/gazetteer/dataverse/bo/VDCUser.java Tue Jun 30 14:31:29 2015 +0200 @@ -1,5 +1,7 @@ package de.mpiwg.gazetteer.dataverse.bo; +import org.json.JSONArray; +import org.json.JSONException; import org.json.JSONObject; import de.mpiwg.gazetteer.utils.JSONUtils; @@ -21,12 +23,15 @@ private Long position; private String password; + private JSONArray userGroups; + public VDCUser(Long id, String userName, String password){ this.id = id; this.userName = userName; this.password = password; } + public VDCUser(JSONObject json){ this.email = JSONUtils.getString(json, "email"); @@ -38,12 +43,30 @@ this.id = JSONUtils.getLong(json, "id"); this.position = JSONUtils.getLong(json, "position"); this.version = JSONUtils.getLong(json, "version"); + + try { + this.userGroups = json.getJSONArray("userGroups"); + } catch (JSONException e) { + // TODO Auto-generated catch block + this.userGroups = null; + e.printStackTrace(); + } } public String getUserName() { return userName; } + public JSONArray getUserGroups() { + return userGroups; + } + + + public void setUserGroups(JSONArray userGroups) { + this.userGroups = userGroups; + } + + public void setUserName(String userName) { this.userName = userName; } @@ -110,7 +133,7 @@ public void setPassword(String password) { this.password = password; - } + } }
--- a/src/main/java/de/mpiwg/gazetteer/db/DBSectionVersion.java Fri Jun 26 11:32:33 2015 +0200 +++ b/src/main/java/de/mpiwg/gazetteer/db/DBSectionVersion.java Tue Jun 30 14:31:29 2015 +0200 @@ -52,10 +52,9 @@ } public String getDate() { - // TODO time zone convert // TODO optional time zone - + // time zone convert SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateInString = this.date;
--- a/src/main/java/de/mpiwg/gazetteer/utils/AbstractDataProvider.java Fri Jun 26 11:32:33 2015 +0200 +++ b/src/main/java/de/mpiwg/gazetteer/utils/AbstractDataProvider.java Tue Jun 30 14:31:29 2015 +0200 @@ -5,7 +5,6 @@ import cl.maps.duplex.DuplexMap; import de.mpiwg.gazetteer.bo.LGBranch; import de.mpiwg.gazetteer.bo.LGFile; -import de.mpiwg.gazetteer.bo.SearchRulesFile; public class AbstractDataProvider { @@ -47,4 +46,6 @@ this.fileMap.put(file.getKey(), file); } } + + }
--- a/src/main/java/de/mpiwg/gazetteer/utils/DBService.java Fri Jun 26 11:32:33 2015 +0200 +++ b/src/main/java/de/mpiwg/gazetteer/utils/DBService.java Tue Jun 30 14:31:29 2015 +0200 @@ -613,7 +613,7 @@ protected static List<LGBranch> getAllLGBranchFromDB(){ List<LGBranch> list = null; - + Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.getTransaction().begin(); Query query = session.createQuery("from LGBranch");
--- a/src/main/java/de/mpiwg/gazetteer/utils/DataProvider.java Fri Jun 26 11:32:33 2015 +0200 +++ b/src/main/java/de/mpiwg/gazetteer/utils/DataProvider.java Tue Jun 30 14:31:29 2015 +0200 @@ -27,7 +27,6 @@ public DataProvider(){ logger.info("##### Starting DataProvider #####"); } - public LGFile getFile(Long fileId){ return getFileMap().getValuesByOwnKey(fileId); }
--- a/src/main/java/de/mpiwg/web/jsp/SessionBean.java Fri Jun 26 11:32:33 2015 +0200 +++ b/src/main/java/de/mpiwg/web/jsp/SessionBean.java Tue Jun 30 14:31:29 2015 +0200 @@ -8,10 +8,8 @@ import org.apache.log4j.Logger; -import de.mpiwg.gazetteer.bo.LGBranch; import de.mpiwg.gazetteer.dataverse.DataverseUtils; import de.mpiwg.gazetteer.dataverse.bo.VDCUser; -import de.mpiwg.gazetteer.utils.DataProvider; public class SessionBean extends AbstractJSPPage { @@ -77,11 +75,27 @@ public void login(){ try { this.user = DataverseUtils.login(userName, password); - if(user != null){ - this.user.setPassword(this.password); - this.homePage.loadParameters(request, response); - this.homePage.reloadBranches(); + + if(this.user != null){ + + // check userGroups + List<String> theUserGroups = new ArrayList<String>(); + theUserGroups.add("mpiwg"); + theUserGroups.add("nuist"); + if (DataverseUtils.isUserInGroups(this.user, theUserGroups)){ + logger.debug("user's groups: " + user.getUserGroups()); + + this.user.setPassword(this.password); + this.homePage.loadParameters(request, response); + this.homePage.reloadBranches(); + + } else { + this.user = null; + + addMsg("Please contact/email us to activate your account!"); + } + // ----- }else{ addMsg("User account no found or userName and password do not match!"); }
--- a/src/main/webapp/pages/books.jsp Fri Jun 26 11:32:33 2015 +0200 +++ b/src/main/webapp/pages/books.jsp Tue Jun 30 14:31:29 2015 +0200 @@ -401,7 +401,7 @@ </tr> <tr> <td> - <input type="text" name="editTimeFilter" value="<%= sessionBean.getBooksPage().getEditTimeFilter()%>" size="7"/> + <input type="text" name="editTimeFilter" value="<%= sessionBean.getBooksPage().getEditTimeFilter()%>" size="9"/> </td> <td> <input type="image"