<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page trimDirectiveWhitespaces="true" %> <%@ page import="org.crosswire.utils.Sessions" %> <%@ page import="org.crosswire.community.RightsAndRoles" %> <%@ page import="org.crosswire.community.projects.ntmss.data.ProjectManagement" %> <%@ page import="org.crosswire.community.projects.ntmss.data.Document" %> <%@ page import="org.crosswire.repo.VersionedRepo" %> <%@ page import="org.crosswire.utils.Utils" %> <%@ page import="org.apache.log4j.Logger" %> <% Logger logger = Logger.getLogger("project/data/put"); boolean pushOnCommit = "true".equals(Utils.getSysConfig(session).getProperty("VersionedRepoPushOnCommit")); // who we are String userName = Sessions.getSessionStringValue(request, "userName"); // who we'd like to save project/data as String saveAsUserName = request.getParameter("userName"); int projectID = -1; try {projectID = Integer.parseInt(request.getParameter("projectID"));} catch (Exception e){} String projectName = request.getParameter("projectName"); if (projectName != null) projectName = new String(projectName.getBytes("iso8859-1"), "UTF-8"); String key = request.getParameter("key"); String subKey = request.getParameter("subKey"); if (subKey == null) subKey = "primary"; String body = request.getParameter("data"); String push = request.getParameter("push"); //if (body != null) body = new String(body.getBytes("iso8859-1"), "UTF-8"); String role="VMR Administrator"; String role2="Project Manager"; if ((projectID > -1 || projectName != null) && key != null) { response.setContentType("text/xml"); ProjectManagement.Project pr = projectID > -1 ? ProjectManagement.getProject(projectID) : ProjectManagement.getProject(projectName); if (pr == null) { out.print(""); return; } // let's check to see if we're a privileged user boolean isAdmin = RightsAndRoles.hasRole(request, response, role); if (!isAdmin) isAdmin = RightsAndRoles.hasRole(request, response, role2); if (userName == null || userName.length() < 1) { out.print(""); return; } if (!isAdmin && (saveAsUserName == null || saveAsUserName.length() < 1)) { out.print(""); return; } if (!isAdmin && !userName.equals(saveAsUserName)) { out.print(""); return; } String path = pr.getProjectName() + "/"; if (!key.endsWith("/")) key += "/"; path += key; if (saveAsUserName != null && saveAsUserName.length() > 0) path += "initial/" + saveAsUserName + "/"; path += subKey + ".txt"; VersionedRepo.putFile(path, userName, new StringBuffer(body), VersionedRepo.PATH_PROJECT); if (!"false".equals(push)) { if (pushOnCommit) { VersionedRepo.push(); } } out.print(""); return; } %>

project/data/put

set project data

Parameters

projectIDproject id to retrieve,
projectNameproject name to retrieve
keypath for data, e.g., collation/regularized/Rev.1.1
subKeyoptional, (primary) a subKey if multiple values will be stored for this key
userNameoptional, scoped for individual user
databody of data to set
push[(true)|false] should repository be pushed