Changeset 2682


Ignore:
Timestamp:
03/08/10 13:52:23 (2 years ago)
Author:
mswertz
Message:

Added various tests including for customhtmlheaders.

starting to play around with authentication plugin.

Location:
molgenis_test/3.3
Files:
13 added
6 deleted
11 edited
2 copied
1 moved

Legend:

Unmodified
Added
Removed
  • molgenis_test/3.3/.classpath

    r2358 r2682  
    3838        <classpathentry kind="lib" path="/molgenis/lib/jdom-1.0.jar"/> 
    3939        <classpathentry kind="lib" path="/molgenis/lib/jta-1.1.jar"/> 
    40         <classpathentry kind="lib" path="/molgenis/lib/junit-4.4.jar"/> 
    4140        <classpathentry kind="lib" path="/molgenis/lib/log4j-1.2.9.jar"/> 
    4241        <classpathentry kind="lib" path="/molgenis/lib/mysql-connector-java-5.1.2-beta-bin.jar"/> 
     
    5554        <classpathentry kind="lib" path="/molgenis/lib/xml-resolver-1.2.jar"/> 
    5655        <classpathentry kind="lib" path="/molgenis/lib/XmlSchema-1.4.2.jar"/> 
     56        <classpathentry kind="lib" path="/molgenis/lib/junit-4.8.1.jar"/> 
    5757        <classpathentry kind="output" path="build/classes"/> 
    5858</classpath> 
  • molgenis_test/3.3/WebContent/generated-res

    • Property svn:ignore set to
      *
  • molgenis_test/3.3/handwritten/java/org/molgenis/plugins/DatabaseLogin.java

    r2363 r2682  
    1 package org.molgenis.plugins.auth; 
     1package org.molgenis.plugins; 
    22 
    33import java.text.ParseException; 
     
    77 
    88import org.apache.log4j.Logger; 
     9import org.molgenis.auth.MolgenisPermission; 
     10import org.molgenis.auth.MolgenisUser; 
     11import org.molgenis.auth.MolgenisUserGroup; 
    912import org.molgenis.framework.db.Database; 
    1013import org.molgenis.framework.db.DatabaseException; 
     
    2124 
    2225        /** The current use that has been authenticated (if any) */ 
    23         Molgenis_User user; 
    24         /** List of Roles of this user */ 
    25         List<Molgenis_Role> roles; 
     26        MolgenisUser user; 
     27        /** The groups current user is part of */ 
     28        List<MolgenisUserGroup> groups; 
     29        /** If the current user is super user */ 
     30        Boolean superuser = false; 
    2631        /** Map to quickly retrieve a permission */ 
    2732        Map<String, Permission> permissionMap = new TreeMap<String, Permission>(); 
    28         /** handle to the MOLGENIS database */ 
    29         Database db; 
    3033        /** for logging */ 
    3134        Logger logger = Logger.getLogger(this.getClass().getSimpleName()); 
    3235 
    33         public DatabaseLogin(Database db) 
    34         { 
    35                 this.db = db; 
    36         } 
    37  
    38         @Override 
    39         public QueryRule getUserFilters(Entity entity) 
    40         { 
    41                 // TODO Auto-generated method stub 
     36        public DatabaseLogin() 
     37        { 
     38        } 
     39 
     40        @Override 
     41        public QueryRule getRowlevelSecurityFilters(Entity entity) 
     42        { 
    4243                return null; 
    4344        } 
     
    4647        public Integer getUserId() 
    4748        { 
    48                 if (user != null) return user.getId(); 
     49                if (user != null) 
     50                        return user.getId(); 
    4951                return null; 
    5052        } 
     
    5355        public String getUserName() 
    5456        { 
    55                 if (user != null) return user.getName(); 
     57                if (user != null) 
     58                        return user.getName(); 
    5659                return null; 
    5760        } 
    5861 
    5962        @Override 
    60         public boolean hasEditPermission(Entity entity) 
    61         { 
    62                 logger.debug("Checking edit permission for entity " + entity.getClass().getName()); 
    63                 if (permissionMap.get(entity.getClass().getName()) != null 
    64                                 && permissionMap.get(entity.getClass().getName()).equals(Permission.edit)) 
     63        public <E extends Entity> boolean canWrite(Class<E> entityClass) 
     64        { 
     65                // logger.debug("Checking edit permission for entity " + 
     66                // entityClass.getName()); 
     67                if (this.superuser) 
     68                        return true; 
     69                if (permissionMap.get(entityClass.getName()) != null 
     70                                && permissionMap.get(entityClass.getName()).equals(Permission.edit)) 
    6571                { 
    6672                        logger.debug("true"); 
     
    7177 
    7278        @Override 
    73         public boolean hasReadPermission(Entity entity) 
    74         { 
    75                 logger.debug("Checking read permission for entity " + entity.getClass().getName()); 
    76                 if (this.hasEditPermission(entity) || permissionMap.get(entity.getClass().getName()) != null 
    77                                 && permissionMap.get(entity.getClass().getName()).equals(Permission.read)) 
    78                 { 
    79                         logger.debug("true"); 
     79        public <E extends Entity> boolean canRead(Class<E> entityClass) 
     80        { 
     81                logger.debug("Checking read permission for entity " + entityClass.getName()); 
     82                if (this.superuser) 
     83                        return true; 
     84                if (this.canWrite(entityClass) || permissionMap.get(entityClass.getName()) != null 
     85                                && permissionMap.get(entityClass.getName()).equals(Permission.read)) 
     86                { 
     87                        // logger.debug("true"); 
    8088                        return true; 
    8189                } 
     
    9098 
    9199        @Override 
    92         public boolean login(String name, String password) 
     100        public boolean login(Database db, String name, String password) 
    93101        { 
    94102                // username is required 
    95                 if (name == null || "".equals(name)) return false; 
     103                if (name == null || "".equals(name)) 
     104                        return false; 
    96105                // password is required 
    97                 if (password == null || "".equals(password)) return false; 
     106                if (password == null || "".equals(password)) 
     107                        return false; 
    98108 
    99109                try 
    100110                { 
    101                         Molgenis_User example = new Molgenis_User(); 
     111                        MolgenisUser example = new MolgenisUser(); 
    102112                        example.setName(name); 
    103113                        example.setPassword(password); 
    104                         List<Molgenis_User> users = db.findByExample(example); 
     114                        List<MolgenisUser> users = db.findByExample(example); 
    105115                        if (users.size() == 1 && users.get(0).getName().equals(name) && users.get(0).getPassword().equals(password)) 
    106116                        { 
    107117                                user = users.get(0); 
    108                                 this.reload(); 
     118                                this.reload(db); 
    109119                                return true; 
    110120                        } 
     
    125135 
    126136        @Override 
    127         public void reload() throws DatabaseException, ParseException 
    128         { 
    129                 if (this.user == null) return; 
    130  
    131                 // get the roles 
    132                 roles = db.query(Molgenis_Role.class).in("id", user.getRoles()).find(); 
     137        public void reload(Database db) throws DatabaseException, ParseException 
     138        { 
     139                if (this.user == null) 
     140                        return; 
     141 
     142                // get the groups this user is member of 
     143                groups = db.query(MolgenisUserGroup.class).equals("members", user.getId()).find(); 
    133144 
    134145                // create the permissions map 
    135146                permissionMap = new TreeMap<String, Permission>(); 
    136                 for (Molgenis_Role role : roles) 
    137                 { 
    138                         // get the editable entities 
    139                         if (role.getAllowEdit().size() > 0) 
     147 
     148                for (MolgenisUserGroup group : groups) 
     149                { 
     150                        // get the permissions for this group 
     151                        List<MolgenisPermission> permissions = db.query(MolgenisPermission.class).equals("group", group.getId()) 
     152                                        .find(); 
     153 
     154                        for (MolgenisPermission permission : permissions) 
    140155                        { 
    141                                 List<Molgenis_EntityMetaData> editableEntities = db.query(Molgenis_EntityMetaData.class).in("id", 
    142                                                 role.getAllowEdit()).find(); 
    143                                 for (Molgenis_EntityMetaData entity : editableEntities) 
    144                                 { 
    145                                         permissionMap.put(entity.getClassName(), Permission.edit); 
    146                                 } 
     156                                if (permission.getCanEdit()) 
     157                                        permissionMap.put(permission.getMolgenisEntity(), Permission.edit); 
     158                                else if (permission.getCanRead() && permissionMap.get(permission.getMolgenisEntity()) != null) 
     159                                        permissionMap.put(permission.getMolgenisEntity(), Permission.read); 
     160 
    147161                        } 
    148                         // get the viewable entities 
    149                         if (role.getAllowView().size() > 0) 
    150                         { 
    151                                 List<Molgenis_EntityMetaData> viewableEntities = db.query(Molgenis_EntityMetaData.class).in("id", 
    152                                                 role.getAllowView()).find(); 
    153                                 for (Molgenis_EntityMetaData entity : viewableEntities) 
    154                                 { 
    155                                         // only add if not already editable permission 
    156                                         if (permissionMap.get(entity.getClassName()) == null) 
    157                                         { 
    158                                                 permissionMap.put(entity.getClassName(), Permission.read); 
    159                                         } 
    160                                 } 
    161                         } 
    162162                } 
    163163 
     
    168168        { 
    169169                StringBuffer result = new StringBuffer(); 
    170                 result.append("Login(user=" + this.getUserName() + " roles="); 
    171                 for (int i = 0; i < roles.size(); i++) 
    172                 { 
    173                         if (i > 0) result.append("," + roles.get(i).getName()); 
     170                result.append("Login(user=" + this.getUserName() + " groups="); 
     171                for (int i = 0; i < groups.size(); i++) 
     172                { 
     173                        if (i > 0) 
     174                                result.append("," + groups.get(i).getName()); 
    174175                        else 
    175                                 result.append(roles.get(i).getName()); 
    176                 } 
    177                 for (String key : permissionMap.keySet()) 
    178                 { 
    179                         result.append(" " + key + "=" + permissionMap.get(key)); 
    180                 } 
     176                                result.append(groups.get(i).getName()); 
     177                } 
     178                // for (String key : permissionMap.keySet()) 
     179                // { 
     180                // result.append(" " + key + "=" + permissionMap.get(key)); 
     181                // } 
    181182                result.append(")"); 
    182183 
     
    184185        } 
    185186 
     187        @Override 
     188        public boolean isLoginRequired() 
     189        { 
     190                return false; 
     191        } 
     192 
     193        @Override 
     194        public <E extends Entity> boolean canWrite(E entity) throws DatabaseException 
     195        { 
     196                // TODO Auto-generated method stub 
     197                return true; 
     198        } 
     199 
     200        public MolgenisUser getMolgenisUser() 
     201        { 
     202                return this.user; 
     203        } 
     204 
     205        @Override 
     206        public <E extends Entity> boolean canRead(Entity entity) throws DatabaseException 
     207        { 
     208                // TODO Auto-generated method stub 
     209                return false; 
     210        } 
    186211} 
  • molgenis_test/3.3/handwritten/java/org/molgenis/plugins/auth/DummyLogin.java

    r2363 r2682  
    11package org.molgenis.plugins.auth; 
    22 
     3import java.text.ParseException; 
     4 
     5import org.molgenis.framework.db.Database; 
    36import org.molgenis.framework.db.DatabaseException; 
    47import org.molgenis.framework.db.QueryRule; 
     8import org.molgenis.framework.security.Login; 
    59import org.molgenis.util.Entity; 
    610 
    711 
    8 public class DummyLogin implements Security 
     12public class DummyLogin implements Login 
    913{ 
    1014        String name = null; 
    1115         
    1216        @Override 
    13         public QueryRule getUserFilters(Entity entity) 
     17        public QueryRule getRowlevelSecurityFilters(Entity entity) 
    1418        { 
    1519                // TODO Auto-generated method stub 
     
    3135 
    3236        @Override 
    33         public boolean hasEditPermission(Entity entity) throws DatabaseException 
     37        public boolean canWrite(Entity entity) throws DatabaseException 
    3438        { 
    3539                // TODO Auto-generated method stub 
     
    3842 
    3943        @Override 
    40         public boolean hasReadPermission(Entity entity) 
     44        public boolean canRead(Entity entity) 
    4145        { 
    4246                // TODO Auto-generated method stub 
     
    5256 
    5357        @Override 
    54         public void reload() 
    55         { 
    56                 // TODO Auto-generated method stub 
    57                  
    58         } 
    59  
    60         @Override 
    61         public boolean login(String name, String password) 
     58        public boolean login(Database db, String name, String password) 
    6259        { 
    6360                this.name = name; 
     
    7168        } 
    7269 
     70        @Override 
     71        public <E extends Entity> boolean canRead(Class<E> entityClass) throws DatabaseException 
     72        { 
     73                // TODO Auto-generated method stub 
     74                return false; 
     75        } 
     76 
     77        @Override 
     78        public <E extends Entity> boolean canWrite(Class<E> entityClass) throws DatabaseException 
     79        { 
     80                // TODO Auto-generated method stub 
     81                return false; 
     82        } 
     83 
     84        @Override 
     85        public boolean isLoginRequired() 
     86        { 
     87                // TODO Auto-generated method stub 
     88                return false; 
     89        } 
     90 
     91        @Override 
     92        public void reload(Database db) throws DatabaseException, ParseException 
     93        { 
     94                //nothing to do 
     95                 
     96        } 
     97 
    7398} 
  • molgenis_test/3.3/handwritten/java/org/molgenis/plugins/auth/UserLogin.ftl

    r1881 r2682  
    1 <!--Date:        December 3, 2008 
    2  * Template:    PluginScreenFTLTemplateGen.ftl.ftl 
    3  * generator:   org.molgenis.generate.screen.PluginScreenFTLTemplateGen 3.0.3 
    4  *  
    5  * THIS FILE IS A TEMPLATE. PLEASE EDIT :-) 
    6 --> 
    7 <#macro plugins_auth_UserLogin screen> 
     1<#macro org_molgenis_plugins_auth_UserLogin screen> 
    82<!-- normally you make one big form for the whole plugin--> 
    93<form method="post" enctype="multipart/form-data" name="${screen.name}"> 
     
    1812                ${screen.label} 
    1913                </div> 
    20                 <#--messages--> 
     14                 
     15                <#--optional: mechanism to show messages--> 
    2116                <#list screen.getMessages() as message> 
    2217                        <#if message.success> 
     
    2621                        </#if> 
    2722                </#list> 
     23                 
    2824                <div class="screenbody"> 
    2925                        <div class="screenpadding">      
    3026<#--begin your plugin-->         
    3127 
    32 <#assign login = screen.login/> 
    33 <#assign form = screen.inputs/> 
    34 <#if login.authenticated> 
    35         You are logged in as ${login.userName}. 
    36         ${form.logout} 
    37 <#else> 
    38         Name: ${form.name}<br/>,  
    39         Password:${form.password} 
    40         <br/> ${form.login} 
    41 </#if> 
    42  
     28Create your plugin layout code here. 
     29<#--<input name="myinput" value="${screen.getMyValue()}"> 
     30<input type="submit" value="Change name" onclick="__action.value='do_myaction';return true;"/--> 
     31         
    4332<#--end of your plugin-->        
    4433                        </div> 
  • molgenis_test/3.3/handwritten/java/org/molgenis/plugins/auth/UserLogin.java

    r2363 r2682  
    1 /* Date:        December 3, 2008 
     1/* Date:        February 22, 2010 
    22 * Template:    PluginScreenJavaTemplateGen.java.ftl 
    3  * generator:   org.molgenis.generate.screen.PluginScreenJavaTemplateGen 3.0.3 
     3 * generator:   org.molgenis.generators.ui.PluginScreenJavaTemplateGen 3.3.2-testing 
    44 *  
    55 * THIS FILE IS A TEMPLATE. PLEASE EDIT :-) 
     
    88package org.molgenis.plugins.auth; 
    99 
    10 import java.security.Security; 
    11  
     10import org.molgenis.framework.db.Database; 
     11import org.molgenis.framework.ui.ScreenModel; 
    1212import org.molgenis.framework.ui.PluginModel; 
    13 import org.molgenis.framework.ui.ScreenMessage; 
    14 import org.molgenis.framework.ui.ScreenModel; 
    15 import org.molgenis.framework.ui.html.ActionInput; 
    16 import org.molgenis.framework.ui.html.Form; 
    17 import org.molgenis.framework.ui.html.PasswordInput; 
    18 import org.molgenis.framework.ui.html.StringInput; 
    1913import org.molgenis.util.Tuple; 
    2014 
    21 /** 
    22  * This screen shows a login box, or if someone is already logged in, the user 
    23  * information and a logout button. 
    24  */ 
    2515public class UserLogin extends PluginModel 
    2616{ 
    27         Security login; 
    28  
    2917        public UserLogin(String name, ScreenModel parent) 
    3018        { 
    3119                super(name, parent); 
    32                 login = new DatabaseLogin(this.getDatabase()); 
    3320        } 
    3421 
     
    3623        public String getViewName() 
    3724        { 
    38                 return "plugins_auth_UserLogin"; 
     25                return "org_molgenis_plugins_auth_UserLogin"; 
    3926        } 
    4027 
     
    4633 
    4734        @Override 
    48         public void handleRequest(Tuple request) 
     35        public void handleRequest(Database db, Tuple request) 
    4936        { 
    50                 // reset messages 
    51                 this.setMessages(); 
    52  
    53                 logger.debug(request); 
    54                 if ("Login".equals(request.getAction())) 
    55                 { 
    56                         boolean loggedIn = getLogin().login(request.getString("name"), request.getString("password")); 
    57                         if (!loggedIn)  
    58                                 this.setMessages(new ScreenMessage("login failed: username or password unknown", false)); 
    59                         else 
    60                                 this.getRootScreen().setLogin(login); 
    61                 } 
    62                 else if ("Logout".equals(request.getAction())) 
    63                 { 
    64                         getLogin().logout(); 
    65                 } 
     37                //replace example below with yours 
     38//              try 
     39//              { 
     40//              Database db = this.getDatabase(); 
     41//              String action = request.getString("__action"); 
     42//               
     43//              if( action.equals("do_add") ) 
     44//              { 
     45//                      Experiment e = new Experiment(); 
     46//                      e.set(request); 
     47//                      db.add(e); 
     48//              } 
     49//              } catch(Exception e) 
     50//              { 
     51//                      //e.g. show a message in your form 
     52//              } 
    6653        } 
    6754 
    6855        @Override 
    69         public void reload() 
     56        public void reload(Database db) 
    7057        { 
    71                 // nothing todo, Login takes care of this. 
     58//              try 
     59//              { 
     60//                      Database db = this.getDatabase(); 
     61//                      Query q = db.query(Experiment.class); 
     62//                      q.like("name", "test"); 
     63//                      List<Experiment> recentExperiments = q.find(); 
     64//                       
     65//                      //do something 
     66//              } 
     67//              catch(Exception e) 
     68//              { 
     69//                      //... 
     70//              } 
    7271        } 
    73  
    74         // DUMMY FOR TESTING 
    75         @Override 
    76         public Security getLogin() 
    77         { 
    78                 return login; 
    79         } 
    80  
    81         public Form getInputs() 
    82         { 
    83                 Form f = new Form(); 
    84  
    85                 if (getLogin().isAuthenticated()) 
    86                 { 
    87                         f.add(new ActionInput("Logout")); 
    88                 } 
    89                 else 
    90                 { 
    91                         f.add(new ActionInput("Login")); 
    92                         f.add(new PasswordInput("password")); 
    93                         f.add(new StringInput("name")); 
    94                 } 
    95  
    96                 return f; 
    97         } 
    98  
     72         
    9973        @Override 
    10074        public boolean isVisible() 
    10175        { 
    102                 // TODO Auto-generated method stub 
     76                //you can use this to hide this plugin, e.g. based on user rights. 
     77                //e.g. 
     78                //if(!this.getLogin().hasEditPermission(myEntity)) return false; 
    10379                return true; 
    10480        } 
  • molgenis_test/3.3/handwritten/java/org/molgenis/plugins/download/DownloadPlugin.java

    r2363 r2682  
    66 */ 
    77 
    8 package org.molgenis.plugins.examples.file; 
     8package org.molgenis.plugins.download; 
    99 
    1010import java.util.ArrayList; 
  • molgenis_test/3.3/handwritten/java/test/db/TestDatabase.java

    r2380 r2682  
    11package test.db; 
    22 
    3 import java.io.File; 
    43import java.io.FileNotFoundException; 
    54import java.io.IOException; 
     
    2019import test.fields.DecimalEntity; 
    2120import test.fields.EnumEntity; 
    22 import test.fields.FileEntity; 
    2321import test.fields.IntEntity; 
     22import test.fields.MrefEntity; 
    2423import test.fields.TextEntity; 
    2524import test.fields.VarcharEntity; 
     
    4847                        e.printStackTrace(); 
    4948                } 
     49                catch (DatabaseException e) 
     50                { 
     51                        // TODO Auto-generated catch block 
     52                        e.printStackTrace(); 
     53                } 
    5054        } 
    5155 
     
    8690        } 
    8791 
    88         public void testDate() throws DatabaseException, IOException, ParseException, InstantiationException, 
    89                         IllegalAccessException 
    90         { 
    91                 DateFormat formatter = new SimpleDateFormat("MMMM d, yyyy", Locale.US); 
    92                 formatter.setTimeZone(TimeZone.getDefault()); 
    93  
    94 //              helper(DateEntity.class, "date", formatter.parse("Jan 1, 2001"), formatter.parse("Jan 2, 2001"), formatter 
    95 //                              .parse("Feb 25, 2006")); 
    96                  
    97                 helper(DateEntity.class, "date", "Jan 1, 2001", "Jan 2, 2001", DateEntity.string2date("Feb 25, 2006")); 
    98         } 
     92//      public void testDate() throws DatabaseException, IOException, ParseException, InstantiationException, 
     93//                      IllegalAccessException 
     94//      { 
     95//              DateFormat formatter = new SimpleDateFormat("MMMM d, yyyy", Locale.US); 
     96//              formatter.setTimeZone(TimeZone.getDefault()); 
     97// 
     98////            helper(DateEntity.class, "date", formatter.parse("Jan 1, 2001"), formatter.parse("Jan 2, 2001"), formatter 
     99////                            .parse("Feb 25, 2006")); 
     100//               
     101//              helper(DateEntity.class, "date", "Jan 1, 2001", "Jan 2, 2001", DateEntity.string2date("Feb 25, 2006")); 
     102//      } 
    99103 
    100104        public void testDateTime() throws DatabaseException, IOException, ParseException, InstantiationException, 
     
    138142 
    139143                        // check label 
    140                         assertEquals(x1.getReadonlyXrefLabel(), v.getNormalVarchar()); 
     144                        assertEquals(x1.getNormalXref_normalVarchar(), v.getNormalVarchar()); 
    141145 
    142146                        // create invalid xref 
     
    160164                { 
    161165                        db.remove(db.find(XrefEntity.class)); 
     166                        db.remove(db.find(VarcharEntity.class)); 
     167                } 
     168        } 
     169         
     170        public void testMref() throws DatabaseException, IOException 
     171        { 
     172                try 
     173                { 
     174                        db.remove(db.find(VarcharEntity.class)); 
     175 
     176                        // create varcharentity 
     177                        VarcharEntity v = new VarcharEntity(); 
     178                        v.setNormalVarchar("test1"); 
     179                        v.setReadonlyVarchar("test1"); 
     180 
     181                        // get id 
     182                        db.add(v); 
     183 
     184                        // create valid xref 
     185                        MrefEntity x1 = new MrefEntity(); 
     186                        x1.setName("test"); 
     187                        x1.getNormalMref().add(v.getId()); 
     188                        //shorthand for x1.setNormalXref(v.getId()); 
     189                        x1.getNillableMref().add(v.getId()); 
     190 
     191                        db.add(x1); 
     192 
     193                        // try change readonly xref 
     194                        //x1.setReadonlyXref(2); 
     195                        //db.update(x1); 
     196 
     197                        x1 = db.find(MrefEntity.class).get(0); 
     198                        assertEquals(x1.getNormalMref().get(0), v.getId()); 
     199 
     200                        // check label 
     201                        assertEquals(x1.getNillableMref_normalVarchar().get(0), v.getNormalVarchar()); 
     202 
     203                        // create invalid xref 
     204                        try 
     205                        { 
     206                                x1.getNormalMref().add(-1); 
     207                                db.update(x1); 
     208                                fail("updated invalid xref"); 
     209 
     210                        } 
     211                        catch (Exception e) 
     212                        { 
     213                        } 
     214 
     215                        // cleanup 
     216                        db.remove(x1); 
     217                        db.remove(v); 
     218 
     219                } 
     220                finally 
     221                { 
     222                        db.remove(db.find(MrefEntity.class)); 
    162223                        db.remove(db.find(VarcharEntity.class)); 
    163224                } 
     
    208269        } 
    209270         
    210         public void testFile() throws DatabaseException, IOException 
    211         { 
    212                 File attachment = new File("testdata/testin.txt"); 
    213                 assertTrue(attachment.exists()); 
    214                  
    215                 FileEntity f = new FileEntity(); 
    216                 //get rid of this 
    217                 f.setNormalFileAttachedFile(attachment); 
    218                 f.setReadonlyFileAttachedFile(attachment); 
    219                  
    220                 db.add(f); 
    221                  
    222                 //find back 
    223                 f = db.find(FileEntity.class).get(0); 
    224                  
    225                 //compare files 
    226                 File copy = new File(f.getNormalFile()); 
    227                 assertNotNull(copy); 
    228                 fail("todo");            
    229                  
    230                 db.remove(db.find(FileEntity.class)); 
    231         } 
     271//      public void testFile() throws DatabaseException, IOException 
     272//      { 
     273//              File attachment = new File("testdata/testin.txt"); 
     274//              assertTrue(attachment.exists()); 
     275//               
     276//              FileEntity f = new FileEntity(); 
     277//              //get rid of this 
     278//              f.setNormalFileAttachedFile(attachment); 
     279//              f.setReadonlyFileAttachedFile(attachment); 
     280//               
     281//              db.add(f); 
     282//               
     283//              //find back 
     284//              f = db.find(FileEntity.class).get(0); 
     285//               
     286//              //compare files 
     287//              File copy = new File(f.getNormalFile()); 
     288//              assertNotNull(copy); 
     289//              assertTrue(copy.exists()); 
     290//              //fail("todo");          
     291//               
     292//              db.remove(db.find(FileEntity.class)); 
     293//      } 
    232294} 
  • molgenis_test/3.3/handwritten/java/test/db/TestVarcharEntity.java

    r2294 r2682  
    2828                } 
    2929                catch (IOException e) 
     30                { 
     31                        // TODO Auto-generated catch block 
     32                        e.printStackTrace(); 
     33                } 
     34                catch (DatabaseException e) 
    3035                { 
    3136                        // TODO Auto-generated catch block 
  • molgenis_test/3.3/molgenis.properties

    r2363 r2682  
    99 
    1010# xml file with entity descriptions 
    11 model_database = test_db.xml 
     11model_database = test_db.xml, molgenis_auth.xml 
    1212 
    1313# xml file with user screen descriptions 
     
    7777mapping_type = subclass_per_table 
    7878 
    79 #auth_loginclass = plugin.login.DatabaseLogin 
     79auth_loginclass = org.molgenis.plugins.auth.DatabaseLogin 
  • molgenis_test/3.3/molgenis_auth.xml

    r2016 r2682  
    11<?xml version="1.0" encoding="iso-8859-1"?> 
    22<molgenis name="org.molgenis.auth" label="My First MOLGENIS"> 
     3    <!-- prototyping of security --> 
    34        <!-- prototyping of security --> 
    45        <entity name="MolgenisUserGroup" system="true"> 
     6                <description>MolgenisUserGroup is the local administration of MOLGENIS user groups; group have the permissions to edit/view certain elements</description> 
    57                <field name="id" type="autoid" /> 
    68                <field name="name" unique="true" /> 
    79                <field name="superuser" type="bool" default="false"/> 
    8                 <field name="allowView" type="mref" xref_field="Molgenis_EntityMetaData.id" xref_label="name"/> 
    9                 <field name="allowEdit" type="mref" xref_field="Molgenis_EntityMetaData.id" xref_label="name"/> 
     10                <field name="members" type="mref" xref_field="MolgenisUser.id" xref_label="name"/> 
    1011        </entity> 
    1112        <entity name="MolgenisUser" system="true"> 
    12                         <field name="id" type="autoid" /> 
     13        <description>Users known within this MOLGENIS. May be derived from another authentication source at first login like LDAP.</description> 
     14                <field name="id" type="autoid" /> 
    1315                <field name="name" unique="true" /> 
    14                 <field name="password" /> 
    15                 <field name="roles" type="mref" nillable="true" xref_field="Molgenis_Role.id" xref_label="name" 
    16                         description="Roles that this user has adopted. Its rights are inherited." /> 
     16                <field name="password" type="string" description="big fixme: password type"/> 
     17                <field name="emailaddress" type="string" unique="true"/> 
     18                <field name="activationCode" type="string" description="Used as alternative authentication mechanism to verify user email and/or if user has lost password."/> 
     19                <field name="active" type="bool" default="false" description="Boolean to indicate if this account can be used to login" /> 
     20                <!-- todo: profile: picture, first, last name, institute, field, address, zip, city, country , timezone, flag to set public email, website, other details--> 
    1721        </entity> 
    18         <entity name="MolgenisEntityMetaData" system="true"> 
    19                 <description>Catalog of entity names</description> 
    20                 <field name="id" type="autoid" /> 
    21                 <field name="name" unique="true" description="name of the data type"/> 
    22                 <field name="className" description="Full name of the data type" /> 
     22        <entity name="MolgenisPermission" system="true"> 
     23                <field name="id" type="autoid"/> 
     24                <field name="userGroup" type="xref" xref_field="MolgenisUserGroup.id" xref_label="name"/> 
     25                <field name="molgenisEntity" type="string"/> 
     26                <field name="canRead" type="bool"/> 
     27                <field name="canEdit" type="bool"/> 
    2328        </entity> 
    24         <entity name="MolgenisFieldMetaData" system="true"> 
    25                 <description>Catalog of field names</description> 
    26                 <field name="id" type="autoid" /> 
    27                 <field name="entity" type="xref" xref_field="Molgenis_EntityMetaData.id" xref_label="name"/>             
    28                 <field name="name"/> 
    29                 <field name="description" type="text" nillable="true"/> 
    30                 <unique fields="name,entity"/> 
    31         </entity>        
    3229</molgenis> 
  • molgenis_test/3.3/test_db.xml

    r2199 r2682  
    196196        <entity name="BimplementsA" implements="InterfaceA"> 
    197197            <field name="fieldB" type="string"/> 
    198             <field name="Type" description="Issue"/> 
     198            <field name="IssueType" description="Issue"/> 
    199199        </entity> 
    200200        <entity name="CimplementsA" implements="InterfaceA"> 
  • molgenis_test/3.3/test_ui.xml

    r2380 r2682  
    11<?xml version="1.0" encoding="iso-8859-1"?> 
    22<molgenis name="org.molgenis.testui"> 
    3     <menu name="TopMenu"> 
    4         <!-- 
    5         <form name="VarcharsForm" entity="VarcharEntity" 
    6         customization="customizations.VarcharsForm"> <command 
    7         type="path.to.my.Command"/> <plugin name="VarcharPlugin" 
    8         entity="VarcharEntity" type="plugins.VarcharPlugin"/> </form> 
    9         --> 
    10         <!-- user interface--> 
    11         <!-- 
    12         plugin name="Login" type="org.molgenis.plugins.auth.UserLogin" /> 
    13         --> 
    14         <!-- plugin name="Login" type="plugin.login.UserLogin" /> 
     3        <plugin name="Header" type="org.molgenis.plugins.MolgenisHeader"/> 
     4    <menu name="Main" position="left"> 
     5        <plugin name="Login" type="org.molgenis.plugins.LoginScreen"/> 
    156        <menu name="Security"> 
    16         <form name="Users" entity="MolgenisUser" /> 
    17         <form name="GroupsAndPermissions" entity="MolgenisUserGroup" /> 
    18         <form name="SecuredEntity" entity="SecuredEntity" /> 
     7            <form name="Users" entity="MolgenisUser"/> 
     8            <form name="GroupsAndPermissions" entity="MolgenisUserGroup"/> 
     9            <!--form name="SecuredEntity" entity="SecuredEntity"/--> 
    1910        </menu> 
    20         <form name="Varchars" entity="VarcharEntity" view="record"> 
    21         <form name="XrefsForVarchar" entity="XrefEntity" view="list" /> 
    22         <form name="MrefsForVarchar" entity="MrefEntity" view="list" /> 
     11        <form name="Varchars2" entity="VarcharEntity" view="record"> 
     12            <form name="XrefsForVarchar" entity="XrefEntity" view="list"/> 
     13            <form name="MrefsForVarchar" entity="MrefEntity" view="list"/> 
    2314        </form> 
    24         --> 
    25         <!-- decorator="test.actions.MyDialogAction" /> 
    26         <form name="Xrefs" entity="XrefEntity" view="record"> 
    27         <form name="XrefRelatedVarchars" entity="VarcharEntity" view="list" /> 
     15        <!-- decorator="test.actions.MyDialogAction" />--> 
     16        <form name="Xrefs2" entity="XrefEntity" view="record"> 
     17            <form name="XrefRelatedVarchars" entity="VarcharEntity" view="list"/> 
    2818        </form> 
    29         <form name="Mrefs" entity="MrefEntity" view="record"> 
    30         <form name="MrefRelatedVarchars" entity="VarcharEntity" view="list" /> 
    31         </form>--> 
     19        <form name="Mrefs2" entity="MrefEntity" view="record"> 
     20            <form name="MrefRelatedVarchars" entity="VarcharEntity" view="list"/> 
     21        </form> 
    3222        <menu name="FieldTypes"> 
    3323            <!-- form name="Images" entity="ImageEntity" view="record" / --> 
     
    4030            <form name="DateTimes" entity="DateTimeEntity" view="record"/> 
    4131            <form name="Enums" entity="EnumEntity" view="record"/> 
    42             <form name="Mrefs" entity="MrefEntity" view="record" /> 
     32            <form name="Mrefs" entity="MrefEntity" view="record"/> 
    4333            <form name="Files" entity="FileEntity" view="record"/> 
    4434        </menu> 
     
    7363            <form name="DextendsBimplementsA" entity="DextendsBimplementsA"/> 
    7464        </menu> 
     65        <menu name="CustomHtmlHeaders"> 
     66                <plugin name="CustomHtmlHeaders1" type="plugins.customhtmlheaders.CustomHtmlHeaders1"/> 
     67                <plugin name="CustomHtmlHeaders2" type="plugins.customhtmlheaders.CustomHtmlHeaders2"/> 
     68                <plugin name="CustomHtmlHeaders3" type="plugins.customhtmlheaders.CustomHtmlHeaders3"> 
     69                        <plugin name="CustomHtmlHeaders3_2" type="plugins.customhtmlheaders.CustomHtmlHeaders2"/> 
     70                </plugin> 
     71        </menu> 
    7572        <!-- 
    7673        <form name="DecoratedEntity" entity="DecoratedEntity" /> <plugin 
Note: See TracChangeset for help on using the changeset viewer.