NIHVIVO-2299 Remove old unused identifier factories: SelfEditing2RoleIdentifierFactory and UserToIndIdentifierFactory

This commit is contained in:
j2blake 2011-05-13 16:33:44 +00:00
parent 095ec6d9a7
commit aa0067d0fd
6 changed files with 4 additions and 268 deletions

View file

@ -157,12 +157,6 @@
</listener-class> </listener-class>
</listener> --> </listener> -->
<listener>
<listener-class>
edu.cornell.mannlib.vitro.webapp.auth.identifier.UserToIndIdentifierFactorySetup
</listener-class>
</listener>
<listener> <listener>
<listener-class> edu.cornell.mannlib.vitro.webapp.auth.policy.setup.EditorEditingPolicySetup <listener-class> edu.cornell.mannlib.vitro.webapp.auth.policy.setup.EditorEditingPolicySetup
</listener-class> </listener-class>

View file

@ -1,58 +0,0 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.vitro.webapp.auth.identifier;
import javax.servlet.ServletContext;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpSession;
import edu.cornell.mannlib.vitro.webapp.auth.policy.RoleBasedPolicy.AuthRole;
import edu.cornell.mannlib.vitro.webapp.beans.User;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
/**
* Checks to see if the Individual associated with a SelfEditingIdentifier
* has Admin, Curator or Editor rights. This ignores black listing.
*
* This should be added to the IdentifierFactory list after the
* SelfEditingIdentiferFactory.
*
* SelfEditing2RoleIdentifierSetup can be used in web.xml to add this class
* to the IdentifierFactory list of a servlet context.
*
* @author bdc34
*
*/
public class SelfEditing2RoleIdentifierFactory implements
IdentifierBundleFactory {
@Override
public IdentifierBundle getIdentifierBundle(ServletRequest request,
HttpSession session, ServletContext context) {
IdentifierBundle whoToAuth = RequestIdentifiers.getIdBundleForRequest(request);
WebappDaoFactory wdf = (WebappDaoFactory)context.getAttribute("webappDaoFactory");
if( wdf == null )
return whoToAuth;
SelfEditingIdentifierFactory.SelfEditing selfEditing =
SelfEditingIdentifierFactory.getSelfEditingIdentifier(whoToAuth);
if( selfEditing != null ){
User user = wdf.getUserDao().getUserByURI(selfEditing.getIndividual().getURI());
if( user != null){
String role = user.getRoleURI();
if("role/:50".equals(role)){
whoToAuth.add( AuthRole.DBA );
}
if("role/:4".equals(role)){
whoToAuth.add( AuthRole.CURATOR);
}
if("role/:3".equals(role)){
whoToAuth.add( AuthRole.EDITOR);
}
if("role/:2".equals(role)){
whoToAuth.add( AuthRole.USER );
}
}
}
return whoToAuth;
}
}

View file

@ -1,96 +0,0 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.vitro.webapp.auth.identifier;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpSession;
import edu.cornell.mannlib.vedit.beans.LoginStatusBean;
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
/**
* Check to see if the User is logged in, find Individuals that the User mayEditAs,
* and and those Individuals as identifiers.
*
* @author bdc34
*
*/
public class UserToIndIdentifierFactory implements IdentifierBundleFactory {
public IdentifierBundle getIdentifierBundle(
ServletRequest request,
HttpSession session,
ServletContext context) {
// is the request logged in as a User?
LoginStatusBean loginBean = LoginStatusBean.getBean(session);
if (loginBean.isLoggedIn()) {
String userURI = loginBean.getUserURI();
WebappDaoFactory wdf = (WebappDaoFactory)context.getAttribute("webappDaoFactory");
// get Individuals that the User mayEditAs
List<String> mayEditAsUris =
wdf.getUserDao().getIndividualsUserMayEditAs(userURI);
// make self editing Identifiers for those Individuals
IdentifierBundle idb = new ArrayIdentifierBundle();
idb.add( new UserIdentifier(userURI,mayEditAsUris) );
//Also make a self-editing identifier.
//There is not need for SelfEditingIdentifierFactory because SelfEditing
//identifiers are created here.
for( String personUri : mayEditAsUris){
if( personUri != null ){
Individual person = wdf.getIndividualDao().getIndividualByURI(personUri);
if( person != null ){
idb.add( new SelfEditingIdentifierFactory.SelfEditing(person,null) );
}
}
}
return idb;
}
return null;
}
public static List<String> getIndividualsForUser(IdentifierBundle ids) {
if( ids == null )
return Collections.emptyList();
//find the user id
List<String> uris = new ArrayList<String>();
for( Identifier id : ids ){
if( id instanceof UserIdentifier){
uris.addAll( ((UserIdentifier)id).getMayEditAsURIs() );
}
}
return uris;
}
public class UserIdentifier implements Identifier {
private final String userURI;
private final List<String> mayEditAsURIs;
public UserIdentifier(String userURI, List<String> mayEditAsURIs) {
super();
this.userURI = userURI;
this.mayEditAsURIs = Collections.unmodifiableList(mayEditAsURIs);
}
public String getUserURI() {
return userURI;
}
public List<String> getMayEditAsURIs() {
return mayEditAsURIs;
}
@Override
public String toString() {
return "UserIdentifier: " + userURI;
}
}
}

View file

@ -1,40 +0,0 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.vitro.webapp.auth.identifier;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import edu.cornell.mannlib.vitro.webapp.servlet.setup.AbortStartup;
/**
* Setups context so that Identifiers for Individuals associated with Users are
* added to requests.
*
* This only adds identifiers. A self-editing policy is also needed.
*
* @author bdc34
*
*/
public class UserToIndIdentifierFactorySetup implements ServletContextListener{
private static final Log log = LogFactory.getLog(UserToIndIdentifierFactorySetup.class.getName());
@Override
public void contextInitialized(ServletContextEvent sce) {
if (AbortStartup.isStartupAborted(sce.getServletContext())) {
return;
}
ActiveIdentifierBundleFactories.addFactory(sce, new UserToIndIdentifierFactory());
log.info("Set up Identifier Factory UserToIndIdentifierFactory.");
}
@Override
public void contextDestroyed(ServletContextEvent arg0) {
// Nothing to do.
}
}

View file

@ -1,49 +0,0 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.vitro.webapp.auth.policy.setup;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import edu.cornell.mannlib.vitro.webapp.auth.identifier.ActiveIdentifierBundleFactories;
import edu.cornell.mannlib.vitro.webapp.auth.identifier.SelfEditing2RoleIdentifierFactory;
/**
* Add the SelfEditing2RoleIdentifier factory to the IdentifierFactory list
* in the servlet context.
*
* This should be added to the IdentifierFactory list after the
* SelfEditingIdentiferFactory.
*
* This only sets up a IdentifierFactoy that maps SelfEditing identifiers to
* roles associated with the Individual that represents the self editor. This
* does not set up a policy or the SelfEditingIdentifierFactory.
*
* @author bdc34
*
*/
public class SelfEditing2RoleIdentifierSetup implements ServletContextListener{
private static final Log log = LogFactory.getLog(SelfEditing2RoleIdentifierSetup.class.getName());
@Override
public void contextDestroyed(ServletContextEvent sce) {
//do nothing
}
@Override
public void contextInitialized(ServletContextEvent sce) {
try{
log.debug("Setting up SelfEditing2RoleIdentifier");
ActiveIdentifierBundleFactories.addFactory(sce, new SelfEditing2RoleIdentifierFactory());
log.debug( "SelfEditing2RoleIdentifier has been setup. " );
}catch(Exception e){
log.error("could not run SelfEditing2RoleIdentifier: " + e);
e.printStackTrace();
}
}
}

View file

@ -28,15 +28,13 @@ import com.hp.hpl.jena.rdf.model.Literal;
import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ResourceFactory; import com.hp.hpl.jena.rdf.model.ResourceFactory;
import edu.cornell.mannlib.vitro.webapp.auth.identifier.IdentifierBundle;
import edu.cornell.mannlib.vitro.webapp.auth.identifier.RequestIdentifiers;
import edu.cornell.mannlib.vitro.webapp.auth.identifier.UserToIndIdentifierFactory;
import edu.cornell.mannlib.vitro.webapp.beans.DataPropertyStatement; import edu.cornell.mannlib.vitro.webapp.beans.DataPropertyStatement;
import edu.cornell.mannlib.vitro.webapp.edit.EditLiteral; import edu.cornell.mannlib.vitro.webapp.edit.EditLiteral;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.preprocessors.EditSubmissionPreprocessor; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.preprocessors.EditSubmissionPreprocessor;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.preprocessors.ModelChangePreprocessor; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.preprocessors.ModelChangePreprocessor;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.N3Validator; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.N3Validator;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.processEdit.EditN3Generator; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.processEdit.EditN3Generator;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.processEdit.EditN3Utils;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.processEdit.EditSubmission; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.processEdit.EditSubmission;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.processEdit.SparqlEvaluate; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.processEdit.SparqlEvaluate;
import edu.cornell.mannlib.vitro.webapp.search.beans.ProhibitedFromSearch; import edu.cornell.mannlib.vitro.webapp.search.beans.ProhibitedFromSearch;
@ -262,22 +260,9 @@ public class EditConfiguration {
throw new Error("EditConfiguration.addSystemValues() needs a session"); throw new Error("EditConfiguration.addSystemValues() needs a session");
/* ********** Get URI of a logged in user ************** */ /* ********** Get URI of a logged in user ************** */
IdentifierBundle ids = RequestIdentifiers.getIdBundleForRequest(request); String userUri = EditN3Utils.getEditorUri(request);
List<String> userUris = log.debug("EditConfiguration.java - checking system value for User URI " + userUri);
UserToIndIdentifierFactory.getIndividualsForUser(ids); getUrisInScope().put("editingUser", userUri);
if( userUris == null || userUris.size() == 0 ){
log.debug("Cound not find user ur for edit request");
log.error("Could not find a userUri for edit request, make " +
"sure that there is an IdentifierBundleFactory that " +
"produces userUri identifiers in the context.");
} else if( userUris.size() > 1 ){
log.error("Found multiple userUris, using the first in list.");
log.debug("Found multiple user uris");
}else {
log.debug("EditConfiguration.java - checking system value for User URI " + userUris.get(0));
getUrisInScope().put("editingUser",userUris.get(0));
}
} }
} }