Esempio n. 1
0
        /// <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();
 }
Esempio n. 3
0
        /// <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;
        }
Esempio n. 4
0
        /// <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;
        }
Esempio n. 5
0
 /// <summary>
 /// ����ģ�顣
 /// </summary>
 /// <param name="module">ģ�顣</param>
 public void AddModule(Module module)
 {
     this.Modules.Add(module);
     module.ModuleType = this;
 }