Index: lams_central/src/java/org/lamsfoundation/lams/web/ShibLoginServlet.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/web/Attic/ShibLoginServlet.java,v diff -u -r1.1.2.11 -r1.1.2.12 --- lams_central/src/java/org/lamsfoundation/lams/web/ShibLoginServlet.java 20 Jul 2007 07:06:13 -0000 1.1.2.11 +++ lams_central/src/java/org/lamsfoundation/lams/web/ShibLoginServlet.java 23 Jul 2007 05:40:33 -0000 1.1.2.12 @@ -96,24 +96,31 @@ } catch (FederationException e) { log.error("Couldn't get local username for shib user "+username, e); flagError(request, response); + return; } if (localUsername == null) { log.error("Couldn't get local username for shib user "+username); flagError(request, response); + return; } User user = service.getUserByLogin(localUsername); if (user != null) { // TODO update user attributes if changed log.info("Found account for shibboleth user "+localUsername+"..."); - response.sendRedirect("j_security_check?j_username="+localUsername+"&j_password="+user.getPassword()); + // no need to keep track of local users' roles + if (localUsername.equals(username)) { + response.sendRedirect("j_security_check?j_username="+localUsername+"&j_password="+user.getPassword()); + return; + } } else { try { log.info("Creating new user: "+localUsername); user = saveNewUser(localUsername, firstname, lastname); } catch (Exception e) { log.error("Couldn't save new user with username: "+localUsername, e); flagError(request, response); + return; } } String shibOrgId = Configuration.get(ConfigurationKeys.SHIB_ORG_ID); @@ -193,7 +200,7 @@ org.setDescription(SHIB_ORG_DESC); org.setParentOrganisation(service.getRootOrganisation()); org.setOrganisationType((OrganisationType) - service.findById(OrganisationType.class, OrganisationType.COURSE_TYPE)); + service.findById(OrganisationType.class, OrganisationType.ROOT_TYPE)); org.setOrganisationState((OrganisationState) service.findById(OrganisationState.class, OrganisationState.HIDDEN)); org.setLocale(service.getDefaultLocale());