Ejemplo n.º 1
0
        /// <summary>
        /// 权限验证方法,返回权限验证信息
        /// </summary>
        /// <param name="action">需要验证的栏目url(例:/SysAdmin/Site)</param>
        /// <param name="flag">需要验证的栏目权限(枚举)</param>
        /// <returns>返回权限验证信息(枚举)</returns>
        public PowerInfo Safe(string action, PowerFlag flag)
        {
            if (!IsLogin())
            {
                return(PowerInfo.NoLogin);
            }
            if (action == null)
            {
                return(PowerInfo.Unknow);
            }
            var module = new YD_Sys_Module();

            //带有参数的链接将参数去掉
            if (action.Contains("/?"))
            {
                action = action.Substring(0, action.IndexOf("/?"));
            }
            action = action.EndsWith("/") ? action.Substring(0, action.Length - 1) : action;

            using (var yunEntities = new IYunEntities())
            {
                var modules = yunEntities.YD_Sys_Module.Where(u => true).ToList();
                for (var i = 0; i < modules.Count(); i++)
                {
                    var moduleName = modules[i].y_url;
                    //带有参数的链接将参数去掉
                    if (moduleName.Contains("/?"))
                    {
                        moduleName = moduleName.Substring(0, moduleName.IndexOf("/?"));
                    }
                    //带有/结尾的链接将/去掉
                    if (moduleName.EndsWith("/"))
                    {
                        moduleName = moduleName.Substring(0, moduleName.Length - 1);
                    }
                    if (moduleName.ToLower() != action.ToLower())
                    {
                        continue;
                    }
                    module = modules[i];
                    break;
                }

                if (module == null)
                {
                    return(PowerInfo.Unknow);
                }
                var power = yunEntities.YD_Sys_Power.FirstOrDefault(u => u.y_moduleID == module.id && u.y_roleID == YdAdminRoleId);
                if (power == null)
                {
                    return(PowerInfo.NoPower);
                }
                switch (flag)
                {
                case PowerFlag.Delete:
                    return(power.y_delete == (int)PowerState.Able ? PowerInfo.HasPower : PowerInfo.NoPower);

                case PowerFlag.Insert:
                    return(power.y_insert == (int)PowerState.Able ? PowerInfo.HasPower : PowerInfo.NoPower);

                case PowerFlag.Menu:
                    return(power.y_menu == (int)PowerState.Able ? PowerInfo.HasPower : PowerInfo.NoPower);

                case PowerFlag.Select:
                    return(power.y_select == (int)PowerState.Able ? PowerInfo.HasPower : PowerInfo.NoPower);

                case PowerFlag.Update:
                    return(power.y_update == (int)PowerState.Able ? PowerInfo.HasPower : PowerInfo.NoPower);

                default:
                    return(PowerInfo.Unknow);
                }
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 权限验证方法,返回权限验证信息
 /// </summary>
 /// <param name="action">需要验证的栏目名称</param>
 /// <param name="flag">需要验证的栏目权限(枚举)</param>
 /// <returns>返回权限验证信息(枚举)</returns>
 public PowerInfo Safe(string action, PowerFlag flag)
 {
     return(new BaseDal <YD_Sys_Admin>().Safe(action, flag));
 }
Ejemplo n.º 3
0
        public static int Power(PowerFlag flag, out string RESULT)
        {
            try
            {
                string f = string.Empty;
                switch (flag)
                {
                case PowerFlag.HardReboot:
                    f = cl.DownloadString("http://" + IP + "/reboot.ps3?hard");
                    if (f.Contains("reboot.ps3?hard : OK"))
                    {
                        RESULT = "REBOOT HARD : OK";
                        return(0);
                    }
                    break;

                case PowerFlag.QuickReboot:
                    f = cl.DownloadString("http://" + IP + "/reboot.ps3?quick");
                    if (f.Contains("reboot.ps3?quick : OK"))
                    {
                        RESULT = "REBOOT QUICK : OK";
                        return(0);
                    }
                    break;

                case PowerFlag.Shutdown:
                    f = cl.DownloadString("http://" + IP + "/shutdown.ps3");
                    if (f.Contains("shutdown.ps3 : OK"))
                    {
                        RESULT = "SHUTDOWN : OK";
                        return(0);
                    }
                    break;

                case PowerFlag.SoftReboot:
                    f = cl.DownloadString("http://" + IP + "/reboot.ps3?soft");
                    if (f.Contains("reboot.ps3?soft : OK"))
                    {
                        RESULT = "REBOOT SOFT : OK";
                        return(0);
                    }
                    break;

                case PowerFlag.VSH:
                    f = cl.DownloadString("http://" + IP + "/reboot.ps3?hard");
                    if (f.Contains("reboot.ps3?vsh : OK"))
                    {
                        RESULT = "REBOOT VSH : OK";
                        return(0);
                    }
                    break;
                }
                RESULT = "COMMAND : FAILED";
                return(-1);
            }
            catch
            {
                RESULT = "COMMAND : FAILED TO CALL COMMAND";
                return(-1);
            }
        }