001/*
002 * (C) Copyright 2006-2016 Nuxeo SA (http://nuxeo.com/) and others.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 *     http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 *
016 * Contributors:
017 *     Nuxeo - initial API and implementation
018 */
019package org.nuxeo.ecm.core.api.security;
020
021import org.nuxeo.runtime.api.login.LoginComponent;
022
023/**
024 * @author Bogdan Stefanescu
025 */
026// TODO: make it a constant utility class instead of an interface.
027public interface SecurityConstants {
028
029    String SYSTEM_USERNAME = LoginComponent.SYSTEM_USERNAME;
030
031    /**
032     * @deprecated since 5.3.1 administrator user names are configurable on user manager
033     * Too many references to this constant, no clean for LTS 2017
034     */
035    @Deprecated
036    String ADMINISTRATOR = "Administrator";
037
038    /**
039     * @deprecated since 5.3.1 anonymous user name is configurable on user manager
040     * Too many references to this constant, no clean for LTS 2017
041     */
042    @Deprecated
043    String ANONYMOUS = "anonymous";
044
045    /**
046     * @deprecated since 5.3.1 administrators groups are configurable on user manager
047     * Too many references to this constant, no clean for LTS 2017
048     */
049    @Deprecated
050    String ADMINISTRATORS = "administrators";
051
052    /**
053     * @deprecated since 5.3.1 default group is configurable on user manager
054     * Too many references to this constant, no clean for LTS 2017
055     */
056    @Deprecated
057    String MEMBERS = "members";
058
059    String EVERYONE = "Everyone";
060
061    String EVERYTHING = "Everything";
062
063    String RESTRICTED_READ = "RestrictedRead";
064
065    String READ = "Read";
066
067    String WRITE = "Write";
068
069    String READ_WRITE = "ReadWrite";
070
071    String REMOVE = "Remove";
072
073    String VERSION = "Version";
074
075    String READ_VERSION = "ReadVersion";
076
077    String WRITE_VERSION = "WriteVersion";
078
079    String BROWSE = "Browse";
080
081    String WRITE_SECURITY = "WriteSecurity";
082
083    String READ_SECURITY = "ReadSecurity";
084
085    String READ_PROPERTIES = "ReadProperties";
086
087    String WRITE_PROPERTIES = "WriteProperties";
088
089    String READ_CHILDREN = "ReadChildren";
090
091    String ADD_CHILDREN = "AddChildren";
092
093    String REMOVE_CHILDREN = "RemoveChildren";
094
095    String READ_LIFE_CYCLE = "ReadLifeCycle";
096
097    String WRITE_LIFE_CYCLE = "WriteLifeCycle";
098
099    String MANAGE_WORKFLOWS = "ManageWorkflows";
100
101    String VIEW_WORKLFOW = "ReviewParticipant";
102
103    String UNLOCK = "Unlock";
104
105    /**
106     * Flag that can be used as principal to mark an unsupported ACL.
107     */
108    String UNSUPPORTED_ACL = "_UNSUPPORTED_ACL_";
109
110}