Changeset 2013
- Timestamp:
- 07/17/09 02:05:20 (3 years ago)
- Location:
- molgenis3_3/src/org/molgenis
- Files:
-
- 13 edited
-
MolgenisOptions.java (modified) (1 diff)
-
framework/auth/Login.java (modified) (5 diffs)
-
framework/auth/SimpleLogin.java (modified) (5 diffs)
-
framework/data/MappingDecorator.java (modified) (1 diff)
-
framework/data/jdbc/JDBCConnectionHelper.java (modified) (1 diff)
-
framework/data/jdbc/JDBCDatabase.java (modified) (1 diff)
-
framework/screen/form/FormController.java (modified) (3 diffs)
-
framework/screen/form/FormScreen.java (modified) (1 diff)
-
framework/server/AbstractMolgenisServlet.java (modified) (5 diffs)
-
framework/style/original/UserInterface.ftl (modified) (2 diffs)
-
generators/screen/FormScreenGen.java.ftl (modified) (1 diff)
-
generators/servlet/MolgenisServletGen.ftl (modified) (2 diffs)
-
generators/servlet/MolgenisServletGen.java (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
molgenis3_3/src/org/molgenis/MolgenisOptions.java
r1992 r2013 77 77 @Option(name = "force_molgenis_package", param = "force_molgenis_package", type = Option.Type.REQUIRED_ARGUMENT, usage = "Expert option. Whether the generated package should be 'molgenis' or the name specified in the model. Default: false") 78 78 public boolean force_molgenis_package = false; 79 80 @Option(name = "auth_loginclass", param = "auth_loginclass", type = Option.Type.REQUIRED_ARGUMENT, usage = "Expert option.") 81 public String auth_loginclass = "org.molgenis.framework.auth.SimpleLogin"; 79 82 80 83 // @Option(name = "force_lowercase_names", param = "force_lowercase_names", -
molgenis3_3/src/org/molgenis/framework/auth/Login.java
r2005 r2013 2 2 3 3 import java.text.ParseException; 4 import java.util.List; 4 5 5 6 import org.molgenis.framework.Database; … … 16 17 * Authenticate the user 17 18 * 18 * @param database to login to 19 * @param name of user 20 * @param password of user 19 * @param database 20 * to login to 21 * @param name 22 * of user 23 * @param password 24 * of user 21 25 * @return 22 26 */ … … 30 34 /** 31 35 * Reloads all permission settings for this user. 32 * @throws ParseException 33 * @throws DatabaseException 36 * 37 * @throws ParseException 38 * @throws DatabaseException 34 39 */ 35 40 public void reload(Database db) throws DatabaseException, ParseException; … … 44 49 45 50 /** does the user have permissions to read data from this entity */ 46 public boolean hasReadPermission(Entity entity);51 public <E extends Entity> boolean hasReadPermission(Class<E> entityClass); 47 52 48 53 /** Does the user have create, update, delete permissions for this entity */ 49 public boolean hasEditPermission(Entity entity) throws DatabaseException; 54 public <E extends Entity> boolean hasEditPermission(Class<E> entityClass) throws DatabaseException; 55 56 /** Does the user have the right to write these entities*/ 57 public <E extends Entity> boolean hasEditPermission(E entity) throws DatabaseException; 58 59 public <E extends Entity> boolean hasEditPermission(List<E> entities) throws DatabaseException; 50 60 51 61 /** create a filter for only those records the user/group is allowed to view */ 52 public QueryRule get UserFilters(Entity entity);62 public QueryRule getRowlevelSecurityFilters(Entity entity); 53 63 54 64 /** … … 65 75 */ 66 76 public Integer getUserId(); 77 78 /** 79 * Indicate if login is required 80 * 81 * @return 82 */ 83 public boolean isLoginRequired(); 67 84 } -
molgenis3_3/src/org/molgenis/framework/auth/SimpleLogin.java
r2005 r2013 1 1 package org.molgenis.framework.auth; 2 2 3 import java.util.List; 4 3 5 import org.molgenis.framework.Database; 6 import org.molgenis.framework.data.DatabaseException; 4 7 import org.molgenis.framework.data.QueryRule; 5 8 import org.molgenis.util.Entity; … … 23 26 24 27 @Override 25 public boolean hasReadPermission(Entityentity)28 public <E extends Entity> boolean hasReadPermission(Class<E> entity) 26 29 { 27 30 return true; … … 29 32 30 33 @Override 31 public boolean hasEditPermission(Entityentity)34 public <E extends Entity> boolean hasEditPermission(Class<E> entity) 32 35 { 33 36 return true; … … 35 38 36 39 @Override 37 public QueryRule get UserFilters(Entity entity)40 public QueryRule getRowlevelSecurityFilters(Entity entity) 38 41 { 39 42 return null; … … 81 84 return false; 82 85 } 86 87 @Override 88 public boolean isLoginRequired() 89 { 90 // TODO Auto-generated method stub 91 return false; 92 } 93 94 // door Martijn erbij gezet 3 juli 2009 95 @Override 96 public <E extends Entity> boolean hasEditPermission(E entity) 97 throws DatabaseException { 98 // TODO Auto-generated method stub 99 return true; 100 } 101 102 @Override 103 public <E extends Entity> boolean hasEditPermission(List<E> entities) 104 throws DatabaseException { 105 // TODO Auto-generated method stub 106 return true; 107 } 83 108 } -
molgenis3_3/src/org/molgenis/framework/data/MappingDecorator.java
r2010 r2013 17 17 public class MappingDecorator<E extends Entity> implements JDBCMapper<E> 18 18 { 19 pr otectedJDBCMapper<E> mapper;19 private JDBCMapper<E> mapper; 20 20 21 21 public MappingDecorator(JDBCMapper<E> generatedMapper) -
molgenis3_3/src/org/molgenis/framework/data/jdbc/JDBCConnectionHelper.java
r2000 r2013 399 399 + " " + value + ""); 400 400 else 401 where_clause.append(rule.getField() + " " + operator + " '" + value + "'"); 401 { 402 if("NULL".equals(value) && operator.equals("=")) where_clause.append(rule.getField() + " IS NULL"); 403 else where_clause.append(rule.getField() + " " + operator + " '" + value + "'"); 404 } 402 405 // } 403 406 } -
molgenis3_3/src/org/molgenis/framework/data/jdbc/JDBCDatabase.java
r2006 r2013 282 282 public <E extends Entity> int add(List<E> entities) throws DatabaseException, IOException 283 283 { 284 if(!this.getLogin().hasEditPermission(entities)) throw new DatabaseException("Add not allowed for this user"); 284 285 if (entities.size() > 0) return getMapperFor(entities).add(entities); 285 286 return 0; -
molgenis3_3/src/org/molgenis/framework/screen/form/FormController.java
r2012 r2013 305 305 try 306 306 { 307 // reload login 308 view.getRootScreen().getLogin().reload(db);307 // reload login only on login/logout events 308 // view.getRootScreen().getLogin().reload(db); 309 309 310 310 pager.setDirty(true); … … 398 398 399 399 // set form level rights 400 boolean formReadonly = view.isReadonly() || !view.getLogin().hasEditPermission(view.create() );400 boolean formReadonly = view.isReadonly() || !view.getLogin().hasEditPermission(view.create().getClass()); 401 401 view.setReadonly(formReadonly); 402 402 … … 411 411 for (E record : allRecords) 412 412 { 413 boolean rowReadonly = formReadonly || !view.getLogin().hasEditPermission(record );413 boolean rowReadonly = formReadonly || !view.getLogin().hasEditPermission(record.getClass()); 414 414 415 415 if (rowReadonly) record.setReadonly(true); -
molgenis3_3/src/org/molgenis/framework/screen/form/FormScreen.java
r1994 r2013 277 277 public boolean isVisible() 278 278 { 279 return this.getLogin().hasReadPermission(this.create() );279 return this.getLogin().hasReadPermission(this.create().getClass()); 280 280 } 281 281 -
molgenis3_3/src/org/molgenis/framework/server/AbstractMolgenisServlet.java
r1995 r2013 23 23 24 24 import javax.naming.NamingException; 25 import javax.servlet.ServletConfig;26 25 import javax.servlet.ServletException; 27 26 import javax.servlet.http.HttpServletRequest; … … 242 241 { 243 242 userLogin = createLogin(db, request); 244 if ( !userLogin.isAuthenticated()|| (request.getParameter("logout") != null && !session.isNew()))243 if ( (!userLogin.isAuthenticated() && userLogin.isLoginRequired()) || (request.getParameter("logout") != null && !session.isNew())) 245 244 { 246 245 response.setHeader("WWW-Authenticate", "BASIC realm=\"MOLGENIS\""); … … 253 252 //((UserInterface)molgenis).setDatabase(db); 254 253 userLogin = ((UserInterface)molgenis).getLogin(); 254 db.setLogin(userLogin); 255 255 256 256 // handle request … … 263 263 if (FileInput.ACTION_DOWNLOAD.equals(requestTuple.getString(Screen.INPUT_ACTION))) 264 264 { 265 logger. debug(requestTuple);265 logger.info(requestTuple); 266 266 267 267 File file = new File(db.getFilesource() + "/" … … 960 960 if (xref_filter != null && xref_filter != "") for (int i = 0; i < xref_label.size(); i++) 961 961 { 962 q.like((String) xref_label.get(i), xref_filter + "%");962 q.like((String) xref_label.get(i), "%"+xref_filter + "%"); 963 963 if (i > 0) q.or(); 964 964 q.orderASC((String) xref_label.get(i)); -
molgenis3_3/src/org/molgenis/framework/style/original/UserInterface.ftl
r1968 r2013 40 40 <td id="navigation"> 41 41 42 <# ifusername != "">42 <#--if username?exists && username != ""> 43 43 <span id="logout"> 44 44 Logged in as <b>${username}</b> [<a href="" onClick="logout.submit();return false;">logout</a>] … … 47 47 </form> 48 48 </span> 49 </#if >49 </#if--> 50 50 <form name="navigationForm" method="get"> 51 51 <input type="hidden" name="__target" value=""/> -
molgenis3_3/src/org/molgenis/generators/screen/FormScreenGen.java.ftl
r2001 r2013 238 238 </#if> 239 239 { 240 QueryRule rule = super.getRootScreen().getLogin().get UserFilters(new ${entity}());240 QueryRule rule = super.getRootScreen().getLogin().getRowlevelSecurityFilters(new ${entity}()); 241 241 if (rule != null /*&& !rule.equals(new QueryRule())*/) 242 242 rules.add(rule); -
molgenis3_3/src/org/molgenis/generators/servlet/MolgenisServletGen.ftl
r1995 r2013 19 19 import org.molgenis.framework.Database; 20 20 import org.molgenis.framework.auth.Login; 21 import org.molgenis.framework.auth.SimpleLogin;22 21 import org.molgenis.framework.data.DatabaseException; 23 22 import org.molgenis.framework.screen.UserInterface; … … 50 49 public Login createLogin( Database db, HttpServletRequest request ) 51 50 { 52 return new SimpleLogin();51 return new ${loginclass}(); 53 52 } 54 53 -
molgenis3_3/src/org/molgenis/generators/servlet/MolgenisServletGen.java
r1983 r2013 36 36 templateArgs.put("model", model); 37 37 templateArgs.put("package", model.getName().toLowerCase()); 38 templateArgs.put("db_filepath", options.db_filepath); 38 templateArgs.put("db_filepath", options.db_filepath); 39 templateArgs.put("loginclass", options.auth_loginclass); 39 40 40 41
Note: See TracChangeset
for help on using the changeset viewer.