org.opencms.workplace.commons
Class CmsChacc

java.lang.Object
  extended by org.opencms.workplace.CmsWorkplace
      extended by org.opencms.workplace.tools.CmsToolDialog
          extended by org.opencms.workplace.CmsDialog
              extended by org.opencms.workplace.commons.CmsChacc

public class CmsChacc
extends CmsDialog

Provides methods for building the permission settings dialog.

The following files use this class:

Since:
6.0.0
Version:
$Revision: 1.37 $
Author:
Andreas Zahner

Field Summary
static int ACTION_ADDACE
          Value for the action: add an access control entry.
static int ACTION_DELETE
          Value for the action: delete the permissions.
static int ACTION_INTERNALUSE
          Value for the action: set the internal use flag.
static java.lang.String DIALOG_ADDACE
          Request parameter value for the action: add an access control entry.
static java.lang.String DIALOG_DELETE
          Request parameter value for the action: delete the permissions.
static java.lang.String DIALOG_INTERNALUSE
          Request parameter value for the action: set the internal use flag.
static java.lang.String DIALOG_TYPE
          The dialog type.
static java.lang.String PARAM_INHERIT
          Request parameter name for the inherit permissions parameter.
static java.lang.String PARAM_INTERNAL
          Request parameter name for the internal use only flag.
static java.lang.String PARAM_NAME
          Request parameter name for the name parameter.
static java.lang.String PARAM_OVERWRITEINHERITED
          Request parameter name for the overwrite inherited permissions parameter.
static java.lang.String PARAM_RESPONSIBLE
          Request parameter name for the responsible parameter.
static java.lang.String PARAM_TYPE
          Request parameter name for the type parameter.
static java.lang.String PARAM_VIEW
          Request parameter name for the view parameter.
static java.lang.String PERMISSION_ALLOW
          Constant for the request parameters suffix: allow.
static java.lang.String PERMISSION_DENY
          Constant for the request parameters suffix: deny.
 
Fields inherited from class org.opencms.workplace.CmsDialog
ACTION_CANCEL, ACTION_CLOSEPOPUP, ACTION_CLOSEPOPUP_SAVE, ACTION_CONFIRMED, ACTION_CONTINUE, ACTION_DEFAULT, ACTION_LOCKS_CONFIRMED, ACTION_OK, ACTION_REPORT_BEGIN, ACTION_REPORT_END, ACTION_REPORT_UPDATE, ACTION_SET, ACTION_WAIT, ATTRIBUTE_THROWABLE, BUTTON_ADVANCED, BUTTON_BACK, BUTTON_CANCEL, BUTTON_CLOSE, BUTTON_CONTINUE, BUTTON_DETAILS, BUTTON_DISCARD, BUTTON_EDIT, BUTTON_OK, BUTTON_OK_NO_SUBMIT, BUTTON_SET, DIALOG_BACK, DIALOG_CANCEL, DIALOG_CONFIRMED, DIALOG_CONTINUE, DIALOG_INITIAL, DIALOG_LOCKS_CONFIRMED, DIALOG_OK, DIALOG_SET, DIALOG_WAIT, PARAM_ACTION, PARAM_CLOSELINK, PARAM_DIALOGTYPE, PARAM_ERRORSTACK, PARAM_FILE, PARAM_FRAMENAME, PARAM_ISPOPUP, PARAM_LOCK, PARAM_MESSAGE, PARAM_ORIGINALPARAMS, PARAM_PREACTIONDONE, PARAM_REDIRECT, PARAM_RESOURCE, PARAM_TARGET, PARAM_THREAD, PARAM_THREAD_HASNEXT, PARAM_TITLE, REPORT_BEGIN, REPORT_END, REPORT_UPDATE
 
Fields inherited from class org.opencms.workplace.tools.CmsToolDialog
PARAM_BASE, PARAM_FORCE, PARAM_PATH, PARAM_ROOT, PARAM_STYLE, STYLE_NEW
 
Fields inherited from class org.opencms.workplace.CmsWorkplace
DEBUG, DEFAULT_LANGUAGE, DEFAULT_LOCALE, DIALOG_PATH_COMMON, FILE_DIALOG_CLOSE, FILE_DIALOG_SCREEN_CONFIRM, FILE_DIALOG_SCREEN_ERROR, FILE_DIALOG_SCREEN_ERRORPAGE, FILE_DIALOG_SCREEN_WAIT, FILE_EXPLORER_FILELIST, FILE_REPORT_OUTPUT, HTML_END, HTML_START, PARAM_WP_EXPLORER_RESOURCE, PARAM_WP_PROJECT, PARAM_WP_SITE, PATH_DIALOGS, PATH_WORKPLACE, REQUEST_ATTRIBUTE_MULTIPART, REQUEST_ATTRIBUTE_RELOADTREE, RFS_PATH_RESOURCES, SESSION_WORKPLACE_CLASS, TEMP_FILE_PREFIX, VFS_DIR_DEFAULTBODIES, VFS_DIR_TEMPLATES, VFS_PATH_COMMONS, VFS_PATH_EDITORS, VFS_PATH_GALLERIES, VFS_PATH_LOCALES, VFS_PATH_MODULES, VFS_PATH_RESOURCES, VFS_PATH_SYSTEM, VFS_PATH_VIEWS, VFS_PATH_WORKPLACE
 
Constructor Summary
CmsChacc(CmsJspActionElement jsp)
          Public constructor.
CmsChacc(javax.servlet.jsp.PageContext context, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)
          Public constructor with JSP variables.
 
Method Summary
 boolean actionAddAce()
          Adds a new access control entry to the resource.
 boolean actionInternalUse(javax.servlet.http.HttpServletRequest request)
          Modifies the Internal Use flag of a resource.
 boolean actionModifyAce(javax.servlet.http.HttpServletRequest request)
          Modifies a present access control entry for a resource.
 boolean actionRemoveAce()
          Removes a present access control entry from the resource.
 java.lang.String buildCurrentPermissions()
          Builds a String with HTML code to display the users access rights for the current resource.
 java.lang.String buildErrorMessages()
          Returns the error messages if something went wrong.
 java.lang.String buildResponsibleList(boolean show)
          Builds a String with HTML code to display the responsibles of a resource.
 java.lang.String buildRightsList()
          Builds a String with HTML code to display the inherited and own access control entries of a resource.
static java.lang.String buildSummaryDetailsButtons(CmsDialog wp)
          Builds a detail view selector.
protected  boolean checkNewEntry(java.lang.String name, int arrayPosition)
          Validates the user input when creating a new access control entry.
protected  java.lang.String getConnectedResource(CmsAccessControlEntry entry, java.util.Map parents)
          Returns the resource on which the specified access control entry was set.
 CmsPermissionSet getCurPermissions()
          Returns the current users permission set on the resource.
protected  boolean getEditable()
          Returns the current editable flag for the user to change ACEs.
protected  java.lang.String getEntryType(int flags, boolean all)
          Determines the type of the current access control entry.
protected  int getEntryTypeInt(int flags)
          Determines the int type of the current access control entry.
 java.util.List getErrorMessages()
          Returns a list with all error messages which occurred when trying to add a new access control entry.
 java.lang.String getErrorMessagesString()
          Returns a String with all error messages occuring when trying to add a new access control entry.
protected  boolean getInheritOption()
          Returns if the access control entry can be inherited to subfolders and can overwrite inherited permissions.
 java.lang.String getParamName()
          Returns the value of the name parameter, or null if this parameter was not provided.
 java.lang.String getParamType()
          Returns the value of the type parameter, or null if this parameter was not provided.
 boolean getShowInheritedPermissions()
          Returns if the inherited permissions information should be displayed.
protected  java.lang.String[] getTypes(boolean all)
          Returns a String array with the possible entry types.
protected  int[] getTypesInt()
          Returns an int array with possible entry types.
protected  java.lang.String[] getTypesLocalized()
          Returns a String array with the possible localized entry types.
 java.lang.String htmlStart()
          Builds the start html of the page, including setting of DOCTYPE and inserting a header with the content-type.
 void init()
          Initializes some member variables to display the form with the right options for the current user.
protected  void initWorkplaceRequestValues(CmsWorkplaceSettings settings, javax.servlet.http.HttpServletRequest request)
          Analyzes the request for workplace parameters and adjusts the workplace settings accordingly.
protected  boolean isAllowed(CmsPermissionSet p, int value)
          Checks if a certain permission of a permission set is allowed.
protected  boolean isDenied(CmsPermissionSet p, int value)
          Checks if a certain permission of a permission set is denied.
protected  boolean isOverWritingInherited(int flags)
          Check if the current permissions are overwriting the inherited ones.
protected  boolean isResponsible(int flags)
          Check if the user is a responsible for the resource.
protected  void setCurPermissions(CmsPermissionSet value)
          Sets the current users permissions on the resource.
protected  void setEditable(boolean value)
          Sets the editable flag for the forms.
protected  void setInheritOption(boolean value)
          Sets if the access control entry can be inherited to subfolders and can overwrite inherited permissions.
 void setParamName(java.lang.String value)
          Sets the value of the name parameter.
 void setParamType(java.lang.String value)
          Sets the value of the type parameter.
protected  void setShowInheritedPermissions(boolean showInheritedPermissions)
          Sets if the inherited permissions information should be displayed.
 
Methods inherited from class org.opencms.workplace.CmsDialog
actionCloseDialog, appendDelimiter, buildAjaxResultContainer, buildAjaxWaitMessage, buildLockAdditionalOptions, buildLockConfirmationMessageJS, buildLockDialog, buildLockDialog, buildLockHeaderBox, checkResourcePermissions, checkResourcePermissions, computeCurrentFolder, dialog, dialogBlock, dialogBlockEnd, dialogBlockStart, dialogButtonRow, dialogButtonRowEnd, dialogButtonRowStart, dialogButtons, dialogButtonsClose, dialogButtonsClose, dialogButtonsCloseDetails, dialogButtonsHtml, dialogButtonsOk, dialogButtonsOk, dialogButtonsOkCancel, dialogButtonsOkCancel, dialogButtonsOkCancelAdvanced, dialogButtonsSetOkCancel, dialogContent, dialogContentEnd, dialogContentStart, dialogEnd, dialogHead, dialogHorizontalSpacer, dialogLockButtons, dialogRow, dialogRowEnd, dialogRowStart, dialogScriptSubmit, dialogSeparator, dialogSpacer, dialogStart, dialogStart, dialogSubheadline, dialogToggleStart, dialogWhiteBox, dialogWhiteBoxEnd, dialogWhiteBoxStart, getAction, getAdministrationBackLink, getCancelAction, getDialogRealUri, getDialogUri, getOnlineHelpUriCustom, getParamAction, getParamCloseLink, getParamDialogtype, getParamFramename, getParamIsPopup, getParamMessage, getParamOriginalParams, getParamPreActionDone, getParamRedirect, getParamResource, getParamTitle, getState, hasCorrectLockstate, hasSiblings, htmlStart, htmlStart, htmlStartStyle, includeErrorpage, initCmsDialog, isPopup, isPreEditor, pageHtml, pageHtml, setAction, setOnlineHelpUriCustom, setParamAction, setParamCloseLink, setParamDialogtype, setParamFramename, setParamIsPopup, setParamMessage, setParamOriginalParams, setParamPreActionDone, setParamRedirect, setParamResource, setParamTitle
 
Methods inherited from class org.opencms.workplace.tools.CmsToolDialog
dialogTitle, getAdminTool, getCurrentToolPath, getParamBase, getParamForce, getParamPath, getParamRoot, getParamStyle, getParentPath, getToolManager, iconsBlockArea, iconsBlockAreaEnd, iconsBlockAreaStart, initAdminTool, pageBody, pageHtmlStyle, setParamBase, setParamForce, setParamPath, setParamRoot, setParamStyle, useNewStyle
 
Methods inherited from class org.opencms.workplace.CmsWorkplace
addMessages, addMessages, allParamsAsHidden, allParamsAsRequest, allParamValues, bodyEnd, bodyStart, bodyStart, buildSelect, buildSelect, button, button, buttonBar, buttonBar, buttonBarHorizontalLine, buttonBarLabel, buttonBarLabel, buttonBarLine, buttonBarLineSpacer, buttonBarSeparator, buttonBarSpacer, buttonBarStartTab, checkLock, checkLock, checkRole, decodeParamValue, fillParamValues, fillParamValues, getBroadcastMessageString, getCms, getEncoding, getExplorerFileListFullUri, getFrameSource, getJsp, getLocale, getMacroResolver, getMessages, getMultiPartFileItems, getParameterMap, getResourceUri, getResourceUri, getSession, getSettings, getSkinUri, getStyleUri, getStyleUri, getStyleUri, getTemporaryFileName, htmlEnd, initMessages, initSettings, initTimeWarp, initUserSettings, initWorkplaceMembers, initWorkplaceSettings, isForwarded, isHelpEnabled, isSubElement, isTemporaryFile, isTemporaryFileName, key, key, keyDefault, nullToEmpty, paramsAsHidden, paramsAsHidden, paramsAsParameterMap, paramsAsRequest, paramValues, resolveMacros, sendCmsRedirect, sendForward, setForwarded, shortKey, switchToCurrentProject, switchToTempProject
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ACTION_ADDACE

public static final int ACTION_ADDACE
Value for the action: add an access control entry.

See Also:
Constant Field Values

ACTION_DELETE

public static final int ACTION_DELETE
Value for the action: delete the permissions.

See Also:
Constant Field Values

ACTION_INTERNALUSE

public static final int ACTION_INTERNALUSE
Value for the action: set the internal use flag.

See Also:
Constant Field Values

DIALOG_ADDACE

public static final java.lang.String DIALOG_ADDACE
Request parameter value for the action: add an access control entry.

See Also:
Constant Field Values

DIALOG_DELETE

public static final java.lang.String DIALOG_DELETE
Request parameter value for the action: delete the permissions.

See Also:
Constant Field Values

DIALOG_INTERNALUSE

public static final java.lang.String DIALOG_INTERNALUSE
Request parameter value for the action: set the internal use flag.

See Also:
Constant Field Values

DIALOG_TYPE

public static final java.lang.String DIALOG_TYPE
The dialog type.

See Also:
Constant Field Values

PARAM_INHERIT

public static final java.lang.String PARAM_INHERIT
Request parameter name for the inherit permissions parameter.

See Also:
Constant Field Values

PARAM_INTERNAL

public static final java.lang.String PARAM_INTERNAL
Request parameter name for the internal use only flag.

See Also:
Constant Field Values

PARAM_NAME

public static final java.lang.String PARAM_NAME
Request parameter name for the name parameter.

See Also:
Constant Field Values

PARAM_OVERWRITEINHERITED

public static final java.lang.String PARAM_OVERWRITEINHERITED
Request parameter name for the overwrite inherited permissions parameter.

See Also:
Constant Field Values

PARAM_RESPONSIBLE

public static final java.lang.String PARAM_RESPONSIBLE
Request parameter name for the responsible parameter.

See Also:
Constant Field Values

PARAM_TYPE

public static final java.lang.String PARAM_TYPE
Request parameter name for the type parameter.

See Also:
Constant Field Values

PARAM_VIEW

public static final java.lang.String PARAM_VIEW
Request parameter name for the view parameter.

See Also:
Constant Field Values

PERMISSION_ALLOW

public static final java.lang.String PERMISSION_ALLOW
Constant for the request parameters suffix: allow.

See Also:
Constant Field Values

PERMISSION_DENY

public static final java.lang.String PERMISSION_DENY
Constant for the request parameters suffix: deny.

See Also:
Constant Field Values
Constructor Detail

CmsChacc

public CmsChacc(CmsJspActionElement jsp)
Public constructor.

Parameters:
jsp - an initialized JSP action element

CmsChacc

public CmsChacc(javax.servlet.jsp.PageContext context,
                javax.servlet.http.HttpServletRequest req,
                javax.servlet.http.HttpServletResponse res)
Public constructor with JSP variables.

Parameters:
context - the JSP page context
req - the JSP request
res - the JSP response
Method Detail

buildSummaryDetailsButtons

public static java.lang.String buildSummaryDetailsButtons(CmsDialog wp)
Builds a detail view selector.

Parameters:
wp - the dialog object
Returns:
the HTML code for the detail view selector

actionAddAce

public boolean actionAddAce()
Adds a new access control entry to the resource.

Returns:
true if a new ace was created, otherwise false

actionInternalUse

public boolean actionInternalUse(javax.servlet.http.HttpServletRequest request)
Modifies the Internal Use flag of a resource.

Parameters:
request - the Http servlet request
Returns:
true if the operation was was successfully removed, otherwise false

actionModifyAce

public boolean actionModifyAce(javax.servlet.http.HttpServletRequest request)
Modifies a present access control entry for a resource.

Parameters:
request - the Http servlet request
Returns:
true if the modification worked, otherwise false

actionRemoveAce

public boolean actionRemoveAce()
Removes a present access control entry from the resource.

Returns:
true if the ace was successfully removed, otherwise false

buildCurrentPermissions

public java.lang.String buildCurrentPermissions()
Builds a String with HTML code to display the users access rights for the current resource.

Returns:
HTML String with the access rights of the current user

buildErrorMessages

public java.lang.String buildErrorMessages()
Returns the error messages if something went wrong.

Returns:
all error messages

buildResponsibleList

public java.lang.String buildResponsibleList(boolean show)
Builds a String with HTML code to display the responsibles of a resource.

Parameters:
show - true the responsible list is open
Returns:
HTML code for the responsibles of the current resource

buildRightsList

public java.lang.String buildRightsList()
Builds a String with HTML code to display the inherited and own access control entries of a resource.

Returns:
HTML code for inherited and own entries of the current resource

getCurPermissions

public CmsPermissionSet getCurPermissions()
Returns the current users permission set on the resource.

Returns:
the users permission set

getErrorMessages

public java.util.List getErrorMessages()
Returns a list with all error messages which occurred when trying to add a new access control entry.

Returns:
List of error message Strings

getErrorMessagesString

public java.lang.String getErrorMessagesString()
Returns a String with all error messages occuring when trying to add a new access control entry.

Returns:
String with error messages, separated by <br>

getParamName

public java.lang.String getParamName()
Returns the value of the name parameter, or null if this parameter was not provided.

The name parameter stores the name of the group or user.

Returns:
the value of the name parameter

getParamType

public java.lang.String getParamType()
Returns the value of the type parameter, or null if this parameter was not provided.

The type parameter stores the type of an ace (group or user).

Returns:
the value of the type parameter

getShowInheritedPermissions

public boolean getShowInheritedPermissions()
Returns if the inherited permissions information should be displayed.

Returns:
true if the inherited permissions information should be displayed, otherwise false

htmlStart

public java.lang.String htmlStart()
Description copied from class: CmsDialog
Builds the start html of the page, including setting of DOCTYPE and inserting a header with the content-type.

Overrides:
htmlStart in class CmsDialog
Returns:
the start html of the page
See Also:
CmsDialog.htmlStart()

init

public void init()
Initializes some member variables to display the form with the right options for the current user.

This method must be called after initWorkplaceRequestValues().


setParamName

public void setParamName(java.lang.String value)
Sets the value of the name parameter.

Parameters:
value - the value to set

setParamType

public void setParamType(java.lang.String value)
Sets the value of the type parameter.

Parameters:
value - the value to set

checkNewEntry

protected boolean checkNewEntry(java.lang.String name,
                                int arrayPosition)
Validates the user input when creating a new access control entry.

Parameters:
name - the name of the new user/group
arrayPosition - the position in the types array
Returns:
true if everything is ok, otherwise false

getConnectedResource

protected java.lang.String getConnectedResource(CmsAccessControlEntry entry,
                                                java.util.Map parents)
Returns the resource on which the specified access control entry was set.

Parameters:
entry - the current access control entry
parents - the parent resources to determine the connected resource
Returns:
the resource name of the corresponding resource

getEditable

protected boolean getEditable()
Returns the current editable flag for the user to change ACEs.

Returns:
true if user can edit the permissions, otherwise false

getEntryType

protected java.lang.String getEntryType(int flags,
                                        boolean all)
Determines the type of the current access control entry.

Parameters:
flags - the value of the current flags
all - to include all types, or just user and groups
Returns:
String representation of the ace type

getEntryTypeInt

protected int getEntryTypeInt(int flags)
Determines the int type of the current access control entry.

Parameters:
flags - the value of the current flags
Returns:
int representation of the ace type as int

getInheritOption

protected boolean getInheritOption()
Returns if the access control entry can be inherited to subfolders and can overwrite inherited permissions.

Returns:
true to show the checkbox, otherwise false

getTypes

protected java.lang.String[] getTypes(boolean all)
Returns a String array with the possible entry types.

Parameters:
all - to include all types, or just user, groups and roles
Returns:
the possible types

getTypesInt

protected int[] getTypesInt()
Returns an int array with possible entry types.

Returns:
the possible types as int array

getTypesLocalized

protected java.lang.String[] getTypesLocalized()
Returns a String array with the possible localized entry types.

Returns:
the possible localized types

initWorkplaceRequestValues

protected void initWorkplaceRequestValues(CmsWorkplaceSettings settings,
                                          javax.servlet.http.HttpServletRequest request)
Description copied from class: CmsWorkplace
Analyzes the request for workplace parameters and adjusts the workplace settings accordingly.

Overrides:
initWorkplaceRequestValues in class CmsDialog
Parameters:
settings - the workplace settings
request - the current request
See Also:
CmsWorkplace.initWorkplaceRequestValues(org.opencms.workplace.CmsWorkplaceSettings, javax.servlet.http.HttpServletRequest)

isAllowed

protected boolean isAllowed(CmsPermissionSet p,
                            int value)
Checks if a certain permission of a permission set is allowed.

Parameters:
p - the current CmsPermissionSet
value - the int value of the permission to check
Returns:
true if the permission is allowed, otherwise false

isDenied

protected boolean isDenied(CmsPermissionSet p,
                           int value)
Checks if a certain permission of a permission set is denied.

Parameters:
p - the current CmsPermissionSet
value - the int value of the permission to check
Returns:
true if the permission is denied, otherwise false

isOverWritingInherited

protected boolean isOverWritingInherited(int flags)
Check if the current permissions are overwriting the inherited ones.

Parameters:
flags - value of all flags of the current entry
Returns:
true if permissions are overwriting the inherited ones, otherwise false

isResponsible

protected boolean isResponsible(int flags)
Check if the user is a responsible for the resource.

Parameters:
flags - value of all flags of the current entry
Returns:
true if user is responsible for the resource, otherwise false

setCurPermissions

protected void setCurPermissions(CmsPermissionSet value)
Sets the current users permissions on the resource. This is set in the init() method.

Parameters:
value - the CmsPermissionSet

setEditable

protected void setEditable(boolean value)
Sets the editable flag for the forms. This is set in the init() method.

Parameters:
value - true if user can edit the permissions, otherwise false

setInheritOption

protected void setInheritOption(boolean value)
Sets if the access control entry can be inherited to subfolders and can overwrite inherited permissions.

This is set in the init() method.

Parameters:
value - set to true for folders, otherwise false

setShowInheritedPermissions

protected void setShowInheritedPermissions(boolean showInheritedPermissions)
Sets if the inherited permissions information should be displayed.

Parameters:
showInheritedPermissions - true if the inherited permissions information should be displayed, otherwise false