blob: ad58bc40c6e709691174a273529497a30072013f [file] [log] [blame]
/*
* 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.util.ArrayList
import java.util.Collection
import java.util.HashMap
import java.util.Iterator
import java.util.LinkedList
import java.util.List
import java.util.Map
import java.util.Set
import java.util.TreeSet
import org.apache.ofbiz.base.util.*
import org.apache.ofbiz.entity.*
import org.apache.ofbiz.security.*
import org.apache.ofbiz.service.*
import org.apache.ofbiz.entity.model.*
import org.apache.ofbiz.content.content.PermissionRecorder
import javax.servlet.*
import javax.servlet.http.*
paramMap = UtilHttp.getParameterMap(request)
contentIdTo = paramMap.contentIdTo
if (!contentIdTo) {
request.setAttribute("errorMsgReq", "contentIdTo is empty")
return
}
/*
pubPt = paramMap.pubPt ?: context.pubPt
if (!pubPt) {
request.setAttribute("errorMsgReq", "pubPt is empty")
return
}
*/
contentToValue = from("Content").where("contentId", contentIdTo).queryOne()
contentToPurposeList = contentToValue.getRelated("ContentPurpose", null, null, true)
currentValue = delegator.makeValue("Content", [contentTypeId : "DOCUMENT", statusId : "CTNT_PUBLISHED", privilegeEnumId : "_00_"])
if (contentToPurposeList.contains("RESPONSE")) {
ownerContentId = contentToValue.ownerContentId
currentValue.ownerContentId = ownerContentId
} else {
contentId = contentToValue.contentId
currentValueownerContentId = contentId
}
mapIn = [:]
mapIn.userLogin = userLogin
targetOperationList = StringUtil.split(context.targetOperation, "|")
mapIn.targetOperationList = targetOperationList
if (currentValue) {
mapIn.currentContent = currentValue
}
mapIn.entityOperation = "_CREATE"
mapIn.contentPurposeList = ["RESPONSE"]
//org.apache.ofbiz.base.util.Debug.logInfo("in permprep, mapIn:" + mapIn, null)
result = runService('checkContentPermission', mapIn)
permissionStatus = result.permissionStatus
//org.apache.ofbiz.base.util.Debug.logInfo("permissionStatus:" + permissionStatus, null)
if (!"granted".equals(permissionStatus)) {
request.setAttribute("errorMsgReq", "Permission to add response is denied (1)")
errorMessage = "Permission to add response is denied (2)"
recorder = result.permissionRecorder
//Debug.logInfo("recorder(0):" + recorder, "")
if (recorder) {
permissionMessage = recorder.toHtml()
//Debug.logInfo("permissionMessage(0):" + permissionMessage, "")
errorMessage += " \n " + permissionMessage
}
request.setAttribute("permissionErrorMsg", errorMessage)
context.permissionErrorMsg = errorMessage
context.hasPermission = false
request.setAttribute("hasPermission", false)
request.setAttribute("permissionStatus", "")
return
} else {
context.hasPermission = true
request.setAttribute("hasPermission", true)
request.setAttribute("permissionStatus", "granted")
}
/*
pubContentValue = delegator.findOne("Content", [contentId : pubPt], false)
if (pubContentValue) {
mapIn.currentContent = pubContentValue
mapIn.statusId = "CTNT_PUBLISHED"
}
//org.apache.ofbiz.base.util.Debug.logInfo("in permprep(2), mapIn:" + mapIn, null)
result = dispatcher.runSync("checkContentPermission", mapIn)
permissionStatus = result.permissionStatus
//org.apache.ofbiz.base.util.Debug.logInfo("permissionStatus(2):" + permissionStatus, null)
if (!"granted".equals(permissionStatus)) {
request.setAttribute("errorMsgReq", "Permission to add response is denied (2)")
errorMessage = "Permission to add response is denied (2)"
recorder = result.permissionRecorder
//Debug.logInfo("recorder(0):" + recorder, "")
if (recorder) {
permissionMessage = recorder.toHtml()
//Debug.logInfo("permissionMessage(0):" + permissionMessage, "")
errorMessage += " \n " + permissionMessage
}
request.setAttribute("permissionErrorMsg", errorMessage)
context.permissionErrorMsg = errorMessage
context.hasPermission = false
request.setAttribute("hasPermission", false)
request.setAttribute("permissionStatus", "")
return
} else {
context.hasPermission = true
request.setAttribute("hasPermission", true)
request.setAttribute("permissionStatus", "granted")
}
*/
request.setAttribute("currentValue", currentValue)
singleWrapper = context.singleWrapper
singleWrapper.putInContext("contentPurposeTypeId", context.contentPurposeTypeId)
singleWrapper.putInContext("targetOperation", context.targetOperation)
singleWrapper.putInContext("targetOperationString", context.targetOperation)
singleWrapper.putInContext("currentValue", currentValue)
trailList = context.trailList
replyName = null
if (trailList) {
idNamePair = trailList[trailList.size() -1]
replyName = idNamePair[1]
if (!replyName.contains("RE:")) {
replyName = "RE:" + replyName
}
}
singleWrapper.putInContext("replyName", [contentName : replyName, description : replyName])