• Views
  • Iteration Report
  • My Iteration Report
  •  
OMERO.server
  • Login
  • Help/Guide
  • About Trac
  • Preferences
  • Wiki
  • Timeline
  • Roadmap
  • Browse Source
  • View Tickets
  • Search

Context Navigation

  • ← Previous Change
  • Next Change →

Changeset 1080 for branches/omero_ds_fix

Show
Ignore:
Timestamp:
11/15/06 09:36:27 (2 years ago)
Author:
jmoore
Message:

#404 Adds groupName argument to IAdmin.createUser() and propagates.

Location:
branches/omero_ds_fix/components
Files:
24 modified

  • client/build.xml (modified) (3 diffs)
  • client/test/ome/client/itests/ConfigTest.java (modified) (2 diffs)
  • client/test/ome/client/itests/TicketsUpTo500Test.java (modified) (1 diff)
  • client/test/ome/client/itests/sec/AbstractAccountTest.java (modified) (2 diffs)
  • client/test/ome/client/itests/sec/AbstractChangeDetailClientTest.java (modified) (6 diffs)
  • client/test/ome/client/itests/sec/AbstractPermissionsTest.java (modified) (7 diffs)
  • client/test/ome/client/itests/sec/AccountCreationTest.java (modified) (1 diff)
  • common/src/ome/api/IAdmin.java (modified) (2 diffs)
  • common/src/ome/testing/CreatePojosFixture.java (modified) (1 diff)
  • common/src/ome/util/tasks/Task.java (modified) (1 diff)
  • common/src/ome/util/tasks/admin/AddGroupTask.java (modified) (1 diff)
  • common/src/ome/util/tasks/admin/AddUserTask.java (modified) (5 diffs)
  • server/src/ome/logic/AdminImpl.java (modified) (2 diffs)
  • server/src/ome/security/basic/BasicSecuritySystem.java (modified) (3 diffs)
  • server/src/ome/tools/hibernate/HibernateUtils.java (modified) (2 diffs)
  • server/test/ome/server/itests/AbstractManagedContextTest.java (modified) (3 diffs)
  • server/test/ome/server/itests/EventStateChangeTest.java (modified) (1 diff)
  • server/test/ome/server/itests/query/GetImagesQueryTest.java (modified) (2 diffs)
  • server/test/ome/server/itests/sec/AdminTest.java (modified) (20 diffs)
  • server/test/ome/server/itests/sec/EnumTest.java (modified) (2 diffs)
  • server/test/ome/server/itests/sec/GroupLeaderTest.java (modified) (3 diffs)
  • server/test/ome/server/itests/sec/LockingTest.java (modified) (3 diffs)
  • server/test/ome/server/itests/sec/SecurityFilterTest.java (modified) (2 diffs)
  • server/test/ome/server/itests/sec/SystemTypesTest.java (modified) (2 diffs)

Legend:

Unmodified
Added
Removed
  • branches/omero_ds_fix/components/client/build.xml

    r1057 r1080  
    2929        <target name="addgroup" depends="prepare,load-groovy"> 
    3030                        <fail unless="omero.rootpass">No root password defined. See etc/local.properties</fail> 
    31                         <input message="Please enter group name:" addproperty="newgroup.name"/> 
     31                        <input message="Please enter group name:" addproperty="newgroup.name" 
     32                                defaultvalue=""/> 
    3233                        <fail-if-empty property="newgroup.name"/> 
    33                         <input message="Please enter group description: (optional)" addproperty="newgroup.description"/> 
     34                        <input message="Please enter group description: (optional)" addproperty="newgroup.description" 
     35                                defaultvalue=""/> 
    3436                        <input message="Please enter name of the group owner: (optional)" addproperty="newgroup.owner" 
    3537                                defaultvalue="root"/> 
    … …  
    6870                        <input message="Please enter login name: [${user.name}]" addproperty="newuser.omename" 
    6971                                defaultvalue="${user.name}"/> 
    70                         <input message="Please enter user's first name:" addproperty="newuser.firstname"/> 
     72                        <input message="Please enter user's default group:" addproperty="newuser.group" 
     73                                defaultvalue=""/> 
     74                        <fail-if-empty property="newuser.group"/> 
     75                        <input message="Please enter user's first name:" addproperty="newuser.firstname" 
     76                                defaultvalue=""/> 
    7177                        <fail-if-empty property="newuser.firstname"/> 
    72                         <input message="Please enter user's middle name: (optional)" addproperty="newuser.middlename"/> 
    73                         <input message="Please enter user's last name:" addproperty="newuser.lastname"/> 
     78                        <input message="Please enter user's middle name: (optional)" addproperty="newuser.middlename" 
     79                                defaultvalue=""/> 
     80                        <input message="Please enter user's last name:" addproperty="newuser.lastname" 
     81                                defaultvalue=""/> 
    7482                        <fail-if-empty property="newuser.lastname"/> 
    75                         <input message="Please enter user's email: (optional)" addproperty="newuser.email"/> 
    76                         <input message="Please enter user's institution: (optional)" addproperty="newuser.institution"/> 
     83                        <input message="Please enter user's email: (optional)" addproperty="newuser.email" 
     84                                defaultvalue=""/> 
     85                        <input message="Please enter user's institution: (optional)" addproperty="newuser.institution" 
     86                                defaultvalue=""/> 
    7787                        <java classpathref="omero.classpath" classname="ome.util.tasks.Run" fork="yes"> 
    7888                                <arg value="task=admin.AddUserTask"/> 
    … …  
    8696                                <arg value="firstname=${newuser.firstname}"/> 
    8797                                <arg value="middlename=${newuser.middlename}"/> 
    88                                 <arg value="lastname=${newuser.lastename}"/> 
     98                                <arg value="lastname=${newuser.lastname}"/> 
    8999                                <arg value="email=${newuser.email}"/> 
    90                                 <arg value="institute=${newuser.institue}"/> 
     100                                <arg value="institution=${newuser.institution}"/> 
     101                                <arg value="group=${newuser.group}"/> 
    91102                        </java> 
    92103        </target> 
  • branches/omero_ds_fix/components/client/test/ome/client/itests/ConfigTest.java

    r912 r1080  
    88import ome.api.IConfig; 
    99import ome.model.meta.Experimenter; 
     10import ome.model.meta.ExperimenterGroup; 
    1011import ome.system.Login; 
    1112import ome.system.ServiceFactory; 
    … …  
    123124                 
    124125                // Now let's create another user. 
     126                final IAdmin rootAdmin = rootSf.getAdminService(); 
     127                ExperimenterGroup g = new ExperimenterGroup(); 
     128                g.setName(UUID.randomUUID().toString()); 
     129                rootAdmin.createGroup(g); 
    125130                Experimenter e = new Experimenter(); 
    126131                e.setOmeName(UUID.randomUUID().toString()); 
    127132                e.setFirstName("Config"); 
    128133                e.setLastName("Test"); 
    129                 IAdmin rootAdmin = rootSf.getAdminService(); 
    130                 rootAdmin.createUser(e); // Not an admin or system user 
     134                rootAdmin.createUser(e, g.getName()); // Not an admin or system user 
    131135                rootAdmin.changeUserPassword(e.getOmeName(), "bar"); 
    132136                 
  • branches/omero_ds_fix/components/client/test/ome/client/itests/TicketsUpTo500Test.java

    r1044 r1080  
    345345         
    346346        Long gid = rootAdmin.createGroup(group); 
    347         Long uid = rootAdmin.createUser(user1); 
     347        Long uid = rootAdmin.createUser(user1,guid); 
    348348        user1 = new Experimenter( uid, false ); 
    349         uid = rootAdmin.createUser(user2); 
     349        uid = rootAdmin.createUser(user2,guid); 
    350350        user2 = new Experimenter( uid, false ); 
    351351        group = new ExperimenterGroup( gid, false ); 
  • branches/omero_ds_fix/components/client/test/ome/client/itests/sec/AbstractAccountTest.java

    r832 r1080  
    7070     
    7171        protected Experimenter createNewUser(IAdmin iAdmin ) { 
    72                  
     72                ExperimenterGroup g = new ExperimenterGroup(); 
     73                g.setName(GUID.asString()); 
     74                iAdmin.createGroup(g); 
    7375                Experimenter e = new Experimenter(); 
    74         e.setOmeName(new GUID().asString()); 
     76        e.setOmeName(GUID.asString()); 
    7577        e.setFirstName("ticket:181"); 
    7678        e.setLastName("ticket:181"); 
    77         long id = iAdmin.createUser(e); 
     79        long id = iAdmin.createUser(e,g.getName()); 
    7880                return iAdmin.getExperimenter(id); 
    7981        } 
    … …  
    8284                 
    8385                Experimenter e = new Experimenter(); 
    84         e.setOmeName(new GUID().asString()); 
     86        e.setOmeName(GUID.asString()); 
    8587        e.setFirstName("ticket:181"); 
    8688        e.setLastName("ticket:181"); 
  • branches/omero_ds_fix/components/client/test/ome/client/itests/sec/AbstractChangeDetailClientTest.java

    r1001 r1080  
    1515import ome.model.meta.ExperimenterGroup; 
    1616import ome.system.Login; 
     17import ome.system.Roles; 
    1718import ome.system.ServiceFactory; 
    1819 
    … …  
    2829        private String pi_name    = "PI:"+UUID.randomUUID().toString(); 
    2930        private String pi_group   = "PIGRP:"+UUID.randomUUID().toString(); 
     31        private String other_grp  = "OTHERGRP:"+UUID.randomUUID().toString(); 
    3032         
    3133    protected Login asRoot, asUser, asOther, asWorld, asPI; 
    … …  
    4244        init(); 
    4345 
    44         // TODO USE ROLES HERE 
    45         toRoot = new Experimenter( 0L, false );         
    46         toSystem = new ExperimenterGroup( 0L, false );  
    47         toUserGroup = new ExperimenterGroup( 1L, false );  
     46        Roles roles = new ServiceFactory().getAdminService().getSecurityRoles(); 
     47        toRoot = new Experimenter( roles.getRootId(), false );         
     48        toSystem = new ExperimenterGroup( roles.getSystemGroupId(), false );  
     49        toUserGroup = new ExperimenterGroup( roles.getUserGroupId(), false );  
    4850 
     51        toOtherGroup = new ExperimenterGroup(); 
     52        toOtherGroup.setName(other_grp); 
     53        toOtherGroup = new ExperimenterGroup( rootAdmin.createGroup( toOtherGroup ), false ); 
     54 
     55        toPIGroup = new ExperimenterGroup(); 
     56        toPIGroup.setName(pi_group); 
     57        toPIGroup = new ExperimenterGroup( rootAdmin.createGroup( toPIGroup ), false ); 
     58         
    4959        toUser = new Experimenter(); 
    5060        toUser.setFirstName("test"); 
    5161        toUser.setLastName("test"); 
    5262        toUser.setOmeName(user_name); 
    53         toUser = new Experimenter( rootAdmin.createUser( toUser ), false ); 
     63        toUser = new Experimenter( rootAdmin.createUser( toUser, pi_group ), false ); 
    5464         
    5565        toOther = new Experimenter(); 
    … …  
    5767        toOther.setLastName("test"); 
    5868        toOther.setOmeName(other_name); 
    59         toOther = new Experimenter( rootAdmin.createUser(toOther), false ); 
     69        toOther = new Experimenter( rootAdmin.createUser(toOther, pi_group), false ); 
    6070 
    6171        toWorld = new Experimenter(); 
    … …  
    6373        toWorld.setLastName("test"); 
    6474        toWorld.setOmeName(world_name); 
    65         toWorld = new Experimenter( rootAdmin.createUser(toWorld), false ); 
     75        toWorld = new Experimenter( rootAdmin.createUser(toWorld, other_grp), false ); 
    6676 
    6777        toPI = new Experimenter(); 
    … …  
    6979        toPI.setLastName("test"); 
    7080        toPI.setOmeName(pi_name); 
    71         toPI = new Experimenter( rootAdmin.createUser(toPI), false ); 
     81        toPI = new Experimenter( rootAdmin.createUser(toPI, pi_group), false ); 
    7282         
    73         toOtherGroup = new ExperimenterGroup(); 
    74         toOtherGroup.setName(UUID.randomUUID().toString()); 
    75         toOtherGroup = new ExperimenterGroup( rootAdmin.createGroup( toOtherGroup ), false ); 
    76  
    77         toPIGroup = new ExperimenterGroup(); 
    78         toPIGroup.setName(pi_group); 
    79         toPIGroup = new ExperimenterGroup( rootAdmin.createGroup( toPIGroup ), false ); 
    80  
    81         rootAdmin.addGroups(toUser, toPIGroup); 
    82         rootAdmin.addGroups(toOther, toPIGroup); 
    83         rootAdmin.addGroups(toPI, toPIGroup); 
    8483        rootAdmin.setGroupOwner(toPIGroup, toPI); 
    8584         
  • branches/omero_ds_fix/components/client/test/ome/client/itests/sec/AbstractPermissionsTest.java

    r941 r1080  
    9898        protected ExperimenterGroup  
    9999                system_group = new ExperimenterGroup(0L,false), 
    100                 common_group = new ExperimenterGroup(1L,false), 
     100                common_group = new ExperimenterGroup(), 
    101101                user_other_group = new ExperimenterGroup(); 
    102102         
    … …  
    108108                world = new Experimenter(); 
    109109 
    110         protected String gname; 
     110        protected String gname, cname; 
    111111         
    112112        protected ServiceFactory u, o, w, p, r; 
    … …  
    138138                init(); 
    139139                 
     140                cname = UUID.randomUUID().toString(); 
    140141                gname = UUID.randomUUID().toString(); 
    141142 
    142143                // shortcut for root service factory, created in super class 
    143144                r = rootServices; 
     145 
     146                // create the common group 
     147                common_group.setName(cname); 
     148                common_group = new ExperimenterGroup(rootAdmin 
     149                                .createGroup(common_group),false); 
     150                 
     151                // create the new group with the PI as leader 
     152                user_other_group.setName(gname); 
     153                user_other_group.getDetails().setOwner(pi); 
     154                user_other_group = new ExperimenterGroup(rootAdmin 
     155                                .createGroup(user_other_group), false); 
    144156                 
    145157                // create the PI for a new group 
    … …  
    149161                pi.setFirstName("read"); 
    150162                pi.setLastName("security -- leader of user_other_group"); 
    151                 pi = new Experimenter(rootAdmin.createUser(pi), false); 
    152                                  
    153                 // create the new group with the PI as leader 
    154                 user_other_group.setName(gname); 
    155                 user_other_group.getDetails().setOwner(pi); 
    156                 user_other_group = new ExperimenterGroup(rootAdmin 
    157                                 .createGroup(user_other_group), false); 
    158  
    159                 // also add the PI to that group 
    160                 rootAdmin.addGroups(pi, user_other_group); 
    161                  
     163                pi = new Experimenter(rootAdmin.createUser(pi,gname), false); 
     164 
    162165                // create a new user in that group 
    163166                Login userLogin = new Login(UUID.randomUUID().toString(), "empty",gname,"Test"); 
    … …  
    166169                user.setFirstName("read"); 
    167170                user.setLastName("security"); 
    168                 user = new Experimenter(rootAdmin.createUser(user), false); 
     171                user = new Experimenter(rootAdmin.createUser(user,gname), false); 
    169172                rootAdmin.addGroups(user, user_other_group); 
    170173 
    … …  
    175178                other.setFirstName("read"); 
    176179                other.setLastName("security2"); 
    177                 other = new Experimenter(rootAdmin.createUser(other), false); 
     180                other = new Experimenter(rootAdmin.createUser(other,gname), false); 
    178181                rootAdmin.addGroups(other, user_other_group); 
    179182                 
    … …  
    184187                world.setFirstName("read"); 
    185188                world.setLastName("Security -- not in their group"); 
    186                 world = new Experimenter(rootAdmin.createUser(world), false); 
     189                world = new Experimenter(rootAdmin.createUser(world,cname), false); 
    187190                // not in same group 
    188191 
  • branches/omero_ds_fix/components/client/test/ome/client/itests/sec/AccountCreationTest.java

    r824 r1080  
    3232    @Test 
    3333    public void testSudoCreatesUserAccountThroughIAdmin() throws Exception { 
     34        ExperimenterGroup g = new ExperimenterGroup(); 
     35        g.setName(GUID.asString()); 
     36        getSudoAdmin("ome").createGroup(g); 
    3437        Experimenter e = new Experimenter(); 
    35         e.setOmeName(new GUID().asString()); 
     38        e.setOmeName(GUID.asString()); 
    3639        e.setFirstName("ticket:181"); 
    3740        e.setLastName("ticket:199"); 
    3841        e = getSudoAdmin("ome").getExperimenter( 
    39                         getSudoAdmin("ome").createUser(e)); 
     42                        getSudoAdmin("ome").createUser(e,g.getName())); 
    4043        assertCanLogin(e.getOmeName(),""); 
    4144        assertCanLogin(e.getOmeName(),"ome"); 
  • branches/omero_ds_fix/components/common/src/ome/api/IAdmin.java

    r987 r1080  
    128128     
    129129    /** create and return a new user. This user will be created with the default 
    130      * "User" group. 
     130     * group specified. 
     131     *  
    131132     * @param newUser a new {@link Experimenter} instance  
     133     * @parm group group name of the default group for this user 
    132134     * @return id of the newly created {@link Experimenter} 
    133135     */ 
    134     long createUser( @NotNull Experimenter newUser ); 
     136    long createUser( @NotNull Experimenter newUser, @NotNull String group ); 
    135137     
    136138    /** create and return a new system user. This user will be created with the  
    137      * "System" (administration) group and will also be in the "user" group. 
     139     * "System" (administration) group as default and will also be in the "user" 
     140     * group. 
     141     *  
    138142     * @param newUser a new {@link Experimenter} instance  
    139143     * @return id of the newly created {@link Experimenter} 
    … …  
    151155            @NotNull Experimenter experimenter,  
    152156            @NotNull ExperimenterGroup defaultGroup, 
    153             ExperimenterGroup[] otherGroups ); 
     157            ExperimenterGroup...otherGroups ); 
    154158     
    155159    /** create and return a new group.  
  • branches/omero_ds_fix/components/common/src/ome/testing/CreatePojosFixture.java

    r957 r1080  
    5353                fixture.e.setFirstName("Mr."); 
    5454                fixture.e.setLastName("Allen"); 
    55                 fixture.e = new Experimenter( rootAdmin.createUser(fixture.e), false ); 
    56                 rootAdmin.addGroups(fixture.e, fixture.g); 
    57                 rootAdmin.setDefaultGroup(fixture.e, fixture.g); 
     55                fixture.e = new Experimenter( rootAdmin.createUser(fixture.e, G_NAME), false ); 
    5856                 
    5957                Login testLogin = new Login(fixture.TESTER,"ome",G_NAME,"Test"); 
  • branches/omero_ds_fix/components/common/src/ome/util/tasks/Task.java

    r1054 r1080  
    8888                                "ServiceFactory cannot be null."); 
    8989                this.sf = serviceFactory; 
    90                 this.props = properties == null ? new Properties() :  
    91                         System.getProperties(); 
     90                this.props = properties == null ? System.getProperties() : properties; 
    9291        } 
    9392         
  • branches/omero_ds_fix/components/common/src/ome/util/tasks/admin/AddGroupTask.java

    r1054 r1080  
    9797                                "Added group %s with id %d",g.getName(),gid)); 
    9898                final String leaderName = enumValue(leader); 
    99                 if (leaderName!=null) 
     99                if (leaderName!=null && leaderName.trim().length() > 0) 
    100100                { 
    101101                        Experimenter e = admin.lookupExperimenter(leaderName); // TODO need id only 
  • branches/omero_ds_fix/components/common/src/ome/util/tasks/admin/AddUserTask.java

    r1054 r1080  
    3838import ome.annotations.RevisionDate; 
    3939import ome.annotations.RevisionNumber; 
     40import ome.api.IAdmin; 
    4041import ome.model.meta.Experimenter; 
     42import ome.model.meta.ExperimenterGroup; 
    4143import ome.system.ServiceFactory; 
    4244import ome.util.tasks.Configuration; 
    4345import ome.util.tasks.SimpleTask; 
    4446 
     47import static ome.util.tasks.admin.AddGroupTask.Keys.leader; 
    4548import static ome.util.tasks.admin.AddUserTask.Keys.*; 
    4649 
    … …  
    5861 * <li>institution</li> 
    5962 * <li>email</li> 
     63 * <li>group</li> 
    6064 * </ul> 
    6165 *  
    … …  
    7781         */ 
    7882        public enum Keys { 
    79                 omename, firstname, lastname, middlename, institution, email 
     83                omename, firstname, lastname, middlename, institution, email, group 
    8084        } 
    8185         
    … …  
    9498        public void doTask() { 
    9599                super.doTask(); // logs 
     100                final IAdmin admin = getServiceFactory().getAdminService(); 
     101                final String groupName = enumValue(group); 
    96102                Experimenter e = new Experimenter(); 
    97103                e.setOmeName(enumValue(omename)); 
    … …  
    101107                e.setInstitution(enumValue(institution)); 
    102108                e.setEmail(enumValue(email)); 
    103                 long uid = getServiceFactory().getAdminService().createUser(e); 
     109                long uid = admin.createUser(e,groupName); 
    104110                getLogger().info(String.format( 
    105111                                "Added user %s with id %d",e.getOmeName(),uid)); 
  • branches/omero_ds_fix/components/server/src/ome/logic/AdminImpl.java

    r1038 r1080  
    356356 
    357357        @RolesAllowed("system") 
    358         public long createUser(Experimenter newUser) { 
    359                 return createExperimenter(newUser, groupProxy("user"), null); 
     358        public long createUser(Experimenter newUser, String defaultGroup) { 
     359                return createExperimenter(newUser, groupProxy(defaultGroup),  
     360                                groupProxy("user")); 
    360361        } 
    361362 
    … …  
    363364        public long createSystemUser(Experimenter newSystemUser) { 
    364365                return createExperimenter(newSystemUser, groupProxy("system"), 
    365                                 new ExperimenterGroup[] { groupProxy("user") }); 
     366                                groupProxy("user")); 
    366367        } 
    367368 
    368369        @RolesAllowed("system") 
    369370        public long createExperimenter(Experimenter experimenter, 
    370                         ExperimenterGroup defaultGroup, ExperimenterGroup[] otherGroups) { 
     371                        ExperimenterGroup defaultGroup, ExperimenterGroup...otherGroups) { 
    371372                // TODO check that no other group is default 
    372373 
  • branches/omero_ds_fix/components/server/src/ome/security/basic/BasicSecuritySystem.java

    r1039 r1080  
    7070import ome.model.meta.ExternalInfo; 
    7171import ome.model.meta.GroupExperimenterMap; 
     72import ome.parameters.Parameters; 
    7273import ome.security.ACLVoter; 
    7374import ome.security.AdminAction; 
    … …  
    10331034        } 
    10341035 
    1035         private Principal clearAndCheckPrincipal() { 
     1036        private Principal clearAndCheckPrincipal()  
     1037        { 
    10361038                // clear even if this fails. (make SecuritySystem unusable) 
    10371039                clearEventContext(); 
    … …  
    10541056                        throw new InternalException( 
    10551057                                        "Principal.eventType is null in EventContext. Security system failure."); 
     1058                 
     1059                // ticket:404 -- preventing users from logging into "user" group 
     1060                if ( roles.getUserGroupName().equals( p.getGroup() )) 
     1061                { 
     1062                        List<ExperimenterGroup> groups =  
     1063                        sf.getQueryService().findAllByQuery( 
     1064                                        "select g from ExperimenterGroup g " + 
     1065                                        "join g.groupExperimenterMap as m " + 
     1066                                        "join m.child as u " +Â