1 /*
2 * (C) Copyright 1989-2011 Trend Micro, Inc.
3 * All Rights Reserved.
4 *
5 * This program is an unpublished copyrighted work which is proprietary
6 * to Trend Micro, Inc. and contains confidential information that is not
7 * to be reproduced or disclosed to any other person or entity without
8 * prior written consent from Trend Micro, Inc. in each and every instance.
9 *
10 * WARNING: Unauthorized reproduction of this program as well as
11 * unauthorized preparation of derivative works based upon the
12 * program or distribution of copies by sale, rental, lease or
13 * lending are violations of federal copyright laws and state trade
14 * secret laws, punishable by civil and criminal penalties.
15 */
16
17 package com.trendmicro.grid.acl.l0;
18
19 /**
20 * Enumerates all known role names.
21 *
22 * @author Juergen_Kellerer, 2011-04-14
23 * @version 1.0
24 */
25 public class KnownRoles {
26 /**
27 * Controls the general access to any details (= all data types containing metadata)
28 */
29 public static final String ROLE_ACCESS_DETAILS = "access.details";
30
31 /**
32 * Controls the general access to the protected services (aka. "/internal/")
33 */
34 public static final String ROLE_ACCESS_PROTECTED_SERVICES = "access.protected.services";
35
36 /**
37 * Controls whether, hash based queries can be executed.
38 */
39 public static final String ROLE_RUN_HASH_QUERIES = "run.hash.queries";
40
41 /**
42 * Controls whether tag matching queries can be executed.
43 * <br/>
44 * <b>Notes:</b><ul>
45 * <li>Methods that match tags by hashes like
46 * {@link FileService#isFilesTaggedWithAll(BatchCollection, String[]) isFilesTaggedWithAll(..)} do not fall under this role as the
47 * primary query key is hash not tag in such queries.</li>
48 * <li>Methods that require this role are in general more expensive to execute than hash based methods.
49 * This expensiveness originates in the higher cardinality of tag matching indexes.</li>
50 * </ul>
51 */
52 public static final String ROLE_RUN_TAG_MATCHING_QUERIES = "run.tag.matching.queries";
53
54 /**
55 * Controls whether file packages can be queried.
56 */
57 public static final String ROLE_RUN_PACKAGE_QUERIES = "run.package.queries";
58
59 /**
60 * Controls whether categorization queries can be executed.
61 */
62 public static final String ROLE_RUN_CATEGORIZATION_QUERIES = "run.categorization.queries";
63
64 /**
65 * Controls whether complex queries can be executed.
66 * <p/>
67 * Any query that allows retrieving relationships or does not fall under one of the other categories is considered a complex query.
68 * From a performance standpoint, complex queries are typically less expensive than tag matching queries except if the
69 * relationships are huge and require fetching many pages.
70 */
71 public static final String ROLE_RUN_COMPLEX_QUERIES = "run.complex.queries";
72
73 /**
74 * Controls whether a previously processed file can be downloaded.
75 */
76 public static final String ROLE_ACCESS_BINARY_CONTENT = "access.binary.content";
77
78 /**
79 * Controls whether a file can be sent (created) for processing.
80 */
81 public static final String ROLE_CREATE_BINARY_CONTENT = "create.binary.content";
82
83 /**
84 * Controls whether new or existing content can be processed or reprocessed.
85 *
86 * Note: Users that were granted this role but not "create.binary.content" can trigger reprocessing on previously
87 * stored content but cannot add new content.
88 */
89 public static final String ROLE_PROCESS_CONTENT = "process.content";
90
91 /**
92 * Controls whether management tasks like clearing caches can be executed.
93 *
94 * @since 1.2.2
95 */
96 public static final String ROLE_MANAGE = "manage";
97
98 /**
99 * Controls whether the user audit log can be accessed.
100 *
101 * @since 1.3
102 */
103 public static final String ROLE_ACCESS_AUDIT_LOG = "access.audit.log";
104
105 private KnownRoles() {
106 }
107 }