@Test(enabled = false) public void testSudoCreatesAccountThroughIUpdate() throws Exception { Experimenter e = createNewUser(getSudoUpdate("ome")); // passwords are no longer null by default removePasswordEntry(e); assertNull(getPasswordFromDb(e)); assertCannotLogin(e.getOmeName().getValue(), "ome"); assertCannotLogin(e.getOmeName().getValue(), ""); doesNotHaveSystemPrivileges(e); getSudoAdmin("ome").changeUserPassword(e.getOmeName().getValue(), rstring("test")); assertCanLogin(e.getOmeName().getValue(), "test"); }
@Test(enabled = false) public void testSudoCreatesUserAccountThroughIAdmin() throws Exception { ExperimenterGroup g = new ExperimenterGroupI(); g.setName(rstring(UUID.randomUUID().toString())); getSudoAdmin("ome").createGroup(g); Experimenter e = new ExperimenterI(); e.setOmeName(rstring(UUID.randomUUID().toString())); e.setFirstName(rstring("ticket:181")); e.setLastName(rstring("ticket:199")); e = getSudoAdmin("ome") .getExperimenter(getSudoAdmin("ome").createUser(e, g.getName().getValue())); assertCanLogin(e.getOmeName().getValue(), ""); assertCanLogin(e.getOmeName().getValue(), "ome"); assertCanLogin(e.getOmeName().getValue(), "bob"); doesNotHaveSystemPrivileges(e); }
@Test(enabled = false) public void testSudoCreatesSystemAccountThroughIAdmin() throws Exception { Experimenter e = new ExperimenterI(); e.setOmeName(rstring(UUID.randomUUID().toString())); e.setFirstName(rstring("ticket:181")); e.setLastName(rstring("ticket:199")); e = getSudoAdmin("ome").getExperimenter(getSudoAdmin("ome").createSystemUser(e)); assertCanLogin(e.getOmeName().getValue(), ""); assertCanLogin(e.getOmeName().getValue(), "ome"); assertCanLogin(e.getOmeName().getValue(), "bob"); hasSystemPrivileges(e); getSudoAdmin("ome").changeUserPassword(e.getOmeName().getValue(), rstring("bob")); assertCannotLogin(e.getOmeName().getValue(), ""); assertCannotLogin(e.getOmeName().getValue(), "ome"); assertCanLogin(e.getOmeName().getValue(), "bob"); }
/** * Tests the <code>lookupExperimenter</code> method. Retrieves an experimenter and converts the * group into the corresponding POJO. * * @throws Exception Thrown if an error occurred. */ @Test public void testLookupExperimenter() throws Exception { IAdminPrx svc = root.getSession().getAdminService(); Experimenter exp = svc.lookupExperimenter("root"); assertNotNull(exp); // Test the conversion into the corresponding POJO ExperimenterData data = new ExperimenterData(exp); assertTrue(data.getId() == exp.getId().getValue()); assertTrue(data.getUserName() == exp.getOmeName().getValue()); }
/** * Tests the creation of a user using the <code>createUser</code> method. * * @throws Exception Thrown if an error occurred. */ @Test public void testCreateUser() throws Exception { String uuid = UUID.randomUUID().toString(); Experimenter e = new ExperimenterI(); e.setOmeName(omero.rtypes.rstring(uuid)); e.setFirstName(omero.rtypes.rstring("user")); e.setLastName(omero.rtypes.rstring("user")); IAdminPrx svc = root.getSession().getAdminService(); // already tested ExperimenterGroup g = new ExperimenterGroupI(); g.setName(omero.rtypes.rstring(uuid)); g.getDetails().setPermissions(new PermissionsI("rw----")); long groupId = svc.createGroup(g); long id = svc.createUser(e, uuid); IQueryPrx query = root.getSession().getQueryService(); // Check if we have a user ParametersI p = new ParametersI(); p.addId(id); e = (Experimenter) query.findByQuery("select distinct e from Experimenter e where e.id = :id", p); assertNotNull(e); assertTrue(e.getOmeName().getValue().equals(uuid)); // check if we are in the correct group i.e. user and uuid // now check if the user is in correct groups. ExperimenterGroup userGroup = svc.lookupGroup(USER_GROUP); List<Long> ids = new ArrayList<Long>(); ids.add(groupId); ids.add(userGroup.getId().getValue()); p = new ParametersI(); p.addLongs("gids", ids); List list = (List) query.findAllByQuery( "select m " + "from GroupExperimenterMap as m " + "left outer join fetch m.child " + "left outer join fetch m.parent" + " where m.parent.id in (:gids)", p); assertNotNull(list); Iterator i = list.iterator(); GroupExperimenterMap geMap; int count = 0; while (i.hasNext()) { geMap = (GroupExperimenterMap) i.next(); if (geMap.getChild().getId().getValue() == id) count++; } assertTrue(count == 2); }
/** * Tests the update of the details of the user currently logged in using the <code> * updateExperimenter</code> method. * * @throws Exception Thrown if an error occurred. */ @Test(enabled = true) public void testUpdateExperimenterByUserUsingUpdateExperimenter() throws Exception { // First create a new user. String uuid = UUID.randomUUID().toString(); Experimenter e = new ExperimenterI(); e.setOmeName(omero.rtypes.rstring(uuid)); e.setFirstName(omero.rtypes.rstring("user")); e.setLastName(omero.rtypes.rstring("user")); IAdminPrx svc = root.getSession().getAdminService(); // already tested ExperimenterGroup g = new ExperimenterGroupI(); g.setName(omero.rtypes.rstring(uuid)); g.getDetails().setPermissions(new PermissionsI("rw----")); // create group. svc.createGroup(g); long id = svc.createUser(e, uuid); IQueryPrx query = root.getSession().getQueryService(); ParametersI p = new ParametersI(); p.addId(id); e = (Experimenter) query.findByQuery("select distinct e from Experimenter e where e.id = :id", p); assertNotNull(e); String name = "userModified"; // uuid = UUID.randomUUID().toString(); e.setOmeName(omero.rtypes.rstring(uuid)); e.setFirstName(omero.rtypes.rstring(name)); e.setLastName(omero.rtypes.rstring(name)); // // owner logs in. omero.client client = newOmeroClient(); client.createSession(uuid, uuid); init(client); iAdmin.updateExperimenter(e); e = (Experimenter) query.findByQuery("select distinct e from Experimenter e where e.id = :id", p); assertNotNull(e); assertTrue(e.getOmeName().getValue().equals(uuid)); assertTrue(e.getFirstName().getValue().equals(name)); assertTrue(e.getLastName().getValue().equals(name)); }
private void hasSystemPrivileges(Experimenter e) { try { ServiceFactoryPrx sf = c.createSession(e.getOmeName().getValue(), ""); sf.getAdminService().synchronizeLoginCache(); } catch (ServerError e1) { // TODO Auto-generated catch block e1.printStackTrace(); throw new RuntimeException("Unimplemented exception."); } catch (CannotCreateSessionException e2) { // TODO Auto-generated catch block e2.printStackTrace(); throw new RuntimeException("Unimplemented exception."); } catch (PermissionDeniedException e3) { // TODO Auto-generated catch block e3.printStackTrace(); throw new RuntimeException("Unimplemented exception."); } }
/** * Tests the adding and modifying of a user photo, specify all the exception thrown by ticket:1791 * * @throws Exception Thrown if an error occurred. */ @Test public void testUserPhoto() throws Exception { IAdminPrx prx = root.getSession().getAdminService(); String uuid = UUID.randomUUID().toString(); // First create a user in two groups, one rwrw-- and one rwr--- ExperimenterGroup rwr = new ExperimenterGroupI(); rwr.setName(rstring(uuid)); rwr.getDetails().setPermissions(new PermissionsI("rwr---")); long rwrID = prx.createGroup(rwr); rwr = prx.getGroup(rwrID); ExperimenterGroup rwrw = new ExperimenterGroupI(); rwrw.setName(rstring(UUID.randomUUID().toString())); rwr.getDetails().setPermissions(new PermissionsI("rwrw--")); long rwrwID = prx.createGroup(rwrw); rwrw = prx.getGroup(rwrwID); Experimenter e = new ExperimenterI(); e.setOmeName(rstring(uuid)); e.setFirstName(rstring(uuid)); e.setLastName(rstring(uuid)); long userID = prx.createUser(e, rwrw.getName().getValue()); e = prx.getExperimenter(userID); prx.addGroups(e, Arrays.asList(rwr)); omero.client client = new omero.client(root.getPropertyMap()); try { client.createSession(e.getOmeName().getValue(), "foo"); prx = client.getSession().getAdminService(); prx.uploadMyUserPhoto("/tmp/foto.jpg", "image/jpeg", new byte[] {1}); client.getSession().setSecurityContext(new ExperimenterGroupI(rwrID, false)); prx.uploadMyUserPhoto("/tmp/foto2.jpg", "image/jpeg", new byte[] {2}); } finally { client.closeSession(); } }