Ejemplo n.º 1
0
        public List <string> GetPermissionLevelListByFunctionName(int userID, string functionName)
        {
            var sp = new MD.StoredProcedure.usp_GetUserPermissionLevelByFunctionName()
            {
                UserID       = userID,
                FunctionName = functionName
            };
            //var perms = ctx.InvokeStoredProcedure<MD.StoredProcedure.usp_GetUserPermissionLevelByFunctionName, VM.Common.PermissionLevel>(sp);

            /*
             * ALTER PROCEDURE[dbo].[usp_GetUserPermissionLevelByFunctionName]
             * @UserID int,
             * @FunctionName varchar(100)
             * AS
             *  BEGIN
             *  -- SET NOCOUNT ON added to prevent extra result sets from
             *  -- interfering with SELECT statements.
             *  SET NOCOUNT ON;
             * SELECT DISTINCT
             * FPL.[FunctionName]
             *  , FPL.[PermissionLevel] AS[LevelName]
             * FROM[dbo].[Common_Authen_RoleFunctionPermission]
             * AS RFP
             * INNER JOIN[dbo].[Common_Authen_FunctionPermissionLevel]
             * AS FPL
             * ON RFP.[PermissionLevelID] = FPL.ID
             * INNER JOIN [dbo].[Common_Authen_RoleUser] AS ARU
             * ON ARU.[RoleID] = RFP.[RoleID]
             * WHERE ARU.[UserID] = @UserID AND FPL.[FunctionName] = @FunctionName
             * END
             */

            var query = from fpl in ctx.Common_Authen_FunctionPermissionLevel
                        join rfp in ctx.Common_Authen_RoleFunctionPermission on fpl.ID equals rfp.PermissionLevelID into pls
                        from pl in pls
                        join aru in ctx.Common_Authen_RoleUser on pl.RoleID equals aru.RoleID
                        where aru.UserID == userID && fpl.FunctionName == functionName
                        select new VM.Common.PermissionLevel
            {
                ID           = -1,   //无用
                Available    = true, //无用
                FunctionName = fpl.FunctionName,
                LevelName    = fpl.PermissionLevel
            };

            var perms = query.ToList();

            var result = new List <string>();

            if (perms != null && perms.Count > 0)
            {
                foreach (var item in perms)
                {
                    result.Add(item.LevelName);
                }
            }
            return(result);
        }
Ejemplo n.º 2
0
        public List <string> GetPermissionLevelListByFunctionName(int userID, string functionName)
        {
            var sp = new MD.StoredProcedure.usp_GetUserPermissionLevelByFunctionName()
            {
                UserID       = userID,
                FunctionName = functionName
            };
            var perms  = ctx.InvokeStoredProcedure <MD.StoredProcedure.usp_GetUserPermissionLevelByFunctionName, VM.Common.PermissionLevel>(sp);
            var result = new List <string>();

            if (perms != null && perms.Count > 0)
            {
                foreach (var item in perms)
                {
                    result.Add(item.LevelName);
                }
            }
            return(result);
        }