Пример #1
0
        public bool HasPermission(eSys_Module eSys_Module, eSys_User admin, Sys_Module_Actions action)
        {
            try
            {
                if (eSys_Module == null || admin == null)
                {
                    return(false);
                }

                if (eSys_Module.ID == 0) //System
                {
                    return(admin.CanAccessSystemMenu);
                }

                //Nếu là God, luôn TRUE
                if (admin.ID == eSys_User.GodUser.ID)
                {
                    return(true);
                }

                string actionid = "@" + (int)action + ";";

                //Bản thân eSys_Module ko có action này
                if (eSys_Module.Actions.IndexOf(actionid) < 0)
                {
                    return(false);
                }

                eSys_RolePermission permission = admin.RolePermissions.FirstOrDefault(o => o.ModuleID == eSys_Module.ID);
                if (permission == null)
                {
                    return(false);
                }

                if (permission.Permissions.IndexOf(actionid) < 0)
                {
                    return(false);
                }

                return(true);
            }
            catch
            {
                return(false);
            }
        }
Пример #2
0
        private string PermissionRole_RenderPermission(eSys_Role role, eSys_Module eSys_Module, List <eSys_ModuleAction> actions, out bool allActionChecked)
        {
            allActionChecked = false;
            if (role == null || eSys_Module == null)
            {
                return(string.Empty);
            }

            eSys_RolePermission permission = role.RolePermissions == null ? null : role.RolePermissions.FirstOrDefault(o => o.ModuleID == eSys_Module.ID);

            string[] eSys_ModuleActions = eSys_Module.Actions.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
            if (eSys_ModuleActions.Length == 0)
            {
                return(string.Empty);
            }

            string html = string.Empty;

            allActionChecked = true;
            foreach (string sActionId in eSys_ModuleActions)
            {
                int actionId = int.Parse(sActionId.Replace("@", ""));
                eSys_ModuleAction actionEntity = actions.FirstOrDefault(o => o.ID == actionId);
                if (actionEntity == null)
                {
                    continue;
                }

                bool   hasAction = permission == null ? false : permission.Permissions.IndexOf("@" + actionId.ToString() + ";") >= 0 ? true : false;
                string cbxId     = "cbxPermission-" + eSys_Module.ID.ToString() + "_" + actionId.ToString();
                html +=
                    "<label class=\"checkbox-inline\" for=\"" + cbxId + "\">" +
                    "<input class=\"cbxAction\" onclick=\"sysrolepermission.oncheckaction(this);\" " + (hasAction ? "checked" : "") + " type=\"checkbox\" id=\"" + cbxId + "\" name=\"" + cbxId + "\" value=\"" + actionEntity.ID.ToString() + "\"> " + actionEntity.Name +
                    "</label>";

                if (!hasAction)
                {
                    allActionChecked = false;
                }
            }

            return(html);
        }
Пример #3
0
 public bool HasPermission(eSys_Module eSys_Module, eSys_User admin, Sys_Module_Actions action)
 {
     return(((BasePage)this.Page).HasPermission(eSys_Module, admin, action));
 }