Changeset 2014


Ignore:
Timestamp:
07/17/09 20:49:27 (3 years ago)
Author:
mswertz
Message:

Renamed 'Login' to 'Security' framework and further improved it, including readonly in ui.
Small UI bugfixes

Location:
molgenis3_3/src/org/molgenis
Files:
2 deleted
24 edited
2 copied
1 moved

Legend:

Unmodified
Added
Removed
  • molgenis3_3/src/org/molgenis/MolgenisOptions.java

    r2013 r2014  
    7979         
    8080        @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"; 
    8282 
    8383        // @Option(name = "force_lowercase_names", param = "force_lowercase_names", 
  • molgenis3_3/src/org/molgenis/framework/Database.java

    r1975 r2014  
    2323import java.util.List; 
    2424 
    25 import org.molgenis.framework.auth.Login; 
    2625import org.molgenis.framework.data.CustomQuery; 
    2726import org.molgenis.framework.data.DatabaseException; 
    2827import org.molgenis.framework.data.Query; 
    2928import org.molgenis.framework.data.QueryRule; 
     29import org.molgenis.framework.security.Security; 
    3030import org.molgenis.model.syntax.Model; 
    3131import org.molgenis.util.CsvReader; 
     
    356356 
    357357        /** Return the login object that takes care of auth */ 
    358         public Login getLogin(); 
    359  
    360         public void setLogin(Login login); 
     358        public Security getSecurity(); 
     359 
     360        public void setLogin(Security login); 
    361361 
    362362        public Class<Entity> getClassForName(String name); 
  • molgenis3_3/src/org/molgenis/framework/UserInterface.java

    r1937 r2014  
    11package org.molgenis.framework; 
    22 
    3 import org.molgenis.framework.auth.Login; 
     3import org.molgenis.framework.security.Security; 
    44 
    55public interface UserInterface 
     
    1010        public void setDatabase(Database db); 
    1111        /**Get the login for this user interface*/ 
    12         public Login getLogin(); 
     12        public Security getLogin(); 
    1313        /**set the login for this user interface*/ 
    14         public void setLogin(Login loging); 
     14        public void setLogin(Security loging); 
    1515        /**Get the root screen of this userinterface*/ 
    1616        //public void getScreen(); 
  • molgenis3_3/src/org/molgenis/framework/data/MappingDecorator.java

    r2013 r2014  
    7373 
    7474        @Override 
    75         public int remove(CsvReader reader) 
     75        public int remove(CsvReader reader) throws DatabaseException 
    7676        { 
    7777                return mapper.remove(reader); 
  • molgenis3_3/src/org/molgenis/framework/data/inmemory/InMemoryDatabase.java

    r1975 r2014  
    1111import org.apache.log4j.Logger; 
    1212import org.molgenis.framework.Database; 
    13 import org.molgenis.framework.auth.Login; 
    1413import org.molgenis.framework.data.CustomQuery; 
    1514import org.molgenis.framework.data.DatabaseException; 
     
    1817import org.molgenis.framework.data.QueryRule; 
    1918import org.molgenis.framework.data.QueryRule.Operator; 
     19import org.molgenis.framework.security.Security; 
    2020import org.molgenis.model.syntax.Model; 
    2121import org.molgenis.util.CsvReader; 
     
    306306 
    307307        @Override 
    308         public Login getLogin() 
     308        public Security getSecurity() 
    309309        { 
    310310                // TODO Auto-generated method stub 
     
    313313 
    314314        @Override 
    315         public void setLogin(Login login) 
     315        public void setLogin(Security login) 
    316316        { 
    317317                // TODO Auto-generated method stub 
  • molgenis3_3/src/org/molgenis/framework/data/jdbc/AbstractJDBCMapper.java

    r2010 r2014  
    1717import org.molgenis.framework.data.QueryRule.Operator; 
    1818import org.molgenis.framework.data.jdbc.ColumnInfo.Type; 
     19import org.molgenis.framework.security.Security; 
    1920import org.molgenis.util.CsvReader; 
    2021import org.molgenis.util.Entity; 
     
    112113 
    113114                        List<E> entities = toList(reader, BATCH_SIZE); 
    114  
     115                                 
    115116                        if (writer != null) writer.writeHeader(entities.get(0)); 
    116117 
     
    121122 
    122123                                // add to the database 
    123                                 rowsAffected += this.add(entities); 
     124                                rowsAffected += database.add(entities); 
    124125                                if (writer != null) 
    125126                                { 
     
    147148                final String TX_TICKET = "UPDATE" + this.getClass().getSimpleName(); 
    148149                try 
    149                 { 
     150                {                        
    150151                        // start anonymous transaction for the batched update 
    151152                        database.beginPrivateTx(TX_TICKET); 
     
    163164                        // update in batches 
    164165                        for (int i = 0; i < entities.size(); i += BATCH_SIZE) 
    165                         { 
     166                        {                                
    166167                                int endindex = Math.min(i + BATCH_SIZE, entities.size()); 
    167168                                List<E> sublist = entities.subList(i, endindex); 
     
    203204 
    204205                                // update to the database 
    205                                 rowsAffected += update(entities); 
     206                                rowsAffected += database.update(entities); 
    206207                                entities = toList(reader, BATCH_SIZE); 
    207208                        } 
     
    461462        } 
    462463 
    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; 
    467490        } 
    468491 
  • molgenis3_3/src/org/molgenis/framework/data/jdbc/JDBCDatabase.java

    r2013 r2014  
    2020import org.apache.log4j.Logger; 
    2121import org.molgenis.framework.Database; 
    22 import org.molgenis.framework.auth.Login; 
    2322import org.molgenis.framework.data.CustomQuery; 
    2423import org.molgenis.framework.data.DatabaseException; 
     
    2827import org.molgenis.framework.data.jdbc.datasource.DataSourceWrapper; 
    2928import org.molgenis.framework.data.jdbc.datasource.SimpleDataSourceWrapper; 
     29import org.molgenis.framework.security.Security; 
    3030import org.molgenis.model.syntax.Model; 
    3131import org.molgenis.util.CsvReader; 
     
    6767        File fileSource; 
    6868        /** Login object */ 
    69         Login login; 
     69        Security login; 
    7070        /** Logger for this database */ 
    7171        static Logger logger = Logger.getLogger(JDBCDatabase.class.getSimpleName()); 
     
    282282        public <E extends Entity> int add(List<E> entities) throws DatabaseException, IOException 
    283283        { 
    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                } 
    286289                return 0; 
    287290        } 
     
    304307        public <E extends Entity> int update(List<E> entities) throws DatabaseException, IOException 
    305308        { 
    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                } 
    307314                return 0; 
    308315        } 
     
    325332        public <E extends Entity> int remove(List<E> entities) throws DatabaseException, IOException 
    326333        { 
    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                } 
    328339                return 0; 
    329340        } 
     
    334345                return getMapperFor(klazz).remove(reader); 
    335346        } 
    336  
    337         // @Override 
    338         // public <E extends Entity> void cacheXrefOptions(Class<E> klazz) throws 
    339         // DatabaseException 
    340         // { 
    341         // try 
    342         // { 
    343         // JDBCMapper<E> mapper = this.getMapperFor(klazz); 
    344         // mapper.cacheXrefOptions(this); 
    345         // } 
    346         // // whatever happens, close connection 
    347         // finally 
    348         // { 
    349         // closeConnection(); 
    350         // } 
    351         // } 
    352  
    353         // @Override 
    354         // public <E extends Entity> E setXrefOptions(E entity) throws 
    355         // DatabaseException 
    356         // { 
    357         // if (entity != null) 
    358         // { 
    359         // try 
    360         // { 
    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 connection 
    367         // finally 
    368         // { 
    369         // closeConnection(); 
    370         // } 
    371         // } 
    372         // return entity; 
    373         // } 
    374347 
    375348        // @Override 
     
    557530        } 
    558531 
    559         public Login getLogin() 
     532        public Security getSecurity() 
    560533        { 
    561534                return login; 
    562535        } 
    563536 
    564         public void setLogin(Login login) 
     537        public void setLogin(Security login) 
    565538        { 
    566539                this.login = login; 
     
    577550                return metadata; 
    578551        } 
     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        } 
    579568} 
  • molgenis3_3/src/org/molgenis/framework/data/jdbc/JDBCMapper.java

    r1978 r2014  
    5050        public void find(CsvWriter writer, QueryRule[] rules) throws DatabaseException; 
    5151 
    52         public int remove(CsvReader reader); 
     52        public int remove(CsvReader reader) throws DatabaseException; 
    5353 
    5454        public List<E> toList(CsvReader reader, int limit) throws Exception; 
  • molgenis3_3/src/org/molgenis/framework/data/xml/XmlDatabase.java

    r1975 r2014  
    1010import org.apache.log4j.Logger; 
    1111import org.molgenis.framework.Database; 
    12 import org.molgenis.framework.auth.Login; 
    1312import org.molgenis.framework.data.CustomQuery; 
    1413import org.molgenis.framework.data.DatabaseException; 
    1514import org.molgenis.framework.data.Query; 
    1615import org.molgenis.framework.data.QueryRule; 
     16import org.molgenis.framework.security.Security; 
    1717import org.molgenis.model.syntax.Model; 
    1818import org.molgenis.util.CsvReader; 
     
    264264 
    265265        @Override 
    266         public Login getLogin() { 
    267                 // TODO Auto-generated method stub 
    268                 return null; 
    269         } 
    270  
    271         @Override 
    272         public void setLogin(Login login) { 
     266        public Security getSecurity() { 
     267                // TODO Auto-generated method stub 
     268                return null; 
     269        } 
     270 
     271        @Override 
     272        public void setLogin(Security login) { 
    273273                // TODO Auto-generated method stub 
    274274                 
  • molgenis3_3/src/org/molgenis/framework/screen/UserInterface.java

    r1995 r2014  
    77import org.apache.log4j.Logger; 
    88import org.molgenis.framework.Database; 
    9 import org.molgenis.framework.auth.Login; 
    109import org.molgenis.framework.file.FileLink; 
    1110import org.molgenis.framework.screen.menu.MenuScreen; 
     11import org.molgenis.framework.security.Security; 
    1212import org.molgenis.util.Tuple; 
    1313 
     
    2727        private static Logger logger = Logger.getLogger(UserInterface.class.getSimpleName()); 
    2828        /** The login * */ 
    29         private Login login; 
     29        private Security login; 
    3030        /** The Database used by this UserInterface */ 
    3131        //private Database database; 
     
    4141         *        for authentication/authorization 
    4242         */ 
    43         public UserInterface(Login login) 
     43        public UserInterface(Security login) 
    4444        { 
    4545                super("main", null); // this is the root of the screen tree. 
     
    5555         * @return Login 
    5656         */ 
    57         public Login getLogin() 
     57        public Security getLogin() 
    5858        { 
    5959                return login; 
     
    6565         * @param login 
    6666         */ 
    67         public void setLogin( Login login ) 
     67        public void setLogin( Security login ) 
    6868        { 
    6969                this.login = login; 
  • molgenis3_3/src/org/molgenis/framework/screen/form/FormController.java

    r2013 r2014  
    398398 
    399399                // set form level rights 
    400                 boolean formReadonly = view.isReadonly() || !view.getLogin().hasEditPermission(view.create().getClass()); 
     400                boolean formReadonly = view.isReadonly() || !view.getSecurity().hasEditPermission(view.create().getClass()); 
    401401                view.setReadonly(formReadonly); 
    402402 
     
    411411                for (E record : allRecords) 
    412412                { 
    413                         boolean rowReadonly = formReadonly || !view.getLogin().hasEditPermission(record.getClass()); 
     413                        boolean rowReadonly = formReadonly || !view.getSecurity().hasEditPermission(record.getClass()); 
    414414 
    415415                        if (rowReadonly) record.setReadonly(true); 
  • molgenis3_3/src/org/molgenis/framework/screen/form/FormScreen.java

    r2013 r2014  
    2323import org.apache.log4j.Logger; 
    2424import org.molgenis.framework.Database; 
    25 import org.molgenis.framework.auth.Login; 
    2625import org.molgenis.framework.data.DatabaseException; 
    2726import org.molgenis.framework.data.DatabasePager; 
     
    3029import org.molgenis.framework.data.csv.CsvEntityReader; 
    3130import org.molgenis.framework.html.FileInput; 
     31import org.molgenis.framework.html.HtmlForm; 
    3232import org.molgenis.framework.html.HtmlInput; 
    3333import org.molgenis.framework.screen.Screen; 
     
    4747import org.molgenis.framework.screen.form.commands.ViewListViewCommand; 
    4848import org.molgenis.framework.screen.form.commands.ViewRecordViewCommand; 
     49import org.molgenis.framework.security.Security; 
    4950import org.molgenis.util.Entity; 
    5051import org.molgenis.util.Tuple; 
     
    6566         * @param newrecord 
    6667         */ 
    67         public abstract Vector<HtmlInput> getInputs(E entity, boolean newrecord); 
     68        public abstract HtmlForm<E> getInputs(E entity, boolean newrecord); 
    6869 
    6970        /** 
     
    277278        public boolean isVisible() 
    278279        { 
    279                 return this.getLogin().hasReadPermission(this.create().getClass()); 
     280                return this.getSecurity().hasReadPermission(this.create().getClass()); 
    280281        } 
    281282 
     
    371372        { 
    372373                Vector<String> headers = new Vector<String>(); 
    373                 for (HtmlInput input : getInputs(this.create(), true)) 
     374                for (HtmlInput input : getInputs(this.create(), true).getInputs()) 
    374375                { 
    375376                        headers.add(input.getLabel()); 
     
    383384         * @throws DatabaseException 
    384385         */ 
    385         public Vector<HtmlInput> getNewInputs() throws DatabaseException 
     386        public HtmlForm<E> getNewRecordForm() throws DatabaseException 
    386387        { 
    387388                E entity = this.create(); 
     
    396397         *         row on screen. 
    397398         */ 
    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>>(); 
    401402 
    402403                try 
     
    404405                        for (E entity : getRecords()) 
    405406                        { 
    406                                 records.add(getInputs(entity, false)); 
     407                                HtmlForm<E> record = getInputs(entity, false); 
     408                                record.setReadonly(!getSecurity().hasEditPermission(entity)); 
     409                                records.add(record); 
    407410                        } 
    408411                } 
     
    427430                Map<String, String> nameLabelMap = new TreeMap<String, String>(); 
    428431 
    429                 for (HtmlInput input : this.getNewInputs()) 
     432                for (HtmlInput input : this.getNewRecordForm().getInputs()) 
    430433                { 
    431434                        // getSearchFields maps xref and mref field to their label 
     
    692695        } 
    693696 
    694         public Login getLogin() 
     697        public Security getSecurity() 
    695698        { 
    696699                return getRootScreen().getLogin(); 
  • molgenis3_3/src/org/molgenis/framework/screen/form/commands/AddBatchCommand.java

    r1994 r2014  
    5656 
    5757                // delegate to the formscreen 
    58                 List<HtmlInput> inputs = this.getScreen().getNewInputs(); 
     58                List<HtmlInput> inputs = this.getScreen().getNewRecordForm().getInputs(); 
    5959 
    6060                // remove not-null constraints 
  • molgenis3_3/src/org/molgenis/framework/screen/form/commands/AddCommand.java

    r1994 r2014  
    3535        { 
    3636                // delegate to the formscreen 
    37                 return this.getScreen().getNewInputs(); 
     37                return this.getScreen().getNewRecordForm().getInputs(); 
    3838        } 
    3939 
  • molgenis3_3/src/org/molgenis/framework/screen/form/commands/AddCommand2.java

    r1994 r2014  
    4343        { 
    4444                Form f = new Form(); 
    45                 f.addAll(this.getScreen().getNewInputs());               
     45                f.addAll(this.getScreen().getNewRecordForm().getInputs());               
    4646                f.setAll(previousRequest); 
    4747                return f.getInputs(); 
  • molgenis3_3/src/org/molgenis/framework/screen/form/commands/ViewEditViewCommand.java

    r1994 r2014  
    3636                //show add button when not in recordview 
    3737                //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(); 
    3942        } 
    4043} 
  • molgenis3_3/src/org/molgenis/framework/screen/plugin/PluginScreen.java

    r1994 r2014  
    66 
    77import org.molgenis.framework.Database; 
    8 import org.molgenis.framework.auth.Login; 
    98import org.molgenis.framework.screen.Screen; 
    109import org.molgenis.framework.screen.ScreenController; 
    1110import org.molgenis.framework.screen.ScreenMessage; 
    1211import org.molgenis.framework.screen.common.SimpleScreen; 
     12import org.molgenis.framework.security.Security; 
    1313import org.molgenis.util.Tuple; 
    1414 
     
    2626        } 
    2727 
    28         public Login getLogin() 
     28        public Security getLogin() 
    2929        { 
    3030                return this.getRootScreen().getLogin(); 
  • molgenis3_3/src/org/molgenis/framework/security/Security.java

    r2013 r2014  
    1 package org.molgenis.framework.auth; 
     1package org.molgenis.framework.security; 
    22 
    33import java.text.ParseException; 
     
    1010 
    1111/** 
    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. 
    1324 */ 
    14 public interface Login 
     25public interface Security 
    1526{ 
    1627        /** 
     
    2839 
    2940        /** 
    30          * Un-authenticate the user. 
     41         * Un-authenticate the user. Now the user will be perceived as 'guest'. 
    3142         */ 
    3243        public void logout(); 
    3344 
    3445        /** 
    35          * Reloads all permission settings for this user. 
     46         * Reloads all permission settings for this user from database. 
    3647         *  
    3748         * @throws ParseException 
     
    4152 
    4253        /** 
    43          * Whether the current use has ben authenicated. Otherwise the user is a 
    44          * guest. 
     54         * Indicates whether the current use has been authenicated. Otherwise the 
     55         * user is a guest. 
    4556         *  
    4657         * @return 
     
    4859        public boolean isAuthenticated(); 
    4960 
    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  
    6461        /** 
    65          * The name of this user. 
     62         * The name of the logged in user user. 
    6663         *  
    67          * @return 
     64         * @return the unique name of the user 
    6865         */ 
    6966        public String getUserName(); 
     
    7269         * The system id of this user. 
    7370         *  
    74          * @return 
     71         * @return numeric identifier of the user 
    7572         */ 
    7673        public Integer getUserId(); 
    7774 
    7875        /** 
    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. 
    8079         *  
    81          * @return 
     80         * @return login required 
    8281         */ 
    8382        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 
    84114} 
  • molgenis3_3/src/org/molgenis/framework/security/SimpleSecurity.java

    r2013 r2014  
    1 package org.molgenis.framework.auth; 
     1package org.molgenis.framework.security; 
    22 
    33import java.util.List; 
     
    88import org.molgenis.util.Entity; 
    99 
    10 public class SimpleLogin implements Login { 
     10public class SimpleSecurity implements Security { 
    1111 
    1212        @Override 
     
    9999                return true; 
    100100        } 
    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         } 
    108101} 
  • molgenis3_3/src/org/molgenis/framework/security/package-info.java

    r1937 r2014  
    11/** 
    2  * {@link org.molgenis.framework.auth} minimal authentication and authorization framework. 
     2 * {@link org.molgenis.framework.security} minimal authentication and authorization framework. 
    33 */ 
    4 package org.molgenis.framework.auth; 
     4package org.molgenis.framework.security; 
  • molgenis3_3/src/org/molgenis/framework/server/AbstractMolgenisServlet.java

    r2013 r2014  
    3535import org.apache.log4j.Logger; 
    3636import org.molgenis.framework.Database; 
    37 import org.molgenis.framework.auth.Login; 
    3837import org.molgenis.framework.data.CustomQuery; 
    3938import org.molgenis.framework.data.DatabaseException; 
     
    4443import org.molgenis.framework.screen.UserInterface; 
    4544import org.molgenis.framework.screen.form.FormScreen; 
     45import org.molgenis.framework.security.Security; 
    4646import org.molgenis.framework.style.original.MolgenisOriginalStyle; 
    4747import org.molgenis.util.Entity; 
     
    100100         * can override this to set a security mechanism. 
    101101         */ 
    102         public abstract Login createLogin(Database db, HttpServletRequest request); 
     102        public abstract Security createLogin(Database db, HttpServletRequest request); 
    103103 
    104104        /** 
     
    106106         * path... 
    107107         */ 
    108         public abstract Screen createApplication(Login userLogin); 
     108        public abstract Screen createApplication(Security userLogin); 
    109109 
    110110        /** 
     
    235235                // login/logout 
    236236                HttpSession session = request.getSession(); 
    237                 Login userLogin = null; 
     237                Security userLogin = null; 
    238238                // Get appplication from session (or create one) 
    239239                Screen molgenis = (UserInterface) session.getAttribute("application"); 
     
    978978                                for (Object label : xref_label) 
    979979                                { 
    980                                         out.write(result.get(i).getString((String) label) + "."); 
     980                                        out.write(result.get(i).getString((String) label)); 
    981981                                } 
    982982                                out.write("\""); 
  • molgenis3_3/src/org/molgenis/framework/style/original/FormScreen.ftl

    r2012 r2014  
    7474                <!--search box--> 
    7575                <label>Search:</label><select title="choose attribute" name="__filter_attribute"> 
    76                 <#list screen.getNewInputs() as input> 
     76                <#list screen.getNewRecordForm().inputs as input> 
    7777                        <option value="${screen.getSearchField(input.name)}">${input.label}</option> 
    7878                </#list> 
     
    102102        <#assign requiredcount = 0 /> 
    103103        <#assign required = "" /> 
    104         <#list screen.getNewInputs() as input> 
     104        <#list screen.getNewRecordForm() as input> 
    105105                <#if !input.isHidden()> 
    106106                        <tr> 
     
    183183                                <td> 
    184184                                        <select name="attribute"> 
    185         <#list screen.getNewInputs() as input> 
     185        <#list screen.getNewRecordForm() as input> 
    186186                                        <option value="${input.name}">${input.label}</option> 
    187187        </#list> 
     
    219219<#assign massupdate = command.screen.getSelectedIds()> 
    220220<#assign screen = command.screen> 
    221 <body onload="<#list screen.getNewInputs() 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>"> 
    222222        <p class="form_header">Update multiple ${screen.label} records</p> 
    223223        <#if massupdate?has_content> 
     
    233233                        <input type="hidden" name="massUpdate" value="${id}"> 
    234234        </#list> 
    235         <#list screen.getNewInputs() as input> 
     235        <#list screen.getNewRecordForm() as input> 
    236236                <#if !input.isHidden()> 
    237237                        <tr> 
     
    266266                <#assign required = "" /> 
    267267                <#assign readonly = "true" /> 
    268                 <#list record as input> 
     268                <#list record.inputs as input> 
    269269                        <#if !input.isReadonly()> 
    270270                                <#assign readonly = "false" /> 
     
    294294</table></td><td  class="edit_button_area"> 
    295295                <#if screen.mode.toString() == "recordview" > 
    296                         <#if screen.readonly == true> 
     296                        <#if readonly = "true"> 
    297297                        <#else> 
    298298                                <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" />                          
     
    316316        <tr> 
    317317                <th><label>&nbsp;</label></th> 
    318                         <#list record as input> 
     318                        <#list record.inputs as input> 
    319319                                <#if input.getName() == screen.getIdField()>     
    320320                                        <th><label>&nbsp;</label></th> 
     
    322322                        </#list> 
    323323                 
    324                         <#list record as input> 
    325                 <th> 
     324                        <#list record.inputs as input>                           
    326325                                <#if screen.getController().getClass().getSimpleName() != "FormController"> 
    327326                                        <#if input.isHidden()> 
    328327                                        <#else> 
    329                                                 <label class="tableheader" title="${input.getDescription()}">${input.getLabel()}</label> 
     328                                        <th> 
     329                                                <label class="tableheader" title="${input.getDescription()}">${input.getLabel()}</label></th> 
    330330                                        </#if> 
    331331                                <#else> 
     
    334334                                        <#else> 
    335335                        <#--<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();"> 
    337337                                        ${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> 
    338338                        </label> 
     339                                        </th> 
    339340                                        </#if> 
    340341                                </#if> 
    341                 </th> 
     342 
    342343                        </#list> 
    343344        </tr>    
     
    347348                <#assign rowcolor = offset % 2>          
    348349                <#assign readonly = "*" /> 
    349                 <#list record as input> 
     350                <#list record.inputs as input> 
    350351                        <#if !input.isReadonly()> 
    351352                                <#assign readonly = "" /> 
     
    355356        <td> 
    356357                <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> 
    358363        </td> 
    359                 <#list record as input> 
     364                <#list record.inputs as input> 
    360365                        <#if input.getName()?lower_case == screen.getIdField()?lower_case>                                       
    361366        <td><input type="checkbox" name="massUpdate" value="${input.getHtmlValue()}"></td> 
     
    366371                </#list> 
    367372         
    368                 <#list record as input> 
     373                <#list record.inputs as input> 
    369374                                <#if input.isHidden()> 
    370         <td></td> 
    371375                                <#else> 
    372376                                        <#if input.getTarget() != "" && input.getObject()?exists > 
     
    386390                <tr> 
    387391                        <td></td> 
    388                 <#list screen.getNewInputs() as input> 
     392                <#list screen.getNewRecordForm().inputs as input> 
    389393                        <#if input.getName() == screen.getIdField()> 
    390394                        <td><input title="select all visible" type="checkbox" name="checkall" id="checkall" onclick="Javascript:checkAll('${screen.name}_form','massUpdate')" /></td> 
     
    405409                <table> 
    406410                <tr><td colspan="2"><i>Set constants (overrides uploaded data).</i></td></tr> 
    407                 <#list screen.getNewInputs() as input> 
     411                <#list screen.getNewRecordForm() as input> 
    408412                <tr><td><label>${input.label}</label></td><td>${input.toHtml()}</td></tr> 
    409413                </#list> 
  • molgenis3_3/src/org/molgenis/generators/screen/FormScreenGen.java.ftl

    r2013 r2014  
    128128         
    129129        @Override 
    130         public Vector<HtmlInput> getInputs(${entity} entity, boolean newrecord) 
     130        public HtmlForm<${entity}> getInputs(${entity} entity, boolean newrecord) 
    131131        { 
    132132<#if parent_form?exists> 
     
    165165                form.setNewRecord(newrecord); 
    166166                form.setReadonly(isReadonly()); 
    167                 return form.getInputs(); 
     167                return form; 
    168168        } 
    169169         
  • molgenis3_3/src/org/molgenis/generators/servlet/MolgenisServletGen.ftl

    r2013 r2014  
    1818 
    1919import org.molgenis.framework.Database; 
    20 import org.molgenis.framework.auth.Login; 
     20import org.molgenis.framework.security.Security; 
    2121import org.molgenis.framework.data.DatabaseException; 
    2222import org.molgenis.framework.screen.UserInterface; 
     
    4747        } 
    4848 
    49         public Login createLogin( Database db, HttpServletRequest request ) 
     49        public Security createLogin( Database db, HttpServletRequest request ) 
    5050        { 
    5151                return new ${loginclass}(); 
    5252        } 
    5353 
    54         public UserInterface createApplication( Login userLogin ) 
     54        public UserInterface createApplication( Security userLogin ) 
    5555        { 
    5656                UserInterface app = new UserInterface( userLogin); 
  • molgenis3_3/src/org/molgenis/generators/sql/FillMetadataTablesGen.sql.ftl

    r1904 r2014  
    11<#include "GeneratorHelper.ftl"> 
    22delete from molgenis_fieldmetadata; 
    3 delete from molgenis_entitymetadata; 
     3INSERT INTO molgenisuser(name,password,superuser) values ("admin","admin",true); 
    44<#list model.getConcreteEntities() as entity> 
    5 INSERT INTO molgenis_entitymetadata(name,classname) values ("${name(entity)}","${package}.${Name(entity)}"); 
    6 <#list entity.fields as field> 
     5INSERT INTO molgenisentity(name,classname) values ("${name(entity)}","${package}.${Name(entity)}"); 
     6<#--list entity.fields as field> 
    77INSERT 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--> 
    89</#list> 
    9 </#list> 
  • molgenis3_3/src/org/molgenis/model/syntax/Entity.java

    r2006 r2014  
    840840                for (Field field : getAllFields()) 
    841841                { 
    842                         logger.debug("testing: " + field.getName()); 
     842                        //logger.debug("testing: " + field.getName()); 
    843843 
    844844                        if (name.equalsIgnoreCase(field.getName())) 
Note: See TracChangeset for help on using the changeset viewer.