温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:PermissionBase权限管理系统0.1.2源码
当前文件:
PermissionBase/Core/Domain/Staff.cs[12K,2009-6-12 11:51:56],打开代码结构图
PermissionBase/Core/Domain/Staff.cs[12K,2009-6-12 11:51:56],打开代码结构图1using System; 2
using System.Collections; 3
using Iesi.Collections; 4
using Nullables; 5
6
namespace PermissionBase.Core.Domain 7
...{ 8
/**//// <summary> 9
/// 职员。 10
/// </summary> 11
public class Staff 12
...{ 13
private string _login_id; 14
private string _password; 15
private string _code; 16
private string _name; 17
private NullableInt32 _sex; 18
private NullableInt32 _married; 19
private string _id_card; 20
private string _country_tag; 21
private string _nation_tag; 22
private string _position_tag; 23
private string _title_tag; 24
private string _political_appearance_tag; 25
private string _degree_tag; 26
private NullableDateTime _birthday; 27
private NullableDateTime _enters_day; 28
private NullableDateTime _leaves_day; 29
private string _office_phone; 30
private string _ext_number; 31
private string _family_phone; 32
private string _cell_phone; 33
private string _email; 34
private string _address; 35
private string _zip_code; 36
private string _remark; 37
private int _is_inner_user; 38
private int _disabled; 39
private int _order_id; 40
private Department _department; 41
private ISet _roles; 42
private ISet _module_rights_grant; 43
private ISet _module_rights_deny; 44
45
属性#region 属性 46
47
/**//// <summary> 48
/// 登录ID。 49
/// </summary> 50
public virtual string LoginId 51
...{ 52
get ...{ return _login_id; } 53
set ...{ _login_id = value; } 54
} 55
56
/**//// <summary> 57
/// 登录密码。 58
/// </summary> 59
public virtual string Password 60
...{ 61
get ...{ return _password; } 62
set ...{ _password = value; } 63
} 64
65
/**//// <summary> 66
/// 编号。 67
/// </summary> 68
public virtual string Code 69
...{ 70
get ...{ return _code; } 71
set ...{ _code = value; } 72
} 73
74
/**//// <summary> 75
/// 姓名。 76
/// </summary> 77
public virtual string Name 78
...{ 79
get ...{ return _name; } 80
set ...{ _name = value; } 81
} 82
83
/**//// <summary> 84
/// 性别。 85
/// </summary> 86
public virtual NullableInt32 Sex 87
...{ 88
get ...{ return _sex; } 89
set ...{ _sex = value; } 90
} 91
92
/**//// <summary> 93
/// 婚否。 94
/// </summary> 95
public virtual NullableInt32 Married 96
...{ 97
get ...{ return _married; } 98
set ...{ _married = value; } 99
} 100
101
/**//// <summary> 102
/// 身份证号码。 103
/// </summary> 104
public virtual string IdCard 105
...{ 106
get ...{ return _id_card; } 107
set ...{ _id_card = value; } 108
} 109
110
/**//// <summary> 111
/// 国籍。 112
/// </summary> 113
public virtual string CountryTag 114
...{ 115
get ...{ return _country_tag; } 116
set ...{ _country_tag = value; } 117
} 118
119
/**//// <summary> 120
/// 民族。 121
/// </summary> 122
public virtual string NationTag 123
...{ 124
get ...{ return _nation_tag; } 125
set ...{ _nation_tag = value; } 126
} 127
128
/**//// <summary> 129
/// 职位。 130
/// </summary> 131
public virtual string PositionTag 132
...{ 133
get ...{ return _position_tag; } 134
set ...{ _position_tag = value; } 135
} 136
137
/**//// <summary> 138
/// 职称。 139
/// </summary> 140
public virtual string TitleTag 141
...{ 142
get ...{ return _title_tag; } 143
set ...{ _title_tag = value; } 144
} 145
146
/**//// <summary> 147
/// 政治面貌。 148
/// </summary> 149
public virtual string PoliticalAppearanceTag 150
...{ 151
get ...{ return _political_appearance_tag; } 152
set ...{ _political_appearance_tag = value; } 153
} 154
155
/**//// <summary> 156
/// 最高学历。 157
/// </summary> 158
public virtual string DegreeTag 159
...{ 160
get ...{ return _degree_tag; } 161
set ...{ _degree_tag = value; } 162
} 163
164
/**//// <summary> 165
/// 出生日期。 166
/// </summary> 167
public virtual NullableDateTime Birthday 168
...{ 169
get ...{ return _birthday; } 170
set ...{ _birthday = value; } 171
} 172
173
/**//// <summary> 174
/// 入职日期。 175
/// </summary> 176
public virtual NullableDateTime EntersDay 177
...{ 178
get ...{ return _enters_day; } 179
set ...{ _enters_day = value; } 180
} 181
182
/**//// <summary> 183
/// 离职日期。 184
/// </summary> 185
public virtual NullableDateTime LeavesDay 186
...{ 187
get ...{ return _leaves_day; } 188
set ...{ _leaves_day = value; } 189
} 190
191
/**//// <summary> 192
/// 办公室电话。 193
/// </summary> 194
public virtual string OfficePhone 195
...{ 196
get ...{ return _office_phone; } 197
set ...{ _office_phone = value; } 198
} 199
200
/**//// <summary> 201
/// 分机号码。 202
/// </summary> 203
public virtual string ExtNumber 204
...{ 205
get ...{ return _ext_number; } 206
set ...{ _ext_number = value; } 207
} 208
209
/**//// <summary> 210
/// 家庭电话。 211
/// </summary> 212
public virtual string FamilyPhone 213
...{ 214
get ...{ return _family_phone; } 215
set ...{ _family_phone = value; } 216
} 217
218
/**//// <summary> 219
/// 手机。 220
/// </summary> 221
public virtual string CellPhone 222
...{ 223
get ...{ return _cell_phone; } 224
set ...{ _cell_phone = value; } 225
} 226
227
/**//// <summary> 228
/// Email。 229
/// </summary> 230
public virtual string Email 231
...{ 232
get ...{ return _email; } 233
set ...{ _email = value; } 234
} 235
236
/**//// <summary> 237
/// 家庭住址。 238
/// </summary> 239
public virtual string Address 240
...{ 241
get ...{ return _address; } 242
set ...{ _address = value; } 243
} 244
245
/**//// <summary> 246
/// 邮编。 247
/// </summary> 248
public virtual string ZipCode 249
...{ 250
get ...{ return _zip_code; } 251
set ...{ _zip_code = value; } 252
} 253
254
/**//// <summary> 255
/// 备注。 256
/// </summary> 257
public virtual string Remark 258
...{ 259
get ...{ return _remark; } 260
set ...{ _remark = value; } 261
} 262
263
/**//// <summary> 264
/// 是否内置用户。 265
/// </summary> 266
public virtual int IsInnerUser 267
...{ 268
get ...{ return _is_inner_user; } 269
set ...{ _is_inner_user = value; } 270
} 271
272
/**//// <summary> 273
/// 已禁用。 274
/// </summary> 275
public virtual int Disabled 276
...{ 277
get ...{ return _disabled; } 278
set ...{ _disabled = value; } 279
} 280
281
/**//// <summary> 282
/// 排序ID。 283
/// </summary> 284
public virtual int OrderId 285
...{ 286
get ...{ return _order_id; } 287
set ...{ _order_id = value; } 288
} 289
290
/**//// <summary> 291
/// 所属部门。 292
/// </summary> 293
public virtual Department Department 294
...{ 295
get ...{ return _department; } 296
set ...{ _department = value; } 297
} 298
299
/**//// <summary> 300
/// 角色列表。 301
/// </summary> 302
public virtual ISet Roles 303
...{ 304
get ...{ return _roles; } 305
set ...{ _roles = value; } 306
} 307
308
/**//// <summary> 309
/// 对当前职员进行了肯定授权的模块权限。 310
/// </summary> 311
public virtual ISet ModuleRightsGrant 312
...{ 313
get ...{ return _module_rights_grant; } 314
set ...{ _module_rights_grant = value; } 315
} 316
317
/**//// <summary> 318
/// 对当前职员进行了否定授权的模块权限。 319
/// </summary> 320
public virtual ISet ModuleRightsDeny 321
...{ 322
get ...{ return _module_rights_deny; } 323
set ...{ _module_rights_deny = value; } 324
} 325
326
#endregion 327
328
构造函数#region 构造函数 329
330
public Staff() 331
...{ 332
_login_id = String.Empty; 333
_password = String.Empty; 334
_code = String.Empty; 335
_name = String.Empty; 336
_sex = null; 337
_married = null; 338
_id_card = String.Empty; 339
_country_tag = String.Empty; 340
_nation_tag = String.Empty; 341
_position_tag = String.Empty; 342
_title_tag = String.Empty; 343
_political_appearance_tag = String.Empty; 344
_degree_tag = String.Empty; 345
_birthday = null; 346
_enters_day = null; 347
_leaves_day = null; 348
_office_phone = String.Empty; 349
_ext_number = String.Empty; 350
_family_phone = String.Empty; 351
_cell_phone = String.Empty; 352
_email = String.Empty; 353
_address = String.Empty; 354
_zip_code = String.Empty; 355
_remark = String.Empty; 356
_is_inner_user = 0; 357
_disabled = 0; 358
_order_id = 0; 359
_department = null; 360
_roles = new HashedSet(); 361
_module_rights_grant = new HashedSet(); 362
_module_rights_deny = new HashedSet(); 363
} 364
365
#endregion 366
367
公共方法#region 公共方法 368
369
370
/**//// <summary> 371
/// 移动职员。 372
/// </summary> 373
/// <param name="newParent">新的部门。</param> 374
public void MoveTo(Department newParent) 375
...{ 376
Department oldParent = this.Department; 377
oldParent.Staff.Remove(this); 378
379
newParent.Staff.Add(this); 380
this.Department = newParent; 381
} 382
383
384
/**//// <summary> 385
/// 删除对当前职员所有的模块授权。 386
/// </summary> 387
public void RemoveAllPermissions() 388
...{ 389
//删除模块肯定授权。 390
foreach(ModuleRight grant in this.ModuleRightsGrant) 391
...{ 392
grant.StaffGrant.Remove(this); 393
} 394
this.ModuleRightsGrant.Clear(); 395
396
//删除模块否定授权。 397
foreach(ModuleRight deny in this.ModuleRightsDeny) 398
...{ 399
deny.StaffDeny.Remove(this); 400
} 401
this.ModuleRightsDeny.Clear(); 402
} 403
404
405
/**//// <summary> 406
/// 与所有的角色脱离关联。 407
/// </summary> 408
public void BreakAwayFromRoles() 409
...{ 410
foreach(Role role in this.Roles) 411
...{ 412
role.Staff.Remove(this); 413
} 414
this.Roles.Clear(); 415
} 416
417
418
/**//// <summary> 419
/// 从所属部门脱离。 420
/// </summary> 421
public void BreakAwayFromDepartment() 422
...{ 423
Department d = this.Department; 424
this.Department = null; 425
d.Staff.Remove(this); 426
} 427
428
429
/**//// <summary> 430
/// 判断职员是否对某一项模块权限拥有肯定授权。 431
/// </summary> 432
/// <remarks> 433
/// 授权判断顺序如下: 434
/// (1)职员是否为内置用户。如果是则返回true,否则执行下一步。 435
/// (2)职员本身是否对此权限做了否定授权。如果是则返回false,否则执行下一步。 436
/// (3)职员本身是否对此权限做了肯定授权。如果是则返回true,否则执行下一步。 437
/// (4)职员拥有的所有角色的集合中,是否有任何一个角色对此权限做了否定授权。如果是则返回false,否则执行下一步。 438
/// (5)职员拥有的所有角色的集合中,是否有任何一个角色对此权限做了肯定授权。如果是则返回true,否则执行下一步。 439
/// (6)返回false。(即职员不是内置用户,并且职员本身以及职员拥有的所有角色都没有提供对此权限的任何授权信息。) 440
/// </remarks> 441
/// <param name="moduleRight">模块权限。</param> 442
/// <returns>是否有肯定授权。</returns> 443
public bool HasGrantPermission(ModuleRight moduleRight) 444
...{ 445
if(this.IsInnerUser == 1) return true; 446
447
if (this.ModuleRightsDeny.Contains(moduleRight)) return false; 448
if (this.ModuleRightsGrant.Contains(moduleRight)) return true; 449
450
bool hasRoleGrant = false; 451
foreach (Role role in this.Roles) 452
...{ 453
if (role.ModuleRightsDeny.Contains(moduleRight)) return false; 454
if (role.ModuleRightsGrant.Contains(moduleRight)) hasRoleGrant = true; 455
} 456
457
return hasRoleGrant; 458
} 459
460
461
/**//// <summary> 462
/// 获取对于某模块的所有肯定授权的权限标示。 463
/// </summary> 464
/// <param name="module">模块。</param> 465
/// <returns>权限标示集合。</returns> 466
public ArrayList GetGrantPermissions(Module module) 467
...{ 468
ArrayList alPermissions = new ArrayList(); 469
470
IDictionaryEnumerator ide = module.ModuleRights.GetEnumerator(); 471
while (ide.MoveNext()) 472
...{ 473
ModuleRight mr = ((DictionaryEntry)ide.Current).Value as ModuleRight; 474
if (this.HasGrantPermission(mr)) 475
...{ 476
alPermissions.Add(mr.RightTag); 477
} 478
} 479
480
return alPermissions; 481
} 482
483
484
#endregion 485
486
} 487
} 488






}