public ActionResult IndexModuleFunction(int?page, int?pagesize, string name, string first)
        {
            dynamic data = new System.Dynamic.ExpandoObject();

            if (name == null)
            {
                name = "";
            }
            var list = _ModuleFunctionRepos.GetModuleById(name);

            int _page     = page.HasValue ? page.Value : 1;
            int _pagesize = pagesize.HasValue ? pagesize.Value : 12;
            var vs        = list.ToPagedList(_page, _pagesize);
            var firstone  = new ModuleFunction();

            if (first != null && first != "")
            {
                firstone = list.FirstOrDefault(p => p.ModuleFunctionId == first);
                var firspage = vs.IndexOf(firstone);
                if (firspage == -1)
                {
                    vs.Insert(0, firstone);
                }
                else if (firspage > 0)
                {
                    vs.Remove(firstone);
                    vs.Insert(0, firstone);
                }
            }
            data.name       = name;
            data.list       = vs;
            data.pageSize   = _pagesize;
            data.pageIndex  = _page;
            data.totalCount = vs.TotalCount;
            string otherparam = "";

            if (name != "")
            {
                otherparam += "&name=" + name;
            }
            data.otherParam = otherparam;
            return(PartialView(data));
        }
        private void LoadFunctionAuthority(ModuleFunction f)
        {
            Dictionary <int, string> o = new Dictionary <int, string>();

            f.UserAuthority = FunctionAuthority.All;
            Form frm = f.LoadForm(null);

            if (frm is frmBaseChild)
            {
                (frm as frmBaseChild).InitialForm();
                o = (frm as frmBaseChild).AuthorityDisplay;
            }

            DataRow drAuthority;

            foreach (int key in o.Keys)
            {
                var drAuthoritys = dtModulesFunctionAuthority.Select(String.Format("{0}='{1}' AND {2}='{3}'",
                                                                                   sys_ModulesFunctionAuthority.FunctionID, f.FunctionID, sys_ModulesFunctionAuthority.AuthorityID, key));

                if (drAuthoritys.Length > 0)
                {
                    drAuthority        = drAuthoritys[0];
                    drAuthority["Tag"] = "Y";
                    drAuthority.AcceptChanges();
                }
                else
                {
                    drAuthority        = dtModulesFunctionAuthority.Rows.Add();
                    drAuthority["Tag"] = "Y";


                    drAuthority[sys_ModulesFunctionAuthority.FunctionID]    = f.FunctionID;
                    drAuthority[sys_ModulesFunctionAuthority.AuthorityID]   = key;
                    drAuthority[sys_ModulesFunctionAuthority.AuthorityName] = o[key];
                }
                //if (FunctionAuthorityCommon.APPROVAL.Equals(key))//审核不算权限
                //    drAuthority[sys_ModulesFunction.AppDoc] = "Y";

                drAuthority[sys_ModulesFunctionAuthority.AuthorityNameRef] = o[key];
            }
        }
        public ActionResult IndexModuleFunction(int? page, int? pagesize, string name, string first)
        {
            dynamic data = new System.Dynamic.ExpandoObject();
            if (name == null) name = "";
            var list = _ModuleFunctionRepos.GetModuleById(name);

            int _page = page.HasValue ? page.Value : 1;
            int _pagesize = pagesize.HasValue ? pagesize.Value : 12;
            var vs = list.ToPagedList(_page, _pagesize);
            var firstone = new ModuleFunction();
            if (first != null && first != "")
            {
                firstone = list.FirstOrDefault(p => p.ModuleFunctionId == first);
                var firspage = vs.IndexOf(firstone);
                if (firspage == -1)
                {
                    vs.Insert(0, firstone);
                }
                else if (firspage > 0)
                {
                    vs.Remove(firstone);
                    vs.Insert(0, firstone);
                }
            }
            data.name = name;
            data.list = vs;
            data.pageSize = _pagesize;
            data.pageIndex = _page;
            data.totalCount = vs.TotalCount;
            string otherparam = "";
            if (name != "") otherparam += "&name=" + name;
            data.otherParam = otherparam;
            return PartialView(data);
        }
Example #4
0
        //加载模块功能
        private void LoadModuleFunction(NavBarGroup CurrentGroup, BarSubItem CurrentBarItem, ModuleFunction fun)
        {
            if (CurrentGroup != null)
            {
                //添加功能到navBarControl1
                NavBarItem item = navBarControl1.Items.Add();
                item.Caption = fun.Caption;
                item.Tag     = fun.FunctionID;
                //item.SmallImage = FunSmallImage;
                item.SmallImage = imageList1.Images["Forward"];

                item.LinkClicked += item_LinkClicked;

                CurrentGroup.ItemLinks.Insert(0, item);

                if (fun.IsNew)
                {
                    item.Appearance.ForeColor = Color.FromArgb(0x99, 0x00, 0x33);
                    item.Appearance.Font      = new Font(CurrentGroup.Appearance.Font, FontStyle.Bold);
                }
            }
            if (CurrentBarItem != null)
            {
                //添加功能到bbi_Module
                var bbif = new DevExpress.XtraBars.BarButtonItem()
                {
                    Caption = fun.Caption,
                    Tag     = fun.FunctionID,
                    //Glyph = FunSmallImage
                    Glyph = imageList1.Images["Forward"]
                };
                //if (fun.IsNew)
                //{
                //    item.Appearance.ForeColor = Color.FromArgb(0x99, 0x00, 0x33);
                //    item.Appearance.Font = new Font(CurrentGroup.Appearance.Font, FontStyle.Bold);
                //}

                bbif.ItemClick += bbi_ItemClick;
                this.ribbonControl1.Items.Add(bbif);
                if (CurrentBarItem.ItemLinks.Count > 0)
                {
                    CurrentBarItem.InsertItem(CurrentBarItem.ItemLinks[0], bbif);
                }
                else
                {
                    CurrentBarItem.AddItem(bbif);
                }
            }
        }
Example #5
0
        public static WcfError ValidateSession(String session, String moduleName)
        {
            //第一步,获取用户
            using (ISession hibernateSession = NHibernateHelper.CurrentHelper.OpenSession())
            {
                var query =
                    hibernateSession.CreateQuery("from SessionToken where SessionGuid = ?");
                query.SetString(0, session);

                var sessionToken = query.List <SessionToken>().FirstOrDefault();

                if (sessionToken?.User == null || sessionToken.User <= 0)
                {
                    return(WcfError.InvalidSession);
                }

                //timeout
                if (sessionToken.LastOperationTime < DateTime.Now.Subtract(new TimeSpan(0, 0, TimeoutInSecond)))
                {
                    return(WcfError.SessionTimeout);
                }

                sessionToken.LastOperationTime = DateTime.Now;
                sessionToken.LastOperation     = moduleName;

                hibernateSession.Update(sessionToken);

                hibernateSession.Flush();

                //找到Module
                query =
                    hibernateSession.CreateQuery("from ModuleFunction where end_date is null and FunctionQualifier = ?");
                query.SetString(0, moduleName);

                var module = query.List <ModuleFunction>().FirstOrDefault();

                if (module == null)
                {
                    // ReSharper disable once ConditionIsAlwaysTrueOrFalse
                    if (DEBUG_ALLOW_EVERYTHING)
                    // ReSharper disable once HeuristicUnreachableCode
                    #pragma warning disable 162
                    {
                        query =
                            hibernateSession.CreateQuery(
                                "from ModuleFunction where end_date is null and FunctionQualifier = ?");
                        query.SetString(0, "[DEBUG]" + moduleName);

                        module = query.List <ModuleFunction>().FirstOrDefault();

                        if (module == null)
                        {
                            module = new ModuleFunction
                            {
                                FunctionQualifier = "[DEBUG]" + moduleName,
                                BusinessName      = moduleName,
                                ServiceName       = moduleName
                            };
                            module.Id = (int)hibernateSession.Save(module);
                            hibernateSession.Flush();
                        }
                    }
                    else
                    // ReSharper disable once HeuristicUnreachableCode
                    {
                        return(WcfError.NoSuchModule);
                    }
                    #pragma warning restore 162
                }

                int userId = sessionToken.User.Value;

                //找到该用户的所有用户组,看是否有权限

                var user = hibernateSession.Get <User>(userId);

                var privilege = PrivilegeApi.GetModuleFunctionPrivilege(userId, module.Id, hibernateSession);

                if (privilege != null)
                {
                    if (privilege.Status == PermissionStateTrue)
                    {
                        return(WcfError.None);
                    }
                    else
                    {
                        return(WcfError.InsufficientPrivilege);
                    }
                }

                //TODO:寻找用户组间接授权

                //没有授权
                // ReSharper disable once ConditionIsAlwaysTrueOrFalse
                if (DEBUG_ALLOW_EVERYTHING)
                // ReSharper disable once HeuristicUnreachableCode
                #pragma warning disable 162
                {
                    var result = new ModuleFunctionMap();
                    result.State        = PermissionStateTrue;
                    result.ModuleId     = module.Id;
                    result.EntityId     = userId;
                    result.EntityTypeId = EntityStructureApi.GetStructureByTypeName("UserGroup")?.Id ?? 0;
                    result.Description  = "[Debug]为用户[" + user.Name + "]赋予" + module.FunctionQualifier + "的执行权限。";
                    hibernateSession.Save(result);
                    hibernateSession.Flush();
                    return(WcfError.None);
                }
                else
                {
                    // ReSharper disable once HeuristicUnreachableCode
                    return(WcfError.InsufficientPrivilege);
                }
                #pragma warning restore 162
            }
        }
 public static Dictionary<string, ModulePreset> GetPresets( ModuleFunction function )
 {
     return Presets.Where( p => p.Value.Factory.Function == function ).ToDictionary( k => k.Key, v => v.Value );
 }
 public static Dictionary <string, ModulePreset> GetPresets(ModuleFunction function)
 {
     return(Presets.Where(p => p.Value.Factory.Function == function).ToDictionary(k => k.Key, v => v.Value));
 }
Example #8
0
        private void btn_Click(object sender, EventArgs e)
        {
            ModuleFunction fun = (sender as SimpleButton).Tag as ModuleFunction;

            MDIForm.ShowChildForm(fun);
        }