Changeset 2014
- Timestamp:
- 07/17/09 20:49:27 (3 years ago)
- Location:
- molgenis3_3/src/org/molgenis
- Files:
-
- 2 deleted
- 24 edited
- 2 copied
- 1 moved
-
MolgenisOptions.java (modified) (1 diff)
-
framework/Database.java (modified) (2 diffs)
-
framework/UserInterface.java (modified) (2 diffs)
-
framework/data/MappingDecorator.java (modified) (1 diff)
-
framework/data/inmemory/InMemoryDatabase.java (modified) (4 diffs)
-
framework/data/jdbc/AbstractJDBCMapper.java (modified) (7 diffs)
-
framework/data/jdbc/JDBCDatabase.java (modified) (9 diffs)
-
framework/data/jdbc/JDBCMapper.java (modified) (1 diff)
-
framework/data/xml/XmlDatabase.java (modified) (2 diffs)
-
framework/screen/UserInterface.java (modified) (5 diffs)
-
framework/screen/form/FormController.java (modified) (2 diffs)
-
framework/screen/form/FormScreen.java (modified) (11 diffs)
-
framework/screen/form/commands/AddBatchCommand.java (modified) (1 diff)
-
framework/screen/form/commands/AddCommand.java (modified) (1 diff)
-
framework/screen/form/commands/AddCommand2.java (modified) (1 diff)
-
framework/screen/form/commands/ViewEditViewCommand.java (modified) (1 diff)
-
framework/screen/plugin/PluginScreen.java (modified) (2 diffs)
-
framework/security (moved) (moved from molgenis3_3/src/org/molgenis/framework/auth)
-
framework/security/Login.java (deleted)
-
framework/security/Security.java (copied) (copied from molgenis3_3/src/org/molgenis/framework/auth/Login.java) (6 diffs)
-
framework/security/SimpleLogin.java (deleted)
-
framework/security/SimpleSecurity.java (copied) (copied from molgenis3_3/src/org/molgenis/framework/auth/SimpleLogin.java) (3 diffs)
-
framework/security/package-info.java (modified) (1 diff)
-
framework/server/AbstractMolgenisServlet.java (modified) (6 diffs)
-
framework/style/original/FormScreen.ftl (modified) (15 diffs)
-
generators/screen/FormScreenGen.java.ftl (modified) (2 diffs)
-
generators/servlet/MolgenisServletGen.ftl (modified) (2 diffs)
-
generators/sql/FillMetadataTablesGen.sql.ftl (modified) (1 diff)
-
model/syntax/Entity.java (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
molgenis3_3/src/org/molgenis/MolgenisOptions.java
r2013 r2014 79 79 80 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";81 public String auth_loginclass = "org.molgenis.framework.security.SimpleSecurity"; 82 82 83 83 // @Option(name = "force_lowercase_names", param = "force_lowercase_names", -
molgenis3_3/src/org/molgenis/framework/Database.java
r1975 r2014 23 23 import java.util.List; 24 24 25 import org.molgenis.framework.auth.Login;26 25 import org.molgenis.framework.data.CustomQuery; 27 26 import org.molgenis.framework.data.DatabaseException; 28 27 import org.molgenis.framework.data.Query; 29 28 import org.molgenis.framework.data.QueryRule; 29 import org.molgenis.framework.security.Security; 30 30 import org.molgenis.model.syntax.Model; 31 31 import org.molgenis.util.CsvReader; … … 356 356 357 357 /** Return the login object that takes care of auth */ 358 public Login getLogin();359 360 public void setLogin( Loginlogin);358 public Security getSecurity(); 359 360 public void setLogin(Security login); 361 361 362 362 public Class<Entity> getClassForName(String name); -
molgenis3_3/src/org/molgenis/framework/UserInterface.java
r1937 r2014 1 1 package org.molgenis.framework; 2 2 3 import org.molgenis.framework. auth.Login;3 import org.molgenis.framework.security.Security; 4 4 5 5 public interface UserInterface … … 10 10 public void setDatabase(Database db); 11 11 /**Get the login for this user interface*/ 12 public LogingetLogin();12 public Security getLogin(); 13 13 /**set the login for this user interface*/ 14 public void setLogin( Loginloging);14 public void setLogin(Security loging); 15 15 /**Get the root screen of this userinterface*/ 16 16 //public void getScreen(); -
molgenis3_3/src/org/molgenis/framework/data/MappingDecorator.java
r2013 r2014 73 73 74 74 @Override 75 public int remove(CsvReader reader) 75 public int remove(CsvReader reader) throws DatabaseException 76 76 { 77 77 return mapper.remove(reader); -
molgenis3_3/src/org/molgenis/framework/data/inmemory/InMemoryDatabase.java
r1975 r2014 11 11 import org.apache.log4j.Logger; 12 12 import org.molgenis.framework.Database; 13 import org.molgenis.framework.auth.Login;14 13 import org.molgenis.framework.data.CustomQuery; 15 14 import org.molgenis.framework.data.DatabaseException; … … 18 17 import org.molgenis.framework.data.QueryRule; 19 18 import org.molgenis.framework.data.QueryRule.Operator; 19 import org.molgenis.framework.security.Security; 20 20 import org.molgenis.model.syntax.Model; 21 21 import org.molgenis.util.CsvReader; … … 306 306 307 307 @Override 308 public Login getLogin()308 public Security getSecurity() 309 309 { 310 310 // TODO Auto-generated method stub … … 313 313 314 314 @Override 315 public void setLogin( Loginlogin)315 public void setLogin(Security login) 316 316 { 317 317 // TODO Auto-generated method stub -
molgenis3_3/src/org/molgenis/framework/data/jdbc/AbstractJDBCMapper.java
r2010 r2014 17 17 import org.molgenis.framework.data.QueryRule.Operator; 18 18 import org.molgenis.framework.data.jdbc.ColumnInfo.Type; 19 import org.molgenis.framework.security.Security; 19 20 import org.molgenis.util.CsvReader; 20 21 import org.molgenis.util.Entity; … … 112 113 113 114 List<E> entities = toList(reader, BATCH_SIZE); 114 115 115 116 if (writer != null) writer.writeHeader(entities.get(0)); 116 117 … … 121 122 122 123 // add to the database 123 rowsAffected += this.add(entities);124 rowsAffected += database.add(entities); 124 125 if (writer != null) 125 126 { … … 147 148 final String TX_TICKET = "UPDATE" + this.getClass().getSimpleName(); 148 149 try 149 { 150 { 150 151 // start anonymous transaction for the batched update 151 152 database.beginPrivateTx(TX_TICKET); … … 163 164 // update in batches 164 165 for (int i = 0; i < entities.size(); i += BATCH_SIZE) 165 { 166 { 166 167 int endindex = Math.min(i + BATCH_SIZE, entities.size()); 167 168 List<E> sublist = entities.subList(i, endindex); … … 203 204 204 205 // update to the database 205 rowsAffected += update(entities);206 rowsAffected += database.update(entities); 206 207 entities = toList(reader, BATCH_SIZE); 207 208 } … … 461 462 } 462 463 463 public int remove(CsvReader reader) 464 { 465 // TODO Auto-generated method stub 466 return 0; 464 public int remove(CsvReader reader) throws DatabaseException 465 { 466 int rowsAffected = 0; 467 final String TX_TICKET = "REMOVE+" + this.create().getClass().getCanonicalName() + "_CSV"; 468 try 469 { 470 database.beginPrivateTx(TX_TICKET); 471 List<E> entities = toList(reader, BATCH_SIZE); 472 while (entities.size() > 0) 473 { 474 // resolve foreign keys 475 this.resolveForeignKeys(entities); 476 477 // update to the database 478 rowsAffected += database.remove(entities); 479 entities = toList(reader, BATCH_SIZE); 480 } 481 482 database.commitPrivateTx(TX_TICKET); 483 } 484 catch (Exception e) 485 { 486 database.rollbackPrivateTx(TX_TICKET); 487 throw new DatabaseException(e); 488 } 489 return rowsAffected; 467 490 } 468 491 -
molgenis3_3/src/org/molgenis/framework/data/jdbc/JDBCDatabase.java
r2013 r2014 20 20 import org.apache.log4j.Logger; 21 21 import org.molgenis.framework.Database; 22 import org.molgenis.framework.auth.Login;23 22 import org.molgenis.framework.data.CustomQuery; 24 23 import org.molgenis.framework.data.DatabaseException; … … 28 27 import org.molgenis.framework.data.jdbc.datasource.DataSourceWrapper; 29 28 import org.molgenis.framework.data.jdbc.datasource.SimpleDataSourceWrapper; 29 import org.molgenis.framework.security.Security; 30 30 import org.molgenis.model.syntax.Model; 31 31 import org.molgenis.util.CsvReader; … … 67 67 File fileSource; 68 68 /** Login object */ 69 Loginlogin;69 Security login; 70 70 /** Logger for this database */ 71 71 static Logger logger = Logger.getLogger(JDBCDatabase.class.getSimpleName()); … … 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"); 285 if (entities.size() > 0) return getMapperFor(entities).add(entities); 284 if (entities.size() > 0) 285 { 286 checkEditPermission(entities); 287 return getMapperFor(entities).add(entities); 288 } 286 289 return 0; 287 290 } … … 304 307 public <E extends Entity> int update(List<E> entities) throws DatabaseException, IOException 305 308 { 306 if (entities.size() > 0) return getMapperFor(entities).update(entities); 309 if (entities.size() > 0) 310 { 311 checkEditPermission(entities); 312 return getMapperFor(entities).update(entities); 313 } 307 314 return 0; 308 315 } … … 325 332 public <E extends Entity> int remove(List<E> entities) throws DatabaseException, IOException 326 333 { 327 if (entities.size() > 0) return getMapperFor(entities).remove(entities); 334 if (entities.size() > 0) 335 { 336 checkEditPermission(entities); 337 return getMapperFor(entities).remove(entities); 338 } 328 339 return 0; 329 340 } … … 334 345 return getMapperFor(klazz).remove(reader); 335 346 } 336 337 // @Override338 // public <E extends Entity> void cacheXrefOptions(Class<E> klazz) throws339 // DatabaseException340 // {341 // try342 // {343 // JDBCMapper<E> mapper = this.getMapperFor(klazz);344 // mapper.cacheXrefOptions(this);345 // }346 // // whatever happens, close connection347 // finally348 // {349 // closeConnection();350 // }351 // }352 353 // @Override354 // public <E extends Entity> E setXrefOptions(E entity) throws355 // DatabaseException356 // {357 // if (entity != null)358 // {359 // try360 // {361 // // openConnection();362 // JDBCMapper<E> mapper = (JDBCMapper<E>)363 // this.getMapperFor(entity.getClass());364 // //entity = mapper.setXrefOptions(entity, entity.isReadonly());365 // }366 // // whatever happens, close connection367 // finally368 // {369 // closeConnection();370 // }371 // }372 // return entity;373 // }374 347 375 348 // @Override … … 557 530 } 558 531 559 public Login getLogin()532 public Security getSecurity() 560 533 { 561 534 return login; 562 535 } 563 536 564 public void setLogin( Loginlogin)537 public void setLogin(Security login) 565 538 { 566 539 this.login = login; … … 577 550 return metadata; 578 551 } 552 553 /** 554 * Verify edit permission for all entities 555 * 556 * @param entities 557 * @return 558 * @throws DatabaseException 559 */ 560 private <E extends Entity> void checkEditPermission(List<E> entities) throws DatabaseException 561 { 562 Security security = getSecurity(); 563 for (E entity : entities) 564 { 565 if (!security.hasEditPermission(entity)) throw new DatabaseException("Edit not allowed"); 566 } 567 } 579 568 } -
molgenis3_3/src/org/molgenis/framework/data/jdbc/JDBCMapper.java
r1978 r2014 50 50 public void find(CsvWriter writer, QueryRule[] rules) throws DatabaseException; 51 51 52 public int remove(CsvReader reader) ;52 public int remove(CsvReader reader) throws DatabaseException; 53 53 54 54 public List<E> toList(CsvReader reader, int limit) throws Exception; -
molgenis3_3/src/org/molgenis/framework/data/xml/XmlDatabase.java
r1975 r2014 10 10 import org.apache.log4j.Logger; 11 11 import org.molgenis.framework.Database; 12 import org.molgenis.framework.auth.Login;13 12 import org.molgenis.framework.data.CustomQuery; 14 13 import org.molgenis.framework.data.DatabaseException; 15 14 import org.molgenis.framework.data.Query; 16 15 import org.molgenis.framework.data.QueryRule; 16 import org.molgenis.framework.security.Security; 17 17 import org.molgenis.model.syntax.Model; 18 18 import org.molgenis.util.CsvReader; … … 264 264 265 265 @Override 266 public Login getLogin() {267 // TODO Auto-generated method stub 268 return null; 269 } 270 271 @Override 272 public void setLogin( Loginlogin) {266 public Security getSecurity() { 267 // TODO Auto-generated method stub 268 return null; 269 } 270 271 @Override 272 public void setLogin(Security login) { 273 273 // TODO Auto-generated method stub 274 274 -
molgenis3_3/src/org/molgenis/framework/screen/UserInterface.java
r1995 r2014 7 7 import org.apache.log4j.Logger; 8 8 import org.molgenis.framework.Database; 9 import org.molgenis.framework.auth.Login;10 9 import org.molgenis.framework.file.FileLink; 11 10 import org.molgenis.framework.screen.menu.MenuScreen; 11 import org.molgenis.framework.security.Security; 12 12 import org.molgenis.util.Tuple; 13 13 … … 27 27 private static Logger logger = Logger.getLogger(UserInterface.class.getSimpleName()); 28 28 /** The login * */ 29 private Loginlogin;29 private Security login; 30 30 /** The Database used by this UserInterface */ 31 31 //private Database database; … … 41 41 * for authentication/authorization 42 42 */ 43 public UserInterface( Loginlogin)43 public UserInterface(Security login) 44 44 { 45 45 super("main", null); // this is the root of the screen tree. … … 55 55 * @return Login 56 56 */ 57 public LogingetLogin()57 public Security getLogin() 58 58 { 59 59 return login; … … 65 65 * @param login 66 66 */ 67 public void setLogin( Loginlogin )67 public void setLogin( Security login ) 68 68 { 69 69 this.login = login; -
molgenis3_3/src/org/molgenis/framework/screen/form/FormController.java
r2013 r2014 398 398 399 399 // set form level rights 400 boolean formReadonly = view.isReadonly() || !view.get Login().hasEditPermission(view.create().getClass());400 boolean formReadonly = view.isReadonly() || !view.getSecurity().hasEditPermission(view.create().getClass()); 401 401 view.setReadonly(formReadonly); 402 402 … … 411 411 for (E record : allRecords) 412 412 { 413 boolean rowReadonly = formReadonly || !view.get Login().hasEditPermission(record.getClass());413 boolean rowReadonly = formReadonly || !view.getSecurity().hasEditPermission(record.getClass()); 414 414 415 415 if (rowReadonly) record.setReadonly(true); -
molgenis3_3/src/org/molgenis/framework/screen/form/FormScreen.java
r2013 r2014 23 23 import org.apache.log4j.Logger; 24 24 import org.molgenis.framework.Database; 25 import org.molgenis.framework.auth.Login;26 25 import org.molgenis.framework.data.DatabaseException; 27 26 import org.molgenis.framework.data.DatabasePager; … … 30 29 import org.molgenis.framework.data.csv.CsvEntityReader; 31 30 import org.molgenis.framework.html.FileInput; 31 import org.molgenis.framework.html.HtmlForm; 32 32 import org.molgenis.framework.html.HtmlInput; 33 33 import org.molgenis.framework.screen.Screen; … … 47 47 import org.molgenis.framework.screen.form.commands.ViewListViewCommand; 48 48 import org.molgenis.framework.screen.form.commands.ViewRecordViewCommand; 49 import org.molgenis.framework.security.Security; 49 50 import org.molgenis.util.Entity; 50 51 import org.molgenis.util.Tuple; … … 65 66 * @param newrecord 66 67 */ 67 public abstract Vector<HtmlInput> getInputs(E entity, boolean newrecord);68 public abstract HtmlForm<E> getInputs(E entity, boolean newrecord); 68 69 69 70 /** … … 277 278 public boolean isVisible() 278 279 { 279 return this.get Login().hasReadPermission(this.create().getClass());280 return this.getSecurity().hasReadPermission(this.create().getClass()); 280 281 } 281 282 … … 371 372 { 372 373 Vector<String> headers = new Vector<String>(); 373 for (HtmlInput input : getInputs(this.create(), true) )374 for (HtmlInput input : getInputs(this.create(), true).getInputs()) 374 375 { 375 376 headers.add(input.getLabel()); … … 383 384 * @throws DatabaseException 384 385 */ 385 public Vector<HtmlInput> getNewInputs() throws DatabaseException386 public HtmlForm<E> getNewRecordForm() throws DatabaseException 386 387 { 387 388 E entity = this.create(); … … 396 397 * row on screen. 397 398 */ 398 public Vector< Vector<HtmlInput>> getRecordInputs()399 { 400 Vector< Vector<HtmlInput>> records = new Vector<Vector<HtmlInput>>();399 public Vector<HtmlForm<E>> getRecordInputs() 400 { 401 Vector<HtmlForm<E>> records = new Vector<HtmlForm<E>>(); 401 402 402 403 try … … 404 405 for (E entity : getRecords()) 405 406 { 406 records.add(getInputs(entity, false)); 407 HtmlForm<E> record = getInputs(entity, false); 408 record.setReadonly(!getSecurity().hasEditPermission(entity)); 409 records.add(record); 407 410 } 408 411 } … … 427 430 Map<String, String> nameLabelMap = new TreeMap<String, String>(); 428 431 429 for (HtmlInput input : this.getNew Inputs())432 for (HtmlInput input : this.getNewRecordForm().getInputs()) 430 433 { 431 434 // getSearchFields maps xref and mref field to their label … … 692 695 } 693 696 694 public Login getLogin()697 public Security getSecurity() 695 698 { 696 699 return getRootScreen().getLogin(); -
molgenis3_3/src/org/molgenis/framework/screen/form/commands/AddBatchCommand.java
r1994 r2014 56 56 57 57 // delegate to the formscreen 58 List<HtmlInput> inputs = this.getScreen().getNew Inputs();58 List<HtmlInput> inputs = this.getScreen().getNewRecordForm().getInputs(); 59 59 60 60 // remove not-null constraints -
molgenis3_3/src/org/molgenis/framework/screen/form/commands/AddCommand.java
r1994 r2014 35 35 { 36 36 // delegate to the formscreen 37 return this.getScreen().getNew Inputs();37 return this.getScreen().getNewRecordForm().getInputs(); 38 38 } 39 39 -
molgenis3_3/src/org/molgenis/framework/screen/form/commands/AddCommand2.java
r1994 r2014 43 43 { 44 44 Form f = new Form(); 45 f.addAll(this.getScreen().getNew Inputs());45 f.addAll(this.getScreen().getNewRecordForm().getInputs()); 46 46 f.setAll(previousRequest); 47 47 return f.getInputs(); -
molgenis3_3/src/org/molgenis/framework/screen/form/commands/ViewEditViewCommand.java
r1994 r2014 36 36 //show add button when not in recordview 37 37 //show add button if the screen is not readonly 38 return !this.getScreen().getMode().equals(Mode.EDIT_VIEW) && !this.getScreen().isReadonly(); 38 return !this.getScreen().getMode().equals(Mode.EDIT_VIEW) 39 && !this.getScreen().isReadonly() 40 && this.getScreen().getRecordInputs().size() != 0 41 && !this.getScreen().getRecordInputs().get(0).isReadonly(); 39 42 } 40 43 } -
molgenis3_3/src/org/molgenis/framework/screen/plugin/PluginScreen.java
r1994 r2014 6 6 7 7 import org.molgenis.framework.Database; 8 import org.molgenis.framework.auth.Login;9 8 import org.molgenis.framework.screen.Screen; 10 9 import org.molgenis.framework.screen.ScreenController; 11 10 import org.molgenis.framework.screen.ScreenMessage; 12 11 import org.molgenis.framework.screen.common.SimpleScreen; 12 import org.molgenis.framework.security.Security; 13 13 import org.molgenis.util.Tuple; 14 14 … … 26 26 } 27 27 28 public LogingetLogin()28 public Security getLogin() 29 29 { 30 30 return this.getRootScreen().getLogin(); -
molgenis3_3/src/org/molgenis/framework/security/Security.java
r2013 r2014 1 package org.molgenis.framework. auth;1 package org.molgenis.framework.security; 2 2 3 3 import java.text.ParseException; … … 10 10 11 11 /** 12 * Represents the login features of the application. 12 * Simple authentication and authorization interface that enables MOLGENIS 13 * developers to enhance their applications with authentication and 14 * authorization. 15 * <ul> 16 * <li>Login/logout (authorization) 17 * <li>Entity level security (hasReadPermission(class), 18 * hasWritePermission(class)) 19 * <li>Instance level security (rowLevelSecurityFilter, 20 * hasWritePermission(object)) 21 * </ul> 22 * Developers can implement this interface to realize a variety of security 23 * schemes. 13 24 */ 14 public interface Login25 public interface Security 15 26 { 16 27 /** … … 28 39 29 40 /** 30 * Un-authenticate the user. 41 * Un-authenticate the user. Now the user will be perceived as 'guest'. 31 42 */ 32 43 public void logout(); 33 44 34 45 /** 35 * Reloads all permission settings for this user .46 * Reloads all permission settings for this user from database. 36 47 * 37 48 * @throws ParseException … … 41 52 42 53 /** 43 * Whether the current use has ben authenicated. Otherwise the user is a44 * guest.54 * Indicates whether the current use has been authenicated. Otherwise the 55 * user is a guest. 45 56 * 46 57 * @return … … 48 59 public boolean isAuthenticated(); 49 60 50 /** does the user have permissions to read data from this entity */51 public <E extends Entity> boolean hasReadPermission(Class<E> entityClass);52 53 /** Does the user have create, update, delete permissions for this entity */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;60 61 /** create a filter for only those records the user/group is allowed to view */62 public QueryRule getRowlevelSecurityFilters(Entity entity);63 64 61 /** 65 * The name of th isuser.62 * The name of the logged in user user. 66 63 * 67 * @return 64 * @return the unique name of the user 68 65 */ 69 66 public String getUserName(); … … 72 69 * The system id of this user. 73 70 * 74 * @return 71 * @return numeric identifier of the user 75 72 */ 76 73 public Integer getUserId(); 77 74 78 75 /** 79 * Indicate if login is required 76 * Indicate if login is required. If true then the user will not be able to 77 * access MOLGENIS unless authenticated. If false then the user will always 78 * be able to login, but with 'guest' level user rights. 80 79 * 81 * @return 80 * @return login required 82 81 */ 83 82 public boolean isLoginRequired(); 83 84 /** 85 * Indicates whether the user has permissions to read data from this class 86 * of entities (aka 'entity level security') 87 * 88 * @return readpermission 89 */ 90 public <E extends Entity> boolean hasReadPermission(Class<E> entityClass); 91 92 /** 93 * Indicates whether the user has permissions to add, update, delete data 94 * for this entity class (aka 'entity level security') 95 * 96 * @return editpermission 97 */ 98 public <E extends Entity> boolean hasEditPermission(Class<E> entityClass) throws DatabaseException; 99 100 /** 101 * Indicates whether the user has permissions to add, update, delete this 102 * particular entity instance* 103 * 104 * @return editpermission 105 */ 106 public <E extends Entity> boolean hasEditPermission(E entity) throws DatabaseException; 107 108 /** 109 * Creates a filter which can be used by find/count to only retrieve those 110 * records the user/group is allowed to view 111 */ 112 public QueryRule getRowlevelSecurityFilters(Entity entity); 113 84 114 } -
molgenis3_3/src/org/molgenis/framework/security/SimpleSecurity.java
r2013 r2014 1 package org.molgenis.framework. auth;1 package org.molgenis.framework.security; 2 2 3 3 import java.util.List; … … 8 8 import org.molgenis.util.Entity; 9 9 10 public class Simple Login implements Login{10 public class SimpleSecurity implements Security { 11 11 12 12 @Override … … 99 99 return true; 100 100 } 101 102 @Override103 public <E extends Entity> boolean hasEditPermission(List<E> entities)104 throws DatabaseException {105 // TODO Auto-generated method stub106 return true;107 }108 101 } -
molgenis3_3/src/org/molgenis/framework/security/package-info.java
r1937 r2014 1 1 /** 2 * {@link org.molgenis.framework. auth} minimal authentication and authorization framework.2 * {@link org.molgenis.framework.security} minimal authentication and authorization framework. 3 3 */ 4 package org.molgenis.framework. auth;4 package org.molgenis.framework.security; -
molgenis3_3/src/org/molgenis/framework/server/AbstractMolgenisServlet.java
r2013 r2014 35 35 import org.apache.log4j.Logger; 36 36 import org.molgenis.framework.Database; 37 import org.molgenis.framework.auth.Login;38 37 import org.molgenis.framework.data.CustomQuery; 39 38 import org.molgenis.framework.data.DatabaseException; … … 44 43 import org.molgenis.framework.screen.UserInterface; 45 44 import org.molgenis.framework.screen.form.FormScreen; 45 import org.molgenis.framework.security.Security; 46 46 import org.molgenis.framework.style.original.MolgenisOriginalStyle; 47 47 import org.molgenis.util.Entity; … … 100 100 * can override this to set a security mechanism. 101 101 */ 102 public abstract LogincreateLogin(Database db, HttpServletRequest request);102 public abstract Security createLogin(Database db, HttpServletRequest request); 103 103 104 104 /** … … 106 106 * path... 107 107 */ 108 public abstract Screen createApplication( LoginuserLogin);108 public abstract Screen createApplication(Security userLogin); 109 109 110 110 /** … … 235 235 // login/logout 236 236 HttpSession session = request.getSession(); 237 LoginuserLogin = null;237 Security userLogin = null; 238 238 // Get appplication from session (or create one) 239 239 Screen molgenis = (UserInterface) session.getAttribute("application"); … … 978 978 for (Object label : xref_label) 979 979 { 980 out.write(result.get(i).getString((String) label) + ".");980 out.write(result.get(i).getString((String) label)); 981 981 } 982 982 out.write("\""); -
molgenis3_3/src/org/molgenis/framework/style/original/FormScreen.ftl
r2012 r2014 74 74 <!--search box--> 75 75 <label>Search:</label><select title="choose attribute" name="__filter_attribute"> 76 <#list screen.getNew Inputs()as input>76 <#list screen.getNewRecordForm().inputs as input> 77 77 <option value="${screen.getSearchField(input.name)}">${input.label}</option> 78 78 </#list> … … 102 102 <#assign requiredcount = 0 /> 103 103 <#assign required = "" /> 104 <#list screen.getNew Inputs() as input>104 <#list screen.getNewRecordForm() as input> 105 105 <#if !input.isHidden()> 106 106 <tr> … … 183 183 <td> 184 184 <select name="attribute"> 185 <#list screen.getNew Inputs() as input>185 <#list screen.getNewRecordForm() as input> 186 186 <option value="${input.name}">${input.label}</option> 187 187 </#list> … … 219 219 <#assign massupdate = command.screen.getSelectedIds()> 220 220 <#assign screen = command.screen> 221 <body onload="<#list screen.getNew Inputs()as input><#if !input.isHidden()>${screen.name}_massupdate.${input.name}.disabled = true; </#if></#list>">221 <body onload="<#list screen.getNewRecordForm().inputs as input><#if !input.isHidden()>${screen.name}_massupdate.${input.name}.disabled = true; </#if></#list>"> 222 222 <p class="form_header">Update multiple ${screen.label} records</p> 223 223 <#if massupdate?has_content> … … 233 233 <input type="hidden" name="massUpdate" value="${id}"> 234 234 </#list> 235 <#list screen.getNew Inputs() as input>235 <#list screen.getNewRecordForm() as input> 236 236 <#if !input.isHidden()> 237 237 <tr> … … 266 266 <#assign required = "" /> 267 267 <#assign readonly = "true" /> 268 <#list record as input>268 <#list record.inputs as input> 269 269 <#if !input.isReadonly()> 270 270 <#assign readonly = "false" /> … … 294 294 </table></td><td class="edit_button_area"> 295 295 <#if screen.mode.toString() == "recordview" > 296 <#if screen.readonly == true>296 <#if readonly = "true"> 297 297 <#else> 298 298 <image class="edit_button" src="res/img/editview.gif" alt="Edit" onclick="setInput('${screen.name}_form','_self','','${screen.name}','editview','iframe'); document.forms.${screen.name}_form.submit();" title="edit current record" /> … … 316 316 <tr> 317 317 <th><label> </label></th> 318 <#list record as input>318 <#list record.inputs as input> 319 319 <#if input.getName() == screen.getIdField()> 320 320 <th><label> </label></th> … … 322 322 </#list> 323 323 324 <#list record as input> 325 <th> 324 <#list record.inputs as input> 326 325 <#if screen.getController().getClass().getSimpleName() != "FormController"> 327 326 <#if input.isHidden()> 328 327 <#else> 329 <label class="tableheader" title="${input.getDescription()}">${input.getLabel()}</label> 328 <th> 329 <label class="tableheader" title="${input.getDescription()}">${input.getLabel()}</label></th> 330 330 </#if> 331 331 <#else> … … 334 334 <#else> 335 335 <#--<img src="res/img/close.png" title="hide ${input.getLabel()}" onclick="setInput('${screen.name}_form','_self','','${screen.name}','hideColumn','iframe'); document.forms.${screen.name}_form.attribute.value='${input.getName()}'; document.forms.${screen.name}_form.submit();" />--> 336 < label class="tableheader" onclick="setInput('${screen.name}_form','_self','','${screen.name}','sort','iframe'); document.forms.${screen.name}_form.__sortattribute.value='${input.getName()}'; document.forms.${screen.name}_form.submit();">336 <th><label class="tableheader" onclick="setInput('${screen.name}_form','_self','','${screen.name}','sort','iframe'); document.forms.${screen.name}_form.__sortattribute.value='${input.getName()}'; document.forms.${screen.name}_form.submit();"> 337 337 ${input.getLabel()}<#if screen.getSort() == input.getName()> <#if screen.getSortMode().toString() == "SORTASC"><img src="res/img/sort_asc.gif"><#else><img src="res/img/sort_desc.gif"></#if></#if> 338 338 </label> 339 </th> 339 340 </#if> 340 341 </#if> 341 </th> 342 342 343 </#list> 343 344 </tr> … … 347 348 <#assign rowcolor = offset % 2> 348 349 <#assign readonly = "*" /> 349 <#list record as input>350 <#list record.inputs as input> 350 351 <#if !input.isReadonly()> 351 352 <#assign readonly = "" /> … … 355 356 <td> 356 357 <label>${offset}. 357 <img class="edit_button" src="res/img/recordview.png" title="edit record" alt="edit${offset}" onClick="setInput('${screen.name}_form','_self','','${screen.name}','editview','iframe'); document.forms.${screen.name}_form.__offset.value='${offset}'; document.forms.${screen.name}_form.submit();">${readonly}</label> 358 <#if readonly == "*" > 359 <img class="edit_button" src="res/img/recordview.png" title="view record" alt="edit${offset}" onClick="setInput('${screen.name}_form','_self','','${screen.name}','recordview','iframe'); document.forms.${screen.name}_form.__offset.value='${offset}'; document.forms.${screen.name}_form.submit();">${readonly}</label> 360 <#else> 361 <img class="edit_button" src="res/img/recordview.png" title="edit record" alt="edit${offset}" onClick="setInput('${screen.name}_form','_self','','${screen.name}','editview','iframe'); document.forms.${screen.name}_form.__offset.value='${offset}'; document.forms.${screen.name}_form.submit();">${readonly}</label> 362 </#if> 358 363 </td> 359 <#list record as input>364 <#list record.inputs as input> 360 365 <#if input.getName()?lower_case == screen.getIdField()?lower_case> 361 366 <td><input type="checkbox" name="massUpdate" value="${input.getHtmlValue()}"></td> … … 366 371 </#list> 367 372 368 <#list record as input>373 <#list record.inputs as input> 369 374 <#if input.isHidden()> 370 <td></td>371 375 <#else> 372 376 <#if input.getTarget() != "" && input.getObject()?exists > … … 386 390 <tr> 387 391 <td></td> 388 <#list screen.getNew Inputs()as input>392 <#list screen.getNewRecordForm().inputs as input> 389 393 <#if input.getName() == screen.getIdField()> 390 394 <td><input title="select all visible" type="checkbox" name="checkall" id="checkall" onclick="Javascript:checkAll('${screen.name}_form','massUpdate')" /></td> … … 405 409 <table> 406 410 <tr><td colspan="2"><i>Set constants (overrides uploaded data).</i></td></tr> 407 <#list screen.getNew Inputs() as input>411 <#list screen.getNewRecordForm() as input> 408 412 <tr><td><label>${input.label}</label></td><td>${input.toHtml()}</td></tr> 409 413 </#list> -
molgenis3_3/src/org/molgenis/generators/screen/FormScreenGen.java.ftl
r2013 r2014 128 128 129 129 @Override 130 public Vector<HtmlInput> getInputs(${entity} entity, boolean newrecord)130 public HtmlForm<${entity}> getInputs(${entity} entity, boolean newrecord) 131 131 { 132 132 <#if parent_form?exists> … … 165 165 form.setNewRecord(newrecord); 166 166 form.setReadonly(isReadonly()); 167 return form .getInputs();167 return form; 168 168 } 169 169 -
molgenis3_3/src/org/molgenis/generators/servlet/MolgenisServletGen.ftl
r2013 r2014 18 18 19 19 import org.molgenis.framework.Database; 20 import org.molgenis.framework. auth.Login;20 import org.molgenis.framework.security.Security; 21 21 import org.molgenis.framework.data.DatabaseException; 22 22 import org.molgenis.framework.screen.UserInterface; … … 47 47 } 48 48 49 public LogincreateLogin( Database db, HttpServletRequest request )49 public Security createLogin( Database db, HttpServletRequest request ) 50 50 { 51 51 return new ${loginclass}(); 52 52 } 53 53 54 public UserInterface createApplication( LoginuserLogin )54 public UserInterface createApplication( Security userLogin ) 55 55 { 56 56 UserInterface app = new UserInterface( userLogin); -
molgenis3_3/src/org/molgenis/generators/sql/FillMetadataTablesGen.sql.ftl
r1904 r2014 1 1 <#include "GeneratorHelper.ftl"> 2 2 delete from molgenis_fieldmetadata; 3 delete from molgenis_entitymetadata;3 INSERT INTO molgenisuser(name,password,superuser) values ("admin","admin",true); 4 4 <#list model.getConcreteEntities() as entity> 5 INSERT INTO molgenis _entitymetadata(name,classname) values ("${name(entity)}","${package}.${Name(entity)}");6 <# list entity.fields as field>5 INSERT INTO molgenisentity(name,classname) values ("${name(entity)}","${package}.${Name(entity)}"); 6 <#--list entity.fields as field> 7 7 INSERT INTO molgenis_fieldmetadata(entity,name,description) SELECT id, "${name(field)}", "<#if field.description != field.name>${field.description}</#if>" from molgenis_entitymetadata where name="${name(entity)}"; 8 </#list--> 8 9 </#list> 9 </#list> -
molgenis3_3/src/org/molgenis/model/syntax/Entity.java
r2006 r2014 840 840 for (Field field : getAllFields()) 841 841 { 842 logger.debug("testing: " + field.getName());842 //logger.debug("testing: " + field.getName()); 843 843 844 844 if (name.equalsIgnoreCase(field.getName()))
Note: See TracChangeset
for help on using the changeset viewer.