说明:
DataTable 为一个结果集,表数据的意思。
BaseUserInfo 为当前操作员信息的类,当前用户的意思。
Java 接口可能第一个字母习惯于小写。
![](https://i-blog.csdnimg.cn/blog_migrate/0be121fa5b8988fbabbbc526af3b0fc0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/34031c708bfe702fe82d01ff5c6593aa.gif)
1 //------------------------------------------------------------
2 // All Rights Reserved , Copyright (C) 2008 , Jirisoft , Ltd.
3 //------------------------------------------------------------
4
5 using System;
6 using System.Data;
7
8 namespace DotNet.Common.IService
9 {
10 using DotNet.Common.Model;
11 using DotNet.Common.Utilities;
12
13 /// <summary>
14 /// IPermissionService
15 /// 与权限判断等相关的接口定义
16 ///
17 /// 修改纪录
18 ///
19 /// 2008.11.28 版本:1.6 JiRiGaLa 整理为52个标准接口定义,完善 GetLicensePermissionByUser 接口定义。
20 /// 2008.11.27 版本:1.5 JiRiGaLa 整理为50个标准接口定义,有些permissionCode修改为permissionID。
21 /// 2008.11.27 版本:1.5 JiRiGaLa 接口改进为B/S系统适合的接口定义 整理为45个标准接口定义。
22 /// 2008.11.26 版本:1.4 JiRiGaLa 将权限相关的类方法集中到 IPermissionService 接口中。
23 /// 2008.09.02 版本:1.3 JiRiGaLa 将命名修改为 IPermissionService 。
24 /// 2008.06.12 版本:1.2 JiRiGaLa 传递类对象。
25 /// 2008.05.09 版本:1.1 JiRiGaLa 命名修改为 IPermissionService。
26 /// 2008.03.23 版本:1.0 JiRiGaLa 添加权限。
27 ///
28 /// 版本:1.4
29 ///
30 /// <author>
31 /// <name>JiRiGaLa</name>
32 /// <date>2008.11.26</date>
33 /// </author>
34 /// </summary>
35 public interface IPermissionService
36 {
37 /// <summary>
38 /// 加载服务层
39 /// </summary>
40 void Load();
41
42
43 //
44 /// 用户权限判断相关(需要实现对外调用)
45 //
46
47
48 /// <summary>
49 /// 01.当前用户是否有相应的权限
50 /// </summary>
51 /// <param name="userInfo">用户</param>
52 /// <param name="permissionCode">权限编号</param>
53 /// <returns>是否有权限</returns>
54 bool Authorization(BaseUserInfo userInfo, String permissionCode);
55
56 /// <summary>
57 /// 02.某个用户是否有相应的权限
58 /// </summary>
59 /// <param name="userInfo">用户</param>
60 /// <param name="userID">用户代码</param>
61 /// <param name="permissionCode">权限编号</param>
62 /// <returns>是否有权限</returns>
63 bool AuthorizationByUser(BaseUserInfo userInfo, String userID, String permissionCode);
64
65 /// <summary>
66 /// 03.当前用户是否超级管理员
67 /// </summary>
68 /// <param name="userInfo"></param>
69 /// <returns></returns>
70 bool IsAdministrator(BaseUserInfo userInfo);
71
72 /// <summary>
73 /// 04.某个用户是否超级管理员
74 /// </summary>
75 /// <param name="userInfo"></param>
76 /// <param name="userID"></param>
77 /// <returns></returns>
78 bool IsAdministratorByUser(BaseUserInfo userInfo, String userID);
79
80 /// <summary>
81 /// 05.获得当前用户的所有权限列表
82 /// </summary>
83 /// <param name="userInfo">用户</param>
84 /// <returns>数据表</returns>
85 DataTable GetPermissionList(BaseUserInfo userInfo);
86
87 /// <summary>
88 /// 06.获得某个用户的所有权限列表
89 /// </summary>
90 /// <param name="userInfo">用户</param>
91 /// <param name="userID">用户代码</param>
92 /// <returns>数据表</returns>
93 DataTable GetPermissionListByUser(BaseUserInfo userInfo, String userID);
94
95 /// <summary>
96 /// 07.当前用户是否对某个模块有相应的权限
97 /// </summary>
98 /// <param name="userInfo">用户</param>
99 /// <param name="moduleCode">模块编号</param>
100 /// <returns>是否有权限</returns>
101 bool ModuleAuthorization(BaseUserInfo userInfo, String moduleCode);
102
103 /// <summary>
104 /// 08.某个用户是否对某个模块有相应的权限
105 /// </summary>
106 /// <param name="userInfo">用户</param>
107 /// <param name="userID">用户代码</param>
108 /// <param name="moduleCode">模块编号</param>
109 /// <returns>是否有权限</returns>
110 bool ModuleAuthorizationByUser(BaseUserInfo userInfo, String userID, String moduleCode);
111
112
113 //
114 /// 用户权限范围判断相关(需要实现对外调用)
115 //
116
117 /// <summary>
118 /// 09.按某个权限域获取组织列表
119 /// </summary>
120 /// <param name="userInfo">用户</param>
121 /// <param name="userID">用户代码</param>
122 /// <param name="permissionScopeCode">权限域编号</param>
123 /// <returns>数据表</returns>
124 DataTable GetOrganizeListByPermission(BaseUserInfo userInfo, String userID, String permissionScopeCode);
125
126 /// <summary>
127 /// 10.按某个权限域获取角色列表
128 /// </summary>
129 /// <param name="userInfo">用户</param>
130 /// <param name="userID">用户代码</param>
131 /// <param name="permissionScopeCode">权限域编号</param>
132 /// <returns>数据表</returns>
133 DataTable GetRoleListByPermission(BaseUserInfo userInfo, String userID, String permissionScopeCode);
134
135 /// <summary>
136 /// 11.按某个权限域获取用户列表
137 /// </summary>
138 /// <param name="userInfo">用户</param>
139 /// <param name="userID">用户代码</param>
140 /// <param name="permissionScopeCode">权限域编号</param>
141 /// <returns>数据表</returns>
142 DataTable GetUserListByPermission(BaseUserInfo userInfo, String userID, String permissionScopeCode);
143
144 /// <summary>
145 /// 12.按某个权限域获取模块列表
146 /// </summary>
147 /// <param name="userInfo">用户</param>
148 /// <param name="userID">用户代码</param>
149 /// <param name="permissionCode">权限域编号</param>
150 /// <returns>数据表</returns>
151 DataTable GetModuleListByPermission(BaseUserInfo userInfo, String userID, String permissionCode);
152
153 /// <summary>
154 /// 13.有授权权限的权限列表
155 /// </summary>
156 /// <param name="userInfo">用户</param>
157 /// <param name="userID">用户代码</param>
158 /// <returns>数据表</returns>
159 DataTable GetLicensePermissionByUser(BaseUserInfo userInfo, String userID);
160
161 /// <summary>
162 /// 14.用户的所有可授权范围(有授权权限的权限列表)
163 /// </summary>
164 /// <param name="userInfo">用户</param>
165 /// <param name="userID">用户代码</param>
166 /// <param name="permissionCode">权限域编号</param>
167 /// <returns>数据表</returns>
168 DataTable GetPermissionListByPermission(BaseUserInfo userInfo, String userID, String permissionCode);
169
170
171 //
172 /// 角色权限关联关系相关
173 //
174
175
176 /// <summary>
177 /// 15.获取角色权限代码数组
178 /// </summary>
179 /// <param name="userInfo">用户</param>
180 /// <param name="roleID">角色代码</param>
181 /// <returns>代码数组</returns>
182 String[] GetRolePermissionIDs(BaseUserInfo userInfo, String roleID);
183
184 /// <summary>
185 /// 16.授予角色的权限
186 /// </summary>
187 /// <param name="userInfo">用户</param>
188 /// <param name="roleID">角色代码</param>
189 /// <param name="grantPermissionIDs">授予权限数组</param>
190 /// <returns>影响的行数</returns>
191 int GrantRolePermission(BaseUserInfo userInfo, String roleID, String[] grantPermissionIDs);
192
193 /// <summary>
194 /// 17.撤消角色的权限
195 /// </summary>
196 /// <param name="userInfo">用户</param>
197 /// <param name="roleID">角色代码</param>
198 /// <param name="grantPermissionIDs">授予权限数组</param>
199 /// <param name="revokePermissionIDs">撤消权限数组</param>
200 /// <returns>影响的行数</returns>
201 int RevokeRolePermission(BaseUserInfo userInfo, String roleID, String[] revokePermissionIDs);
202
203 /// <summary>
204 /// 18.获取角色的某个权限域的组织范围
205 /// </summary>
206 /// <param name="userInfo">用户</param>
207 /// <param name="roleID">角色代码</param>
208 /// <param name="permissionID">权限代码</param>
209 /// <returns>代码数组</returns>
210 String[] GetRoleScopeOrganizeIDs(BaseUserInfo userInfo, String roleID, String permissionID);
211
212 /// <summary>
213 /// 19.授予角色的某个权限域的组织范围
214 /// </summary>
215 /// <param name="userInfo">用户</param>
216 /// <param name="roleID">角色代码</param>
217 /// <param name="permissionID">权限代码</param>
218 /// <param name="grantOrganizeIDs">授予组织代码数组</param>
219 /// <returns>影响的行数</returns>
220 int GrantRoleOrganizeScope(BaseUserInfo userInfo, String roleID, String permissionID, String[] grantOrganizeIDs);
221
222 /// <summary>
223 /// 20.撤消角色的某个权限域的组织范围
224 /// </summary>
225 /// <param name="userInfo">用户</param>
226 /// <param name="roleID">角色代码</param>
227 /// <param name="permissionID">权限代码</param>
228 /// <param name="revokeOrganizeIDs">撤消的组织代码数组</param>
229 /// <returns>影响的行数</returns>
230 int RevokeRoleOrganizeScope(BaseUserInfo userInfo, String roleID, String permissionID, String[] revokeOrganizeIDs);
231
232 /// <summary>
233 /// 21.获取角色授权权限列表
234 /// </summary>
235 /// <param name="userInfo">用户</param>
236 /// <param name="roleID">角色代码</param>
237 /// <returns>代码数组</returns>
238 String[] GetRoleLicensePermissionIDs(BaseUserInfo userInfo, String roleID);
239
240 /// <summary>
241 /// 22.授予角色的授权权限范围
242 /// </summary>
243 /// <param name="userInfo">用户</param>
244 /// <param name="roleID">角色代码</param>
245 /// <param name="grantPermissionIDs">授予的权限代码数组</param>
246 /// <returns>影响的行数</returns>
247 int GrantRoleLicensePermission(BaseUserInfo userInfo, String roleID, String[] grantPermissionIDs);
248
249 /// <summary>
250 /// 23.授予角色的授权权限范围
251 /// </summary>
252 /// <param name="userInfo">用户</param>
253 /// <param name="roleID">角色代码</param>
254 /// <param name="revokePermissionIDs">撤消的权限代码数组</param>
255 /// <returns>影响的行数</returns>
256 int RevokeRoleLicensePermission(BaseUserInfo userInfo, String roleID, String[] revokePermissionIDs);
257
258
259 //
260 /// 用户权限关联关系相关
261 //
262
263
264 /// <summary>
265 /// 24.获取用户权限代码数组
266 /// </summary>
267 /// <param name="userInfo">用户</param>
268 /// <param name="userID">用户代码</param>
269 /// <returns>代码数组</returns>
270 String[] GetUserPermissionIDs(BaseUserInfo userInfo, String userID);
271
272 /// <summary>
273 /// 25.授予用户的权限
274 /// </summary>
275 /// <param name="userInfo">用户</param>
276 /// <param name="userID">用户代码</param>
277 /// <param name="grantPermissionIDs">授予权限数组</param>
278 /// <returns>影响的行数</returns>
279 int GrantUserPermission(BaseUserInfo userInfo, String userID, String[] grantPermissionIDs);
280
281 /// <summary>
282 /// 26.撤消用户的权限
283 /// </summary>
284 /// <param name="userInfo">用户</param>
285 /// <param name="userID">用户代码</param>
286 /// <param name="revokePermissionIDs">撤消权限数组</param>
287 /// <returns>影响的行数</returns>
288 int RevokeUserPermission(BaseUserInfo userInfo, String userID, String[] revokePermissionIDs);
289
290 /// <summary>
291 /// 27.获取用户的某个权限域的组织范围
292 /// </summary>
293 /// <param name="userInfo">用户</param>
294 /// <param name="userID">用户代码</param>
295 /// <param name="permissionID">权限代码</param>
296 /// <returns>代码数组</returns>
297 String[] GetUserScopeOrganizeIDs(BaseUserInfo userInfo, String userID, String permissionID);
298
299 /// <summary>
300 /// 28.设置用户的某个权限域的组织范围
301 /// </summary>
302 /// <param name="userInfo">用户</param>
303 /// <param name="userID">用户代码</param>
304 /// <param name="permissionID">权限代码</param>
305 /// <param name="grantOrganizeIDs">授予的组织代码数组</param>
306 /// <returns>影响的行数</returns>
307 int GrantUserOrganizeScope(BaseUserInfo userInfo, String userID, String permissionID, String[] grantOrganizeIDs);
308
309 /// <summary>
310 /// 29.设置用户的某个权限域的组织范围
311 /// </summary>
312 /// <param name="userInfo">用户</param>
313 /// <param name="userID">用户代码</param>
314 /// <param name="permissionID">权限代码</param>
315 /// <param name="revokeOrganizeIDs">撤消的组织代码数组</param>
316 /// <returns>影响的行数</returns>
317 int RevokeUserOrganizeScope(BaseUserInfo userInfo, String userID, String permissionID, String[] revokeOrganizeIDs);
318
319 /// <summary>
320 /// 30.获取用户的某个权限域的角色范围
321 /// </summary>
322 /// <param name="userInfo">用户</param>
323 /// <param name="userID">用户代码</param>
324 /// <param name="permissionID">权限代码</param>
325 /// <returns>代码数组</returns>
326 String[] GetUserScopeRoleIDs(BaseUserInfo userInfo, String userID, String permissionID);
327
328 /// <summary>
329 /// 31.设置用户的某个权限域的角色范围
330 /// </summary>
331 /// <param name="userInfo">用户</param>
332 /// <param name="userID">用户代码</param>
333 /// <param name="permissionID">权限代码</param>
334 /// <param name="grantRoleIDs">授予的角色代码数组</param>
335 /// <returns>影响的行数</returns>
336 int GrantUserRoleScope(BaseUserInfo userInfo, String userID, String permissionID, String[] grantRoleIDs);
337
338 /// <summary>
339 /// 32.设置用户的某个权限域的角色范围
340 /// </summary>
341 /// <param name="userInfo">用户</param>
342 /// <param name="userID">用户代码</param>
343 /// <param name="permissionID">权限代码</param>
344 /// <param name="revokeRoleIDs">撤消的角色代码数组</param>
345 /// <returns>影响的行数</returns>
346 int RevokeUserRoleScope(BaseUserInfo userInfo, String userID, String permissionID, String[] revokeRoleIDs);
347
348 /// <summary>
349 /// 33.获取用户的某个权限域的用户范围
350 /// </summary>
351 /// <param name="userInfo">用户</param>
352 /// <param name="userID">用户代码</param>
353 /// <param name="permissionID">权限代码</param>
354 /// <returns>代码数组</returns>
355 String[] GetUserScopeUserIDs(BaseUserInfo userInfo, String userID, String permissionID);
356
357 /// <summary>
358 /// 34.设置用户的某个权限域的用户范围
359 /// </summary>
360 /// <param name="userInfo">用户</param>
361 /// <param name="userID">用户代码</param>
362 /// <param name="permissionID">权限代码</param>
363 /// <param name="grantUserIDs">授予的用户代码数组</param>
364 /// <returns>影响的行数</returns>
365 int GrantUserUserScope(BaseUserInfo userInfo, String userID, String permissionID, String[] grantUserIDs);
366
367 /// <summary>
368 /// 35.设置用户的某个权限域的用户范围
369 /// </summary>
370 /// <param name="userInfo">用户</param>
371 /// <param name="userID">用户代码</param>
372 /// <param name="permissionID">权限代码</param>
373 /// <param name="revokeUserIDs">撤消的用户代码数组</param>
374 /// <returns>影响的行数</returns>
375 int RevokeUserUserScope(BaseUserInfo userInfo, String userID, String permissionID, String[] revokeUserIDs);
376
377 /// <summary>
378 /// 36.获取用户授权权限列表
379 /// </summary>
380 /// <param name="userInfo">用户</param>
381 /// <param name="userID">用户代码</param>
382 /// <returns>代码数组</returns>
383 String[] GetUserLicensePermissionIDs(BaseUserInfo userInfo, String userID);
384
385 /// <summary>
386 /// 37.授予用户的授权权限范围
387 /// </summary>
388 /// <param name="userInfo">用户</param>
389 /// <param name="userID">用户代码</param>
390 /// <param name="grantPermissionIDs">授予的权限代码数组</param>
391 /// <returns>影响的行数</returns>
392 int GrantUserLicensePermission(BaseUserInfo userInfo, String userID, String[] grantPermissionIDs);
393
394 /// <summary>
395 /// 38.撤消用户的授权权限范围
396 /// </summary>
397 /// <param name="userInfo">用户</param>
398 /// <param name="userID">用户代码</param>
399 /// <param name="revokePermissionIDs">撤消的权限代码数组</param>
400 /// <returns>影响的行数</returns>
401 int RevokeUserLicensePermission(BaseUserInfo userInfo, String userID, String[] revokePermissionIDs);
402
403
404 //
405 /// 用户模块关联关系相关
406 //
407
408 /// <summary>
409 /// 39.获得用户有权限的模块
410 /// </summary>
411 /// <param name="userInfo">用户</param>
412 /// <param name="userID">用户代码</param>
413 /// <returns>数据表</returns>
414 DataTable GetModuleList(BaseUserInfo userInfo, String userID);
415
416 /// <summary>
417 /// 40.获得用户有权限的模块
418 /// </summary>
419 /// <param name="userInfo">用户</param>
420 /// <param name="userID">用户代码</param>
421 /// <returns>数据表</returns>
422 DataTable GetModuleListByUser(BaseUserInfo userInfo, String userID);
423
424 /// <summary>
425 /// 41.获取用户模块权限范围代码数组
426 /// </summary>
427 /// <param name="userInfo">用户</param>
428 /// <param name="userID">用户代码</param>
429 /// <param name="permissionCode">权限编号</param>
430 /// <returns>代码数组</returns>
431 String[] GetUserScopeModuleIDs(BaseUserInfo userInfo, String userID, String permissionCode);
432
433 /// <summary>
434 /// 42.授予用户模块的权限范围
435 /// </summary>
436 /// <param name="userInfo">用户</param>
437 /// <param name="userID">用户代码</param>
438 /// <param name="grantModuleIDs">授予模块代码数组</param>
439 /// <returns>影响的行数</returns>
440 int GrantUserModuleScope(BaseUserInfo userInfo, String userID, String[] grantModuleIDs);
441
442 /// <summary>
443 /// 43.撤消用户模块的权限范围
444 /// </summary>
445 /// <param name="userInfo">用户</param>
446 /// <param name="userID">用户代码</param>
447 /// <param name="revokeModuleIDs">撤消模块代码数组</param>
448 /// <returns>影响的行数</returns>
449 int RevokeUserModuleScope(BaseUserInfo userInfo, String userID, String[] revokeModuleIDs);
450
451
452 //
453 /// 角色模块关联关系相关
454 //
455
456
457 /// <summary>
458 /// 44.获取用户模块权限范围代码数组
459 /// </summary>
460 /// <param name="userInfo">用户</param>
461 /// <param name="roleID">角色代码</param>
462 /// <param name="permissionCode">权限编号</param>
463 /// <returns>代码数组</returns>
464 String[] GetRoleScopeModuleIDs(BaseUserInfo userInfo, String roleID, String permissionCode);
465
466 /// <summary>
467 /// 45.授予用户模块的权限范围
468 /// </summary>
469 /// <param name="userInfo">用户</param>
470 /// <param name="roleID">角色代码</param>
471 /// <param name="grantModuleIDs">授予模块代码数组</param>
472 /// <returns>影响的行数</returns>
473 int GrantRoleModuleScope(BaseUserInfo userInfo, String roleID, String[] grantModuleIDs);
474
475 /// <summary>
476 /// 46.撤消用户模块的权限范围
477 /// </summary>
478 /// <param name="userInfo">用户</param>
479 /// <param name="roleID">角色代码</param>
480 /// <param name="revokeModuleIDs">撤消模块代码数组</param>
481 /// <returns>影响的行数</returns>
482 int RevokeRoleModuleScope(BaseUserInfo userInfo, String roleID, String[] revokeModuleIDs);
483
484
485 //
486 /// 资源权限设定关系相关
487 //
488
489 /// <summary>
490 /// 47.获取资源权限代码数组
491 /// </summary>
492 /// <param name="userInfo">用户</param>
493 /// <param name="resourceCategory">资源分类</param>
494 /// <returns>代码数组</returns>
495 String[] GetResourcePermissionIDs(BaseUserInfo userInfo, String resourceCategory, String resourceID);
496
497 /// <summary>
498 /// 48.授予资源的权限
499 /// </summary>
500 /// <param name="userInfo">用户</param>
501 /// <param name="resourceCategory">资源分类</param>
502 /// <param name="resourceID">资源代码</param>
503 /// <param name="grantPermissionIDs">权限代码</param>
504 /// <returns>影响的行数</returns>
505 int GrantResourceTargetScope(BaseUserInfo userInfo, String resourceCategory, String resourceID, String grantPermissionIDs);
506
507 /// <summary>
508 /// 49.撤消资源的权限
509 /// </summary>
510 /// <param name="userInfo">用户</param>
511 /// <param name="resourceCategory">资源分类</param>
512 /// <param name="resourceID">资源代码</param>
513 /// <param name="revokePermissionIDs">权限代码</param>
514 /// <returns>影响的行数</returns>
515 int RevokeResourceTargetScope(BaseUserInfo userInfo, String resourceCategory, String resourceID, String revokePermissionIDs);
516
517
518 //
519 /// 资源权限范围设定关系相关
520 //
521
522
523 /// <summary>
524 /// 50.获取资源权限范围代码数组
525 /// </summary>
526 /// <param name="userInfo">用户</param>
527 /// <param name="resourceCategory">资源分类</param>
528 /// <param name="resourceID">资源代码</param>
529 /// <param name="targetCategory">目标类别</param>
530 /// <param name="permissionCode">权限编号</param>
531 /// <returns>代码数组</returns>
532 String[] GetResourceScopeTargetIDs(BaseUserInfo userInfo, String resourceCategory, String resourceID, String targetCategory, String permissionCode);
533
534 /// <summary>
535 /// 51.授予资源的权限范围
536 /// </summary>
537 /// <param name="userInfo">用户</param>
538 /// <param name="resourceCategory">资源分类</param>
539 /// <param name="resourceID">资源代码</param>
540 /// <param name="targetCategory">目标类别</param>
541 /// <param name="grantTargetIDs">目标代码数组</param>
542 /// <param name="permissionID">权限代码</param>
543 /// <returns>影响的行数</returns>
544 int GrantResourceTargetScope(BaseUserInfo userInfo, String resourceCategory, String resourceID, String targetCategory, String[] grantTargetIDs, String permissionID);
545
546 /// <summary>
547 /// 52.撤消资源的权限范围
548 /// </summary>
549 /// <param name="userInfo">用户</param>
550 /// <param name="resourceCategory">资源分类</param>
551 /// <param name="resourceID">资源代码</param>
552 /// <param name="targetCategory">目标类别</param>
553 /// <param name="revokeTargetIDs">目标代码数组</param>
554 /// <param name="permissionID">权限代码</param>
555 /// <returns>影响的行数</returns>
556 int RevokeResourceTargetScope(BaseUserInfo userInfo, String resourceCategory, String resourceID, String targetCategory, String[] revokeTargetIDs, String permissionID);
557 }
558 }
将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。