remove not used anymore classes
git-svn-id: https://svn.apache.org/repos/asf/archiva/redback/redback-core/trunk@1396046 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
80e0c953ec
commit
e7bd58f6fc
|
@ -1,158 +0,0 @@
|
|||
package org.apache.archiva.redback.integration.reports;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import org.apache.archiva.redback.rbac.RBACManager;
|
||||
import org.apache.archiva.redback.rbac.RbacManagerException;
|
||||
import org.apache.archiva.redback.rbac.Role;
|
||||
import org.apache.archiva.redback.rbac.UserAssignment;
|
||||
import org.apache.archiva.redback.users.UserManager;
|
||||
import org.apache.commons.lang.StringEscapeUtils;
|
||||
import org.apache.archiva.redback.system.SecuritySystem;
|
||||
import org.apache.archiva.redback.users.User;
|
||||
import org.apache.archiva.redback.integration.util.RoleSorter;
|
||||
import org.apache.archiva.redback.integration.util.UserComparator;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
import java.io.OutputStream;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* CsvRolesMatrix
|
||||
*
|
||||
* @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
|
||||
*
|
||||
*/
|
||||
@Service( "report#rolesmatrix-csv" )
|
||||
public class CsvRolesMatrix
|
||||
implements Report
|
||||
{
|
||||
@Inject
|
||||
private SecuritySystem securitySystem;
|
||||
|
||||
@Inject
|
||||
@Named( value = "rBACManager#jdo" )
|
||||
private RBACManager rbacManager;
|
||||
|
||||
public String getName()
|
||||
{
|
||||
return "Roles Matrix";
|
||||
}
|
||||
|
||||
public String getType()
|
||||
{
|
||||
return "csv";
|
||||
}
|
||||
|
||||
public void writeReport( OutputStream os )
|
||||
throws ReportException
|
||||
{
|
||||
UserManager userManager = securitySystem.getUserManager();
|
||||
|
||||
List<User> allUsers = userManager.getUsers();
|
||||
List<Role> allRoles;
|
||||
Map<String, List<String>> assignmentsMap;
|
||||
|
||||
try
|
||||
{
|
||||
allRoles = rbacManager.getAllRoles();
|
||||
Collections.sort( allRoles, new RoleSorter() );
|
||||
|
||||
assignmentsMap = new HashMap<String, List<String>>();
|
||||
|
||||
for ( UserAssignment assignment : rbacManager.getAllUserAssignments() )
|
||||
{
|
||||
assignmentsMap.put( assignment.getPrincipal(), assignment.getRoleNames() );
|
||||
}
|
||||
}
|
||||
catch ( RbacManagerException e )
|
||||
{
|
||||
throw new ReportException( "Unable to obtain list of all roles.", e );
|
||||
}
|
||||
|
||||
Collections.sort( allUsers, new UserComparator( "username", true ) );
|
||||
|
||||
PrintWriter out = new PrintWriter( os );
|
||||
|
||||
writeCsvHeader( out, allRoles );
|
||||
|
||||
for ( User user : allUsers )
|
||||
{
|
||||
writeCsvRow( out, user, assignmentsMap, allRoles );
|
||||
}
|
||||
|
||||
out.flush();
|
||||
}
|
||||
|
||||
private void writeCsvHeader( PrintWriter out, List<Role> allRoles )
|
||||
{
|
||||
out.print( "Username,Full Name,Email Address" );
|
||||
for ( Role role : allRoles )
|
||||
{
|
||||
out.print( "," + escapeCell( role.getName() ) );
|
||||
}
|
||||
out.println();
|
||||
}
|
||||
|
||||
private void writeCsvRow( PrintWriter out, User user, Map<String, List<String>> assignmentsMap,
|
||||
List<Role> allRoles )
|
||||
{
|
||||
out.print( escapeCell( user.getUsername() ) );
|
||||
out.print( "," + escapeCell( user.getFullName() ) );
|
||||
out.print( "," + escapeCell( user.getEmail() ) );
|
||||
|
||||
List<String> assignedRoleNames = assignmentsMap.get( user.getPrincipal().toString() );
|
||||
if ( assignedRoleNames == null )
|
||||
{
|
||||
assignedRoleNames = new ArrayList<String>();
|
||||
}
|
||||
|
||||
for ( Role role : allRoles )
|
||||
{
|
||||
out.print( ',' );
|
||||
if ( assignedRoleNames.contains( role.getName() ) )
|
||||
{
|
||||
out.print( 'Y' );
|
||||
}
|
||||
}
|
||||
out.println();
|
||||
}
|
||||
|
||||
private String escapeCell( String cell )
|
||||
{
|
||||
return "\"" + StringEscapeUtils.escapeJava( cell ) + "\"";
|
||||
}
|
||||
|
||||
public String getId()
|
||||
{
|
||||
return "rolesmatrix";
|
||||
}
|
||||
|
||||
public String getMimeType()
|
||||
{
|
||||
return "text/csv";
|
||||
}
|
||||
}
|
|
@ -1,182 +0,0 @@
|
|||
package org.apache.archiva.redback.integration.reports;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import org.apache.archiva.redback.users.User;
|
||||
import org.apache.archiva.redback.users.UserManager;
|
||||
import org.apache.commons.beanutils.PropertyUtils;
|
||||
import org.apache.commons.lang.StringEscapeUtils;
|
||||
import org.apache.archiva.redback.system.SecuritySystem;
|
||||
import org.apache.archiva.redback.integration.util.UserComparator;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.io.OutputStream;
|
||||
import java.io.PrintWriter;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* CsvUserList
|
||||
*
|
||||
* @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
|
||||
*
|
||||
*/
|
||||
@Service( "report#userlist-csv" )
|
||||
public class CsvUserList
|
||||
implements Report
|
||||
{
|
||||
private Logger log = LoggerFactory.getLogger( CsvUserList.class );
|
||||
|
||||
@Inject
|
||||
private SecuritySystem securitySystem;
|
||||
|
||||
private Map<String, String> fields;
|
||||
|
||||
public CsvUserList()
|
||||
{
|
||||
fields = new HashMap<String, String>();
|
||||
fields.put( "username", "User Name" );
|
||||
fields.put( "fullName", "Full Name" );
|
||||
fields.put( "email", "Email Address" );
|
||||
fields.put( "permanent", "Permanent User" );
|
||||
fields.put( "locked", "Locked User" );
|
||||
fields.put( "validated", "Validated User" );
|
||||
fields.put( "passwordChangeRequired", "Must Change Password On Next Login" );
|
||||
fields.put( "countFailedLoginAttempts", "Failed Login Attempts" );
|
||||
fields.put( "lastPasswordChange", "Last Password Change" );
|
||||
fields.put( "accountCreationDate", "Date Created" );
|
||||
fields.put( "lastLoginDate", "Date Last Logged In" );
|
||||
}
|
||||
|
||||
public String getId()
|
||||
{
|
||||
return "userlist";
|
||||
}
|
||||
|
||||
public String getMimeType()
|
||||
{
|
||||
return "text/csv";
|
||||
}
|
||||
|
||||
public String getName()
|
||||
{
|
||||
return "User List";
|
||||
}
|
||||
|
||||
public String getType()
|
||||
{
|
||||
return "csv";
|
||||
}
|
||||
|
||||
public void writeReport( OutputStream os )
|
||||
throws ReportException
|
||||
{
|
||||
UserManager userManager = securitySystem.getUserManager();
|
||||
|
||||
List<User> allUsers = userManager.getUsers();
|
||||
|
||||
Collections.sort( allUsers, new UserComparator( "username", true ) );
|
||||
|
||||
PrintWriter out = new PrintWriter( os );
|
||||
|
||||
writeCsvHeader( out );
|
||||
|
||||
Iterator<User> itUsers = allUsers.iterator();
|
||||
while ( itUsers.hasNext() )
|
||||
{
|
||||
User user = (User) itUsers.next();
|
||||
writeCsvRow( out, user );
|
||||
}
|
||||
|
||||
out.flush();
|
||||
}
|
||||
|
||||
private void writeCsvHeader( PrintWriter out )
|
||||
{
|
||||
boolean hasPreviousField = false;
|
||||
for ( String heading : fields.values() )
|
||||
{
|
||||
if ( hasPreviousField )
|
||||
{
|
||||
out.print( "," );
|
||||
}
|
||||
out.print( escapeCell( heading ) );
|
||||
hasPreviousField = true;
|
||||
}
|
||||
out.println();
|
||||
}
|
||||
|
||||
@SuppressWarnings( "unchecked" )
|
||||
private void writeCsvRow( PrintWriter out, User user )
|
||||
throws ReportException
|
||||
{
|
||||
try
|
||||
{
|
||||
boolean hasPreviousField = false;
|
||||
Map<String, Object> propMap = PropertyUtils.describe( user );
|
||||
for ( String propName : fields.keySet() )
|
||||
{
|
||||
Object propValue = propMap.get( propName );
|
||||
|
||||
if ( hasPreviousField )
|
||||
{
|
||||
out.print( "," );
|
||||
}
|
||||
|
||||
if ( propValue != null )
|
||||
{
|
||||
out.print( escapeCell( propValue.toString() ) );
|
||||
}
|
||||
hasPreviousField = true;
|
||||
}
|
||||
out.println();
|
||||
}
|
||||
catch ( IllegalAccessException e )
|
||||
{
|
||||
String emsg = "Unable to produce " + getName() + " report.";
|
||||
log.error( emsg, e );
|
||||
throw new ReportException( emsg, e );
|
||||
}
|
||||
catch ( InvocationTargetException e )
|
||||
{
|
||||
String emsg = "Unable to produce " + getName() + " report.";
|
||||
log.error( emsg, e );
|
||||
throw new ReportException( emsg, e );
|
||||
}
|
||||
catch ( NoSuchMethodException e )
|
||||
{
|
||||
String emsg = "Unable to produce " + getName() + " report.";
|
||||
log.error( emsg, e );
|
||||
throw new ReportException( emsg, e );
|
||||
}
|
||||
}
|
||||
|
||||
private String escapeCell( String cell )
|
||||
{
|
||||
return "\"" + StringEscapeUtils.escapeJava( cell ) + "\"";
|
||||
}
|
||||
}
|
|
@ -1,69 +0,0 @@
|
|||
package org.apache.archiva.redback.integration.reports;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import java.io.OutputStream;
|
||||
|
||||
/**
|
||||
* Report
|
||||
*
|
||||
* @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
|
||||
*
|
||||
*/
|
||||
public interface Report
|
||||
{
|
||||
/**
|
||||
* The Name of the Report (for display to the user)
|
||||
*
|
||||
* @return the name of the report.
|
||||
*/
|
||||
String getName();
|
||||
|
||||
/**
|
||||
* The type of report (example: 'csv', 'xls', 'pdf')
|
||||
* Used in the display of the report links to the user.
|
||||
*
|
||||
* @return the type of report.
|
||||
*/
|
||||
String getType();
|
||||
|
||||
/**
|
||||
* The mimetype of the report. (used to set download content type correctly)
|
||||
*
|
||||
* @return the mimetype.
|
||||
*/
|
||||
String getMimeType();
|
||||
|
||||
/**
|
||||
* The ID for this report.
|
||||
*
|
||||
* @return the ID for this report.
|
||||
*/
|
||||
String getId();
|
||||
|
||||
/**
|
||||
* Write Report to provided outputstream.
|
||||
*
|
||||
* @param os the outputstream to write to.
|
||||
* @throws ReportException if there was a problem in generating the report.
|
||||
*/
|
||||
void writeReport( OutputStream os )
|
||||
throws ReportException;
|
||||
}
|
|
@ -1,51 +0,0 @@
|
|||
package org.apache.archiva.redback.integration.reports;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* ReportException
|
||||
*
|
||||
* @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
|
||||
*
|
||||
*/
|
||||
public class ReportException
|
||||
extends Exception
|
||||
{
|
||||
|
||||
public ReportException()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public ReportException( String message, Throwable cause )
|
||||
{
|
||||
super( message, cause );
|
||||
}
|
||||
|
||||
public ReportException( String message )
|
||||
{
|
||||
super( message );
|
||||
}
|
||||
|
||||
public ReportException( Throwable cause )
|
||||
{
|
||||
super( cause );
|
||||
}
|
||||
}
|
|
@ -1,103 +0,0 @@
|
|||
package org.apache.archiva.redback.integration.reports;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.inject.Inject;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* ReportManager
|
||||
*
|
||||
* @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
|
||||
*
|
||||
*/
|
||||
@Service( "reportManager" )
|
||||
public class ReportManager
|
||||
{
|
||||
|
||||
@Inject
|
||||
private List<Report> availableReports;
|
||||
|
||||
@Inject
|
||||
private ApplicationContext applicationContext;
|
||||
|
||||
private Map<String, Map<String, Report>> reportMap;
|
||||
|
||||
public Report findReport( String id, String type )
|
||||
throws ReportException
|
||||
{
|
||||
if ( StringUtils.isBlank( id ) )
|
||||
{
|
||||
throw new ReportException( "Unable to generate report from empty report id." );
|
||||
}
|
||||
|
||||
if ( StringUtils.isBlank( type ) )
|
||||
{
|
||||
throw new ReportException( "Unable to generate report from empty report type." );
|
||||
}
|
||||
|
||||
Map<String, Report> typeMap = reportMap.get( id );
|
||||
if ( typeMap == null )
|
||||
{
|
||||
throw new ReportException( "Unable to find report id [" + id + "]" );
|
||||
}
|
||||
|
||||
Report requestedReport = typeMap.get( type );
|
||||
|
||||
if ( requestedReport == null )
|
||||
{
|
||||
throw new ReportException( "Unable to find report id [" + id + "] type [" + type + "]" );
|
||||
}
|
||||
|
||||
return requestedReport;
|
||||
}
|
||||
|
||||
public Map<String, Map<String, Report>> getReportMap()
|
||||
{
|
||||
return Collections.unmodifiableMap( reportMap );
|
||||
}
|
||||
|
||||
@SuppressWarnings( "unchecked" )
|
||||
@PostConstruct
|
||||
public void initialize()
|
||||
{
|
||||
reportMap = new HashMap<String, Map<String, Report>>();
|
||||
|
||||
for ( Report report : availableReports )
|
||||
{
|
||||
Map<String, Report> typeMap = reportMap.get( report.getId() );
|
||||
if ( typeMap == null )
|
||||
{
|
||||
typeMap = new HashMap<String, Report>();
|
||||
}
|
||||
|
||||
typeMap.put( report.getType(), report );
|
||||
reportMap.put( report.getId(), typeMap );
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue