All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.mindoo.domino.jna.constants.AclFlag Maven / Gradle / Ivy

There is a newer version: 0.9.53
Show newest version
package com.mindoo.domino.jna.constants;

import java.util.EnumSet;

import com.mindoo.domino.jna.internal.NotesConstants;

/**
 * 
 * These symbols represent access level modifier flags in access control lists.
*
* Each access level taken by itself implies a certain set of immutable capabilities.
* Each access level has a different set of access modifier bits that are relevant for that level.
*
* All of the other bits that are returned in the Access Flag parameter of C API functions are * irrelevant and are unpredictable.
*

* * * * * * * * * * * * * * * * * * * * * * * * * * *
The table depicts which Access Level Modifier Flags ({@link AclFlag}) are applicable to the Access Levels ({@link AclLevel})
{@link AclLevel}{@link AclFlag} Applicable to {@link AclLevel}
{@link AclLevel#MANAGER}{@link #NODELETE}
{@link #PERSON}
{@link #GROUP}
{@link #SERVER}
{@link AclLevel#DESIGNER}{@link #NODELETE}
{@link #CREATE_LOTUSSCRIPT}
{@link #PERSON}
{@link #GROUP}
{@link #SERVER}
{@link AclLevel#EDITOR}{@link #NODELETE}
{@link #CREATE_PRAGENT}
{@link #CREATE_PRFOLDER}
{@link #CREATE_FOLDER}
{@link #CREATE_LOTUSSCRIPT}
{@link #PERSON}
{@link #GROUP}
{@link #SERVER}
{@link AclLevel#AUTHOR}{@link #AUTHOR_NOCREATE}
{@link #NODELETE}
{@link #CREATE_PRAGENT}
{@link #CREATE_PRFOLDER}
{@link #CREATE_LOTUSSCRIPT}
{@link #PUBLICWRITER}
{@link #PERSON}
{@link #GROUP}
{@link #SERVER}
{@link AclLevel#READER}{@link #CREATE_PRAGENT}
{@link #CREATE_PRFOLDER}
{@link #CREATE_LOTUSSCRIPT}
{@link #PUBLICWRITER}
{@link #PERSON}
{@link #GROUP}
{@link #SERVER}
{@link AclLevel#DEPOSITOR}{@link #PUBLICREADER}
{@link #PUBLICWRITER}
{@link #PERSON}
{@link #GROUP}
{@link #SERVER}
{@link AclLevel#NOACCESS}{@link #PUBLICREADER}
{@link #PUBLICWRITER}
{@link #PERSON}
{@link #GROUP}
{@link #SERVER}
* @author Karsten Lehmann */ public enum AclFlag { /** Authors can't create new notes (only edit existing ones) */ AUTHOR_NOCREATE(NotesConstants.ACL_FLAG_AUTHOR_NOCREATE), /** Entry represents a Server (V4) */ SERVER(NotesConstants.ACL_FLAG_SERVER), /** User cannot delete notes */ NODELETE(NotesConstants.ACL_FLAG_NODELETE), /** User can create personal agents (V4) */ CREATE_PRAGENT(NotesConstants.ACL_FLAG_CREATE_PRAGENT), /** User can create personal folders (V4) */ CREATE_PRFOLDER(NotesConstants.ACL_FLAG_CREATE_PRFOLDER), /** Entry represents a Person (V4) */ PERSON(NotesConstants.ACL_FLAG_PERSON), /** Entry represents a group (V4) */ GROUP(NotesConstants.ACL_FLAG_GROUP), /** User can create and update shared views & folders (V4)
This allows an Editor to assume some Designer-level access */ CREATE_FOLDER(NotesConstants.ACL_FLAG_CREATE_FOLDER), /** User can create LotusScript */ CREATE_LOTUSSCRIPT(NotesConstants.ACL_FLAG_CREATE_LOTUSSCRIPT), /** User can read public notes */ PUBLICREADER(NotesConstants.ACL_FLAG_PUBLICREADER), /** User can write public notes */ PUBLICWRITER(NotesConstants.ACL_FLAG_PUBLICWRITER), /** User CANNOT register monitors for this database */ MONITORS_DISALLOWED(NotesConstants.ACL_FLAG_MONITORS_DISALLOWED), /** User cannot replicate or copy this database */ NOREPLICATE(NotesConstants.ACL_FLAG_NOREPLICATE), /** Admin server can modify reader and author fields in db */ ADMIN_READERAUTHOR(NotesConstants.ACL_FLAG_ADMIN_READERAUTHOR), /** Entry is administration server (V4) */ ADMIN_SERVER(NotesConstants.ACL_FLAG_ADMIN_SERVER); private int m_val; AclFlag(int val) { m_val = val; } public int getValue() { return m_val; } public static short toBitMask(EnumSet findSet) { int result = 0; if (findSet!=null) { for (AclFlag currFind : values()) { if (findSet.contains(currFind)) { result = result | currFind.getValue(); } } } return (short) (result & 0xffff); } public static int toBitMaskInt(EnumSet findSet) { int result = 0; if (findSet!=null) { for (AclFlag currFind : values()) { if (findSet.contains(currFind)) { result = result | currFind.getValue(); } } } return result; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy