%@ page import="org.apache.log4j.*" %>
<%@ page import="com.ecyrd.jspwiki.*" %>
<%@ page import="com.ecyrd.jspwiki.auth.AuthorizationManager" %>
<%@ page import="com.ecyrd.jspwiki.auth.permissions.PagePermission" %>
<%@ page import="com.ecyrd.jspwiki.tags.WikiTagBase" %>
<%@ page errorPage="/Error.jsp" %>
<%@ taglib uri="/WEB-INF/jspwiki.tld" prefix="wiki" %>
<%!
public void jspInit()
{
wiki = WikiEngine.getInstance( getServletConfig() );
}
Category log = Category.getInstance("JSPWiki");
WikiEngine wiki;
%>
<%
WikiContext wikiContext = wiki.createContext( request, WikiContext.RENAME );
String renameFrom = wikiContext.getPage().getName();
String renameTo = request.getParameter( "renameto");
boolean changeReferences = false;
if (request.getParameter("references") != null)
{
changeReferences = true;
}
// Check for the "rename" permission
AuthorizationManager mgr = wiki.getAuthorizationManager();
if( !mgr.checkPermission( wikiContext.getWikiSession(),
new PagePermission(wiki.getPage(renameFrom), "rename" ) ) )
{
log.info("User "+wikiContext.getCurrentUser()+" has no access - redirecting to login page.");
String msg = "You do not seem to have the permissions for this operation. Would you like to login as another user?";
wikiContext.setVariable( "msg", msg );
String pageurl = wiki.encodeName( renameFrom );
response.sendRedirect( wiki.getBaseURL()+"Login.jsp?page="+pageurl );
return;
}
pageContext.setAttribute( WikiTagBase.ATTR_CONTEXT, wikiContext, PageContext.REQUEST_SCOPE );
response.setContentType("text/html; charset="+wiki.getContentEncoding() );
log.info("Page rename request for page '"+renameFrom+ "' to new name '"+renameTo+"' from "+request.getRemoteAddr()+" by "+request.getRemoteUser() );
try
{
if (renameTo.length() > 0)
{
String renamedTo = wiki.renamePage(renameFrom, renameTo, changeReferences);
log.info("Page successfully renamed to '"+renamedTo+"'");
//Encoding is necessary in case the page name contains special chars like german Umlaute
renamedTo = wiki.encodeName(renamedTo);
response.sendRedirect( wiki.getBaseURL()+"Wiki.jsp?page="+renamedTo);
}
else
{
String msg = "New page name empty.
\nClick back on your browser and fill in the new name.";
pageContext.setAttribute( "message", msg, PageContext.REQUEST_SCOPE );
log.info("Page rename request failed because new page name was left blank");
%>