/// <summary> /// 根据模块和权限标示获取模块权限。 /// </summary> /// <param name="module">模块。</param> /// <param name="rightTag">权限标示。</param> /// <returns>模块权限。</returns> public static ModuleRight GetModuleRight(Module module, string rightTag) { string hql = "from ModuleRight mr where mr.Module = :module and mr.RightTag = :rightTag"; IQuery q = Db.Session.CreateQuery(hql); q.SetEntity("module", module); q.SetString("rightTag", rightTag); object o = q.UniqueResult(); return (o == null) ? null : o as ModuleRight; }
public ModuleRight() { _id = String.Empty; _right_tag = String.Empty; _module = null; _roles_grant = new HashedSet(); _roles_deny = new HashedSet(); _staff_grant = new HashedSet(); _staff_deny = new HashedSet(); }
/// <summary> /// 新增模块。 /// </summary> /// <param name="dto">待新增模块的信息。</param> /// <returns>新模块的Id。(-2:Tag重复。)</returns> public static string InsertModule(ModuleDTO dto) { Module existingM = GetModuleByTag(dto.Tag); if (existingM != null) { return "-2"; } Db.SessionFactory.EvictQueries("Module"); //模块基本信息。 Module m = new Module(); m.Id = IdGen.GetNextId(typeof(Module)); m.Tag = dto.Tag; m.Name = dto.Name; m.Remark = dto.Remark; m.OrderId = dto.OrderId; m.ModuleUrl = dto.ModuleUrl; m.Disabled = dto.Disabled; //模块分类。 ModuleType mt = Db.Session.Load(typeof(ModuleType), dto.ModuleTypeId) as ModuleType; mt.AddModule(m); //获取新增模块权限的主键值。 string[] Ids = null; if (dto.ModuleRights.Count > 0) Ids = IdGen.GetNextId(typeof(ModuleRight), dto.ModuleRights.Count); //向数据库保存模块和模块权限。 ITransaction transaction = Db.Session.BeginTransaction(); try { Db.Session.Save(m); for (int i = 0; i < dto.ModuleRights.Count; i++) { ModuleRight mr = new ModuleRight(); mr.Id = Ids[i]; mr.RightTag = dto.ModuleRights[i].ToString(); m.AddModuleRight(mr); Db.Session.Save(mr); } transaction.Commit(); } catch { transaction.Rollback(); throw; } //返回新模块的Id。 return m.Id; }
/// <summary> /// 获取对于某模块的所有肯定授权的权限标示。 /// </summary> /// <param name="module">模块。</param> /// <returns>权限标示集合。</returns> public ArrayList GetGrantPermissions(Module module) { ArrayList alPermissions = new ArrayList(); IDictionaryEnumerator ide = module.ModuleRights.GetEnumerator(); while (ide.MoveNext()) { ModuleRight mr = ((DictionaryEntry)ide.Current).Value as ModuleRight; if (this.HasGrantPermission(mr)) { alPermissions.Add(mr.RightTag); } } return alPermissions; }
/// <summary> /// ����ģ�顣 /// </summary> /// <param name="module">ģ�顣</param> public void AddModule(Module module) { this.Modules.Add(module); module.ModuleType = this; }