NIMSDK-AOS 10.4.0-beta
载入中...
搜索中...
未找到
QChatRoleResource.java
浏览该文件的文档.
1package com.netease.nimlib.sdk.qchat.enums;
2
3import androidx.annotation.NonNull;
4import com.netease.nimlib.util.StringUtil;
5import java.io.Serializable;
6import java.util.LinkedHashMap;
7import java.util.Map;
8import java.util.Objects;
9
10/**
11 * 身份组权限资源项
12 */
13public class QChatRoleResource implements Serializable, Comparable<QChatRoleResource> {
14 /**
15 * 管理服务器:修改服务器,仅server有
16 * */
17 public static final QChatRoleResource MANAGE_SERVER = new QChatRoleResource(1,1, "MANAGE_SERVER", 0);
18 /**
19 * 管理频道,server和channel都有
20 * */
21 public static final QChatRoleResource MANAGE_CHANNEL = new QChatRoleResource(2,0, "MANAGE_CHANNEL", 1);
22 /**
23 * 管理身份组的权限,server和channel都有
24 * */
25 public static final QChatRoleResource MANAGE_ROLE = new QChatRoleResource(3,0, "MANAGE_ROLE", 2);
26 /**
27 * 发送消息,server和channel都有
28 * */
29 public static final QChatRoleResource SEND_MSG = new QChatRoleResource(4,0, "SEND_MSG", 3);
30 /**
31 * 修改自己在该server的服务器成员信息,仅server有
32 * */
33 public static final QChatRoleResource ACCOUNT_INFO_SELF = new QChatRoleResource(5,1, "ACCOUNT_INFO_SELF", 4);
34 /**
35 * 邀请他人进入server的,仅server有
36 * */
37 public static final QChatRoleResource INVITE_SERVER = new QChatRoleResource(6,1, "INVITE_SERVER", 5);
38 /**
39 * 踢除他人的权限,仅server有
40 * */
41 public static final QChatRoleResource KICK_SERVER = new QChatRoleResource(7,1, "KICK_SERVER", 6);
42 /**
43 * 修改他人在该server的服务器成员信息,仅server有
44 * */
45 public static final QChatRoleResource ACCOUNT_INFO_OTHER = new QChatRoleResource(8,1, "ACCOUNT_INFO_OTHER", 7);
46 /**
47 * 撤回他人消息的权限,server和channel都有
48 * */
49 public static final QChatRoleResource RECALL_MSG = new QChatRoleResource(9,0, "RECALL_MSG", 8);
50 /**
51 * 删除他人消息的权限,server和channel都有
52 * */
53 public static final QChatRoleResource DELETE_MSG = new QChatRoleResource(10,0, "DELETE_MSG", 9);
54 /**
55 * @ 他人的权限,server和channel都有
56 * */
57 public static final QChatRoleResource REMIND_OTHER = new QChatRoleResource(11,0, "REMIND_OTHER", 10);
58 /**
59 * @ everyone,server和channel都有
60 * */
61 public static final QChatRoleResource REMIND_EVERYONE = new QChatRoleResource(12,0, "REMIND_EVERYONE", 11);
62 /**
63 * 管理黑白名单的权限,server和channel都有
64 * */
65 public static final QChatRoleResource MANAGE_BLACK_WHITE_LIST = new QChatRoleResource(13,0, "MANAGE_BLACK_WHITE_LIST", 12);
66 /**
67 * 封禁他人的权限,仅server有,允许成员永久封禁其他成员访问此服务器
68 * */
69 public static final QChatRoleResource BAN_SERVER_MEMBER = new QChatRoleResource(14,1, "BAN_SERVER_MEMBER", 13);
70 /**
71 * RTC频道:连接的权限
72 * */
73 public static final QChatRoleResource RTC_CHANNEL_CONNECT = new QChatRoleResource(15, 0, "RTC_CHANNEL_CONNECT", 14);
74 /**
75 * RTC频道:断开他人连接的权限
76 * */
77 public static final QChatRoleResource RTC_CHANNEL_DISCONNECT_OTHER = new QChatRoleResource(16, 0, "RTC_CHANNEL_DISCONNECT_OTHER", 15);
78 /**
79 * RTC频道:开启麦克风的权限
80 * */
81 public static final QChatRoleResource RTC_CHANNEL_OPEN_MICROPHONE = new QChatRoleResource(17, 0, "RTC_CHANNEL_OPEN_MICROPHONE", 16);
82 /**
83 * RTC频道:开启摄像头的权限
84 * */
85 public static final QChatRoleResource RTC_CHANNEL_OPEN_CAMERA = new QChatRoleResource(18, 0, "RTC_CHANNEL_OPEN_CAMERA", 17);
86 /**
87 * RTC频道:开启/关闭他人麦克风的权限
88 * */
89 public static final QChatRoleResource RTC_CHANNEL_OPEN_CLOSE_OTHER_MICROPHONE = new QChatRoleResource(19, 0, "RTC_CHANNEL_OPEN_CLOSE_OTHER_MICROPHONE", 18);
90 /**
91 * RTC频道:开启/关闭他人摄像头的权限
92 * */
93 public static final QChatRoleResource RTC_CHANNEL_OPEN_CLOSE_OTHER_CAMERA = new QChatRoleResource(20, 0, "RTC_CHANNEL_OPEN_CLOSE_OTHER_CAMERA", 19);
94 /**
95 * RTC频道:开启/关闭全员麦克风的权限
96 * */
97 public static final QChatRoleResource RTC_CHANNEL_OPEN_CLOSE_EVERYONE_MICROPHONE = new QChatRoleResource(21, 0, "RTC_CHANNEL_OPEN_CLOSE_EVERYONE_MICROPHONE", 20);
98 /**
99 * RTC频道:开启/关闭全员摄像头的权限
100 * */
101 public static final QChatRoleResource RTC_CHANNEL_OPEN_CLOSE_EVERYONE_CAMERA = new QChatRoleResource(22, 0, "RTC_CHANNEL_OPEN_CLOSE_EVERYONE_CAMERA", 21);
102 /**
103 * RTC频道:打开自己屏幕共享的权限
104 */
105 public static final QChatRoleResource RTC_CHANNEL_OPEN_SCREEN_SHARE = new QChatRoleResource(23, 0, "RTC_CHANNEL_OPEN_SCREEN_SHARE", 22);
106 /**
107 * RTC频道:关闭他人屏幕共享的权限
108 */
109 public static final QChatRoleResource RTC_CHANNEL_CLOSE_OTHER_SCREEN_SHARE = new QChatRoleResource(24, 0, "RTC_CHANNEL_CLOSE_OTHER_SCREEN_SHARE", 23);
110 /**
111 * 服务器申请处理权限
112 */
113 public static final QChatRoleResource SERVER_APPLY_HANDLE = new QChatRoleResource(25, 1, "SERVER_APPLY_HANDLE", 24);
114 /**
115 * 申请邀请历史查看权限,有这个权限才可以查询server级别的申请/邀请记录
116 */
117 public static final QChatRoleResource INVITE_APPLY_HISTORY_QUERY = new QChatRoleResource(26, 1, "INVITE_APPLY_HISTORY_QUERY", 25);
118
119 /**
120 * \@身份组的权限,server和channel都有
121 */
122 public static final QChatRoleResource MENTIONED_ROLE = new QChatRoleResource(27, 0, "MENTIONED_ROLE", 26);
123
124 /** 添加新的枚举项需要同步更新{@link ROLE_MAP} */
125 ;
126
127 private final int resource;
128 /**
129 * 0是所有
130 * 1是server
131 * 2是channel
132 * */
133 private final int type;
134
135 /**
136 * 模拟枚举类型的变量名
137 * @see Enum#name()
138 */
139 public final String name;
140 /**
141 * 模拟枚举类型的序号
142 * @see Enum#ordinal()
143 */
144 public final int ordinal;
145 @SuppressWarnings("java:S3599")
146 private static final Map<String, QChatRoleResource> ROLE_MAP = new LinkedHashMap<String, QChatRoleResource>() {
147 {
148 put("MANAGE_SERVER", MANAGE_SERVER);
149 put("MANAGE_CHANNEL", MANAGE_CHANNEL);
150 put("MANAGE_ROLE", MANAGE_ROLE);
151 put("SEND_MSG", SEND_MSG);
152 put("ACCOUNT_INFO_SELF", ACCOUNT_INFO_SELF);
153 put("INVITE_SERVER", INVITE_SERVER);
154 put("KICK_SERVER", KICK_SERVER);
155 put("ACCOUNT_INFO_OTHER", ACCOUNT_INFO_OTHER);
156 put("RECALL_MSG", RECALL_MSG);
157 put("DELETE_MSG", DELETE_MSG);
158 put("REMIND_OTHER", REMIND_OTHER);
159 put("REMIND_EVERYONE", REMIND_EVERYONE);
160 put("MANAGE_BLACK_WHITE_LIST", MANAGE_BLACK_WHITE_LIST);
161 put("BAN_SERVER_MEMBER", BAN_SERVER_MEMBER);
162 put("RTC_CHANNEL_CONNECT", RTC_CHANNEL_CONNECT);
163 put("RTC_CHANNEL_DISCONNECT_OTHER", RTC_CHANNEL_DISCONNECT_OTHER);
164 put("RTC_CHANNEL_OPEN_MICROPHONE", RTC_CHANNEL_OPEN_MICROPHONE);
165 put("RTC_CHANNEL_OPEN_CAMERA", RTC_CHANNEL_OPEN_CAMERA);
166 put("RTC_CHANNEL_OPEN_CLOSE_OTHER_MICROPHONE", RTC_CHANNEL_OPEN_CLOSE_OTHER_MICROPHONE);
167 put("RTC_CHANNEL_OPEN_CLOSE_OTHER_CAMERA", RTC_CHANNEL_OPEN_CLOSE_OTHER_CAMERA);
168 put("RTC_CHANNEL_OPEN_CLOSE_EVERYONE_MICROPHONE", RTC_CHANNEL_OPEN_CLOSE_EVERYONE_MICROPHONE);
169 put("RTC_CHANNEL_OPEN_CLOSE_EVERYONE_CAMERA", RTC_CHANNEL_OPEN_CLOSE_EVERYONE_CAMERA);
170 put("RTC_CHANNEL_OPEN_SCREEN_SHARE", RTC_CHANNEL_OPEN_SCREEN_SHARE);
171 put("RTC_CHANNEL_CLOSE_OTHER_SCREEN_SHARE", RTC_CHANNEL_CLOSE_OTHER_SCREEN_SHARE);
172 put("SERVER_APPLY_HANDLE", SERVER_APPLY_HANDLE);
173 put("INVITE_APPLY_HISTORY_QUERY", INVITE_APPLY_HISTORY_QUERY);
174 put("MENTIONED_ROLE", MENTIONED_ROLE);
175 }
176 };
177
178
179 public QChatRoleResource(int resource, int type) {
180 this(resource, type, "", -1);
181 }
182
183 private QChatRoleResource(int resource, int type, @NonNull String name, int ordinal) {
184 this.resource = resource;
185 this.type = type;
186 this.name = name;
187 this.ordinal = ordinal;
188 }
189
190 public int value() {
191 return resource;
192 }
193
194 /**
195 * 是否是仅Server才拥有的权限
196 * @return
197 */
198 public boolean isOnlyServerPermission()
199 {
200 return type == 1;
201 }
202
203 /**
204 * 是否是仅Channel才拥有的权限
205 * @return
206 */
207 public boolean isOnlyChannelPermission()
208 {
209 return type == 2;
210 }
211
212 /**
213 * 是否是Server和Channel都拥有的权限
214 * @return
215 */
216 public boolean isAllPermission()
217 {
218 return type == 0;
219 }
220
221 /**
222 * @see Enum#name()
223 * @return
224 */
225 @NonNull
226 public String name() {
227 return name;
228 }
229
230 /**
231 * @see Enum#ordinal()
232 * @return
233 */
234 public int ordinal() {
235 return ordinal;
236 }
237
238 /**
239 * 模拟枚举类型的对比方法
240 * @see Enum#compareTo(Enum)
241 * @param o 对比项
242 * @return 对比结果
243 */
244 @Override
246 return this.ordinal - o.ordinal;
247 }
248
249 /**
250 * 模拟枚举类型的对应方法
251 * @see Enum#getDeclaringClass()
252 * @return 类
253 */
254 public final Class<QChatRoleResource> getDeclaringClass() {
255 return QChatRoleResource.class;
256 }
257
258 @Override
259 @NonNull
260 public String toString() {
261 return StringUtil.isEmpty(name) ? String.valueOf(resource) : name;
262 }
263
264 @Override
265 public boolean equals(Object o) {
266 if (this == o) {
267 return true;
268 }
269 if (o == null || getClass() != o.getClass()) {
270 return false;
271 }
272 QChatRoleResource resource1 = (QChatRoleResource) o;
273 return resource == resource1.resource && type == resource1.type;
274 }
275
276 @Override
277 public int hashCode() {
278 return Objects.hash(resource, type);
279 }
280
281 public static QChatRoleResource getByValue(int value) {
282 for (QChatRoleResource pt : ROLE_MAP.values()) {
283 if (value == pt.value()) {
284 return pt;
285 }
286 }
287 return new QChatRoleResource(value, 0);
288 }
289
290 public static QChatRoleResource getByName(String name) {
291 return ROLE_MAP.get(name);
292 }
293
294 public static QChatRoleResource[] values() {
295 QChatRoleResource[] result = new QChatRoleResource[ROLE_MAP.size()];
296 int index = 0;
297 for (QChatRoleResource pt : ROLE_MAP.values()) {
298 result[index++] = pt;
299 }
300 return result;
301 }
302
303 public static QChatRoleResource valueOf(String name) {
304 return getByName(name);
305 }
306}
static final QChatRoleResource MANAGE_BLACK_WHITE_LIST
管理黑白名单的权限,server和channel都有
static final QChatRoleResource SERVER_APPLY_HANDLE
服务器申请处理权限
boolean isOnlyServerPermission()
是否是仅Server才拥有的权限
static final QChatRoleResource RTC_CHANNEL_OPEN_SCREEN_SHARE
RTC频道:打开自己屏幕共享的权限
final Class< QChatRoleResource > getDeclaringClass()
模拟枚举类型的对应方法
static final QChatRoleResource REMIND_EVERYONE
@ everyone,server和channel都有
static final QChatRoleResource KICK_SERVER
踢除他人的权限,仅server有
boolean isAllPermission()
是否是Server和Channel都拥有的权限
static final QChatRoleResource MANAGE_CHANNEL
管理频道,server和channel都有
static QChatRoleResource getByName(String name)
static final QChatRoleResource ACCOUNT_INFO_SELF
修改自己在该server的服务器成员信息,仅server有
static final QChatRoleResource RTC_CHANNEL_OPEN_MICROPHONE
RTC频道:开启麦克风的权限
static final QChatRoleResource SEND_MSG
发送消息,server和channel都有
static final QChatRoleResource REMIND_OTHER
@ 他人的权限,server和channel都有
static final QChatRoleResource DELETE_MSG
删除他人消息的权限,server和channel都有
final String name
模拟枚举类型的变量名
static final QChatRoleResource RTC_CHANNEL_CONNECT
RTC频道:连接的权限
static final QChatRoleResource ACCOUNT_INFO_OTHER
修改他人在该server的服务器成员信息,仅server有
static final QChatRoleResource INVITE_SERVER
邀请他人进入server的,仅server有
static final QChatRoleResource RTC_CHANNEL_OPEN_CLOSE_EVERYONE_MICROPHONE
RTC频道:开启/关闭全员麦克风的权限
static final QChatRoleResource RTC_CHANNEL_OPEN_CLOSE_OTHER_MICROPHONE
RTC频道:开启/关闭他人麦克风的权限
int compareTo(QChatRoleResource o)
模拟枚举类型的对比方法
static final QChatRoleResource RTC_CHANNEL_OPEN_CLOSE_OTHER_CAMERA
RTC频道:开启/关闭他人摄像头的权限
static final QChatRoleResource RTC_CHANNEL_CLOSE_OTHER_SCREEN_SHARE
RTC频道:关闭他人屏幕共享的权限
static final QChatRoleResource BAN_SERVER_MEMBER
封禁他人的权限,仅server有,允许成员永久封禁其他成员访问此服务器
static final QChatRoleResource RTC_CHANNEL_OPEN_CAMERA
RTC频道:开启摄像头的权限
static final QChatRoleResource MANAGE_ROLE
管理身份组的权限,server和channel都有
static final QChatRoleResource RTC_CHANNEL_OPEN_CLOSE_EVERYONE_CAMERA
RTC频道:开启/关闭全员摄像头的权限
static final QChatRoleResource RECALL_MSG
撤回他人消息的权限,server和channel都有
static final QChatRoleResource RTC_CHANNEL_DISCONNECT_OTHER
RTC频道:断开他人连接的权限
boolean isOnlyChannelPermission()
是否是仅Channel才拥有的权限
static final QChatRoleResource MENTIONED_ROLE
@身份组的权限,server和channel都有
static final QChatRoleResource MANAGE_SERVER
管理服务器:修改服务器,仅server有
static final QChatRoleResource INVITE_APPLY_HISTORY_QUERY
申请邀请历史查看权限,有这个权限才可以查询server级别的申请/邀请记录