aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/llcommon/roles_constants.h
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/llcommon/roles_constants.h')
-rw-r--r--linden/indra/llcommon/roles_constants.h187
1 files changed, 187 insertions, 0 deletions
diff --git a/linden/indra/llcommon/roles_constants.h b/linden/indra/llcommon/roles_constants.h
new file mode 100644
index 0000000..c30048c
--- /dev/null
+++ b/linden/indra/llcommon/roles_constants.h
@@ -0,0 +1,187 @@
1/**
2 * @file roles_constants.h
3 * @brief General Roles Constants
4 *
5 * Copyright (c) 2006-2007, Linden Research, Inc.
6 *
7 * The source code in this file ("Source Code") is provided by Linden Lab
8 * to you under the terms of the GNU General Public License, version 2.0
9 * ("GPL"), unless you have obtained a separate licensing agreement
10 * ("Other License"), formally executed by you and Linden Lab. Terms of
11 * the GPL can be found in doc/GPL-license.txt in this distribution, or
12 * online at http://secondlife.com/developers/opensource/gplv2
13 *
14 * There are special exceptions to the terms and conditions of the GPL as
15 * it is applied to this Source Code. View the full text of the exception
16 * in the file doc/FLOSS-exception.txt in this software distribution, or
17 * online at http://secondlife.com/developers/opensource/flossexception
18 *
19 * By copying, modifying or distributing this software, you acknowledge
20 * that you have read and understood your obligations described above,
21 * and agree to abide by those obligations.
22 *
23 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
24 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
25 * COMPLETENESS OR PERFORMANCE.
26 */
27
28#ifndef LL_ROLES_CONSTANTS_H
29#define LL_ROLES_CONSTANTS_H
30
31// This value includes the everyone group.
32const S32 MAX_ROLES = 10;
33
34enum LLRoleMemberChangeType
35{
36 RMC_ADD,
37 RMC_REMOVE,
38 RMC_NONE
39};
40
41enum LLRoleChangeType
42{
43 RC_UPDATE_NONE,
44 RC_UPDATE_DATA,
45 RC_UPDATE_POWERS,
46 RC_UPDATE_ALL,
47 RC_CREATE,
48 RC_DELETE
49};
50
51//
52// Powers
53//
54
55// KNOWN HOLES:
56// bit 0x1 << 37 (GP_OBJECT_RETURN)
57
58// These powers were removed to make group roles simpler
59// bit 0x1 << 27 (GP_LAND_ALLOW_SCRIPTS)
60// bit 0x1 << 16 (GP_LAND_VIEW_OWNED)
61// bit 0x1 << 41 (GP_ACCOUNTING_VIEW)
62// bit 0x1 << 46 (GP_PROPOSAL_VIEW)
63
64const U64 GP_NO_POWERS = 0x0;
65const U64 GP_ALL_POWERS = 0xFFFFFFFFFFFFFFFFLL;
66
67// Membership
68const U64 GP_MEMBER_INVITE = 0x1 << 1; // Invite member
69const U64 GP_MEMBER_EJECT = 0x1 << 2; // Eject member from group
70const U64 GP_MEMBER_OPTIONS = 0x1 << 3; // Toggle "Open enrollment" and change "Signup Fee"
71const U64 GP_MEMBER_VISIBLE_IN_DIR = 0x1LL << 47;
72
73// Roles
74const U64 GP_ROLE_CREATE = 0x1 << 4; // Create new roles
75const U64 GP_ROLE_DELETE = 0x1 << 5; // Delete roles
76const U64 GP_ROLE_PROPERTIES = 0x1 << 6; // Change Role Names, Titles, and Descriptions (Of roles the user is in, only, or any role in group?)
77const U64 GP_ROLE_ASSIGN_MEMBER_LIMITED = 0x1 << 7; // Assign Member to a Role that the assigner is in
78const U64 GP_ROLE_ASSIGN_MEMBER = 0x1 << 8; // Assign Member to Role
79const U64 GP_ROLE_REMOVE_MEMBER = 0x1 << 9; // Remove Member from Role
80const U64 GP_ROLE_CHANGE_ACTIONS = 0x1 << 10; // Change actions a role can perform
81
82// Group Identity
83const U64 GP_GROUP_CHANGE_IDENTITY = 0x1 << 11; // Charter, insignia, 'Show In Group List', 'Publish on the web', 'Mature', all 'Show Member In Group Profile' checkboxes
84
85// Parcel Management
86const U64 GP_LAND_DEED = 0x1 << 12; // Deed Land and Buy Land for Group
87const U64 GP_LAND_RELEASE = 0x1 << 13; // Release Land (to Gov. Linden)
88const U64 GP_LAND_SET_SALE_INFO = 0x1 << 14; // Set for sale info (Toggle "For Sale", Set Price, Set Target, Toggle "Sell objects with the land")
89const U64 GP_LAND_DIVIDE_JOIN = 0x1 << 15; // Divide and Join Parcels
90
91// Parcel Identity
92const U64 GP_LAND_FIND_PLACES = 0x1 << 17; // Toggle "Show in Find Places" and Set Category.
93const U64 GP_LAND_CHANGE_IDENTITY = 0x1 << 18; // Change Parcel Identity: Parcel Name, Parcel Description, Snapshot, 'Publish on the web', and 'Mature' checkbox
94const U64 GP_LAND_SET_LANDING_POINT = 0x1 << 19; // Set Landing Point
95
96// Parcel Settings
97const U64 GP_LAND_CHANGE_MEDIA = 0x1 << 20; // Change Media Settings
98const U64 GP_LAND_EDIT = 0x1 << 21; // Toggle Edit Land
99const U64 GP_LAND_OPTIONS = 0x1 << 22; // Toggle Set Home Point, Fly, Outside Scripts, Create/Edit Objects, Landmark, and Damage checkboxes
100
101// Parcel Powers
102const U64 GP_LAND_ALLOW_EDIT_LAND = 0x1 << 23; // Bypass Edit Land Restriction
103const U64 GP_LAND_ALLOW_FLY = 0x1 << 24; // Bypass Fly Restriction
104const U64 GP_LAND_ALLOW_CREATE = 0x1 << 25; // Bypass Create/Edit Objects Restriction
105const U64 GP_LAND_ALLOW_LANDMARK = 0x1 << 26; // Bypass Landmark Restriction
106const U64 GP_LAND_ALLOW_SET_HOME = 0x1 << 28; // Bypass Set Home Point Restriction
107
108// Parcel Access
109const U64 GP_LAND_MANAGE_ALLOWED = 0x1 << 29; // Manage Allowed List
110const U64 GP_LAND_MANAGE_BANNED = 0x1 << 30; // Manage Banned List
111const U64 GP_LAND_MANAGE_PASSES = 0x1LL << 31; // Change Sell Pass Settings
112const U64 GP_LAND_ADMIN = 0x1LL << 32; // Eject and Freeze Users on the land
113
114// Parcel Content
115const U64 GP_LAND_RETURN_GROUP_OWNED= 0x1LL << 48; // Return objects on parcel that are owned by the group
116const U64 GP_LAND_RETURN_GROUP_SET = 0x1LL << 33; // Return objects on parcel that are set to group
117const U64 GP_LAND_RETURN_NON_GROUP = 0x1LL << 34; // Return objects on parcel that are not set to group
118// Select a power-bit based on an object's relationship to a parcel.
119const U64 GP_LAND_RETURN = GP_LAND_RETURN_GROUP_OWNED
120 | GP_LAND_RETURN_GROUP_SET
121 | GP_LAND_RETURN_NON_GROUP;
122const U64 GP_LAND_GARDENING = 0x1LL << 35; // Parcel Gardening - plant and move linden trees
123
124// Object Management
125const U64 GP_OBJECT_DEED = 0x1LL << 36; // Deed Object
126// HOLE -- 0x1LL << 37
127const U64 GP_OBJECT_MANIPULATE = 0x1LL << 38; // Manipulate Group Owned Objects (Move, Copy, Mod)
128const U64 GP_OBJECT_SET_SALE = 0x1LL << 39; // Set Group Owned Object for Sale
129
130// Accounting
131const U64 GP_ACCOUNTING_ACCOUNTABLE = 0x1LL << 40; // Pay Group Liabilities and Receive Group Dividends
132
133// Notices
134const U64 GP_NOTICES_SEND = 0x1LL << 42; // Send Notices
135const U64 GP_NOTICES_RECEIVE = 0x1LL << 43; // Receive Notices and View Notice History
136
137// Proposals
138const U64 GP_PROPOSAL_START = 0x1LL << 44; // Start Proposal
139const U64 GP_PROPOSAL_VOTE = 0x1LL << 45; // Vote on Proposal
140
141const U64 GP_DEFAULT_MEMBER = GP_ACCOUNTING_ACCOUNTABLE
142 | GP_LAND_ALLOW_SET_HOME
143 | GP_NOTICES_RECEIVE
144 | GP_PROPOSAL_START
145 | GP_PROPOSAL_VOTE
146 ;
147
148const U64 GP_DEFAULT_OFFICER = GP_ACCOUNTING_ACCOUNTABLE
149 | GP_GROUP_CHANGE_IDENTITY
150 | GP_LAND_ADMIN
151 | GP_LAND_ALLOW_EDIT_LAND
152 | GP_LAND_ALLOW_FLY
153 | GP_LAND_ALLOW_CREATE
154 | GP_LAND_ALLOW_LANDMARK
155 | GP_LAND_ALLOW_SET_HOME
156 | GP_LAND_CHANGE_IDENTITY
157 | GP_LAND_CHANGE_MEDIA
158 | GP_LAND_DEED
159 | GP_LAND_DIVIDE_JOIN
160 | GP_LAND_EDIT
161 | GP_LAND_FIND_PLACES
162 | GP_LAND_GARDENING
163 | GP_LAND_MANAGE_ALLOWED
164 | GP_LAND_MANAGE_BANNED
165 | GP_LAND_MANAGE_PASSES
166 | GP_LAND_OPTIONS
167 | GP_LAND_RELEASE
168 | GP_LAND_RETURN_GROUP_OWNED
169 | GP_LAND_RETURN_GROUP_SET
170 | GP_LAND_RETURN_NON_GROUP
171 | GP_LAND_SET_LANDING_POINT
172 | GP_LAND_SET_SALE_INFO
173 | GP_MEMBER_EJECT
174 | GP_MEMBER_INVITE
175 | GP_MEMBER_OPTIONS
176 | GP_MEMBER_VISIBLE_IN_DIR
177 | GP_NOTICES_RECEIVE
178 | GP_NOTICES_SEND
179 | GP_OBJECT_DEED
180 | GP_OBJECT_MANIPULATE
181 | GP_OBJECT_SET_SALE
182 | GP_PROPOSAL_START
183 | GP_PROPOSAL_VOTE
184 | GP_ROLE_ASSIGN_MEMBER_LIMITED
185 | GP_ROLE_PROPERTIES
186 ;
187#endif