예제 #1
0
        public static List <Sys_Permission> GetList(int userId)
        {
            //a.根据用户ID查询角色ID集合 (一对多关系)
            var listRoleIds = UserRoleRelationAccess.GetList(userId).Select(c => c.SURRRoleId).ToList();
            //b.根据角色ID查询权限ID集合 (多对多关系)
            var listModuleIds = RoleAuthorizeAccess.GetList().Where(c => listRoleIds.Contains(c.SRARoleId)).Select(c => c.SRAModuleId).ToList();

            //c.根据权限ID集合查询所有权限实体。
            return(PermissionAccess.GetList().Where(c => listModuleIds.Contains(c.Id) && c.SPIsEnabled == 1).ToList());
        }
예제 #2
0
 public static new int Insert(Sys_Permission model)
 {
     if (model.SPParentId > 0)
     {
         var parent = PermissionAccess.Get(model.SPParentId);
         model.SPLayer = parent == null ? 0 : (parent.SPLayer + 1);
     }
     model.SPIsEnabled  = 1;
     model.SPDeleteMark = 0;
     model.SPCreateUser = OperatorProvider.Instance.Current.UserId;
     model.SPCreateTime = DateTime.Now;
     model.SPModifyUser = model.SPCreateUser;
     model.SPModifyTime = model.SPCreateTime;
     return(PermissionAccess.Insert(model));
 }
예제 #3
0
        public async Task <PermissionAccessResponse> UpdateAsync(PermissionAccess request)
        {
            var entity = _context.Set <Permiso>().SingleOrDefault(x => x.Id == new Guid(request.Id));

            if (entity is null)
            {
                throw new KeyNotFoundException($"Permiso no existe con id: {request.Id}");
            }
            var brand = _mapper.Map(request, entity);

            _context.Update(brand);
            await _context.SaveChangesAsync();

            return(_mapper.Map <PermissionAccessResponse>(entity));
        }
예제 #4
0
        /// <summary>
        /// 逻辑删除
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        public static int Delete(int Id)
        {
            var model = new Sys_Permission()
            {
                Id           = Id,
                SPDeleteMark = 1,
                SPModifyUser = OperatorProvider.Instance.Current.UserId,
                SPModifyTime = DateTime.Now,
            };
            var updateColumns = new List <Sys_PermissionFields>()
            {
                Sys_PermissionFields.SPDeleteMark, Sys_PermissionFields.SPModifyUser, Sys_PermissionFields.SPModifyTime
            };

            return(PermissionAccess.Update(model, updateColumns));
        }
예제 #5
0
        /// <summary>
        /// 设置权限树
        /// </summary>
        public void SetPermissionTree()
        {
            int    roleId    = Convert.ToInt32(Server.UrlDecode(Request["RoleId"].ToString()));
            string resultStr = string.Empty;

            List <string> lsP = new List <string>();

            lsP = PermissionAccess.GetInstance().GetParentPermission();
            //此处省略得到数据列表的代码
            resultStr  = "";
            resultStr += "[";
            foreach (string item in lsP)
            {
                resultStr += "{";

                List <PermissionEntity> lsC = new List <PermissionEntity>();
                lsC = PermissionAccess.GetInstance().GetChildPermission(item);
                //如果某变电站下有线路
                if (lsC.Count > 0)
                {
                    resultStr += string.Format("\"id\": \"{0}\", \"text\": \"{1}\", \"state\": \"closed\"", item, item);
                    resultStr += ",\"children\":[";

                    for (int i = 0; i < lsC.Count; i++)
                    {
                        resultStr += "{";
                        resultStr += string.Format("\"id\": \"{0}\", \"text\": \"{1}\",\"checked\":{2} ", lsC[i].PermissionId, lsC[i].OperationName, RolePermissionAccess.GetInstance().IsPermissionOn(roleId, lsC[i].PermissionId) == null ? "false" : "true");
                        resultStr += "},";
                    }
                    resultStr  = resultStr.Substring(0, resultStr.Length - 1);
                    resultStr += "]";
                }
                else
                {
                    resultStr += string.Format("\"id\": \"{0}\", \"text\": \"{1}\" ", item, item);
                }
                resultStr += "},";
            }

            resultStr  = resultStr.Substring(0, resultStr.Length - 1);
            resultStr += "]";

            Response.Write(resultStr);
        }
예제 #6
0
        public static new int Update(Sys_Permission model)
        {
            if (model.SPParentId > 0)
            {
                var parent = PermissionAccess.Get(model.SPParentId);
                model.SPLayer = parent == null ? 0 : (parent.SPLayer + 1);
            }
            model.SPModifyUser = OperatorProvider.Instance.Current.UserId;
            model.SPModifyTime = DateTime.Now;
            var updateColumns = new List <Sys_PermissionFields>()
            {
                Sys_PermissionFields.SPParentId, Sys_PermissionFields.SPLayer, Sys_PermissionFields.SPEnCode
                , Sys_PermissionFields.SPName, Sys_PermissionFields.SPJsEvent, Sys_PermissionFields.SPIcon
                , Sys_PermissionFields.SPUrl, Sys_PermissionFields.SPRemark, Sys_PermissionFields.SPType
                , Sys_PermissionFields.SPSortCode, Sys_PermissionFields.SPIsPublic, Sys_PermissionFields.SPIsEnabled
                , Sys_PermissionFields.SPIsEdit, Sys_PermissionFields.SPModifyUser, Sys_PermissionFields.SPModifyTime
            };

            return(PermissionAccess.Update(model, updateColumns));
        }
예제 #7
0
        public void AddEditAccessLevelDetails(List <AccessLevelDetails> AccessLevelDetailsList)
        {
            SqlCommand     command     = null;
            SqlTransaction transaction = null;
            StringBuilder  process     = null;

            try
            {
                process = new StringBuilder();
                // Build xml criteria.

                // Define command.
                command             = mDbConnection.CreateCommand();
                command.CommandType = CommandType.StoredProcedure;
                command.CommandText = "Proc_AddEditUserAccessLevelDetails";

                command.Parameters.Add("@DataAccessLevelDetails", SqlDbType.Xml).Value    = PermissionAccess.GetXml(AccessLevelDetailsList);
                command.Parameters.Add("@hasError", SqlDbType.Bit).Direction              = ParameterDirection.Output;
                command.Parameters.Add("@ErrorMessage", SqlDbType.VarChar, 255).Direction = ParameterDirection.Output;

                try
                {
                    // Execute command within transaction.
                    transaction         = mDbConnection.BeginTransaction();
                    command.Transaction = transaction;
                    command.ExecuteNonQuery();
                    transaction.Commit();
                }
                catch
                {
                    if (transaction != null)
                    {
                        if (transaction.Connection != null)
                        {
                            transaction.Rollback();
                        }
                    }

                    throw;
                }

                // Get output parameters.
                bool   IshasError   = bool.Parse(command.Parameters["@hasError"].Value.ToString());
                string errorMessage = command.Parameters["@ErrorMessage"].Value.ToString();

                if (IshasError)
                {
                    // Create exception instance.
                    ValidationException exception = new ValidationException("Validation error occurred.");
                    exception.Data.Add("AccessLevel_Error", errorMessage);

                    throw exception;
                }
            }
            catch { throw; }
            finally
            {
                if (transaction != null)
                {
                    transaction.Dispose();
                }
                if (command != null)
                {
                    command.Dispose();
                }
            }
        }
예제 #8
0
 public static Page <Sys_Permission> GetList(int pageIndex, int pageSize, string keyWord)
 {
     return(PermissionAccess.GetList(pageIndex, pageSize, keyWord));
 }
예제 #9
0
 public static List <Sys_Permission> GetList()
 {
     return(PermissionAccess.GetList());
 }
예제 #10
0
 public static long GetChildCount(object parentId)
 {
     return(PermissionAccess.GetChildCount(parentId));
 }
예제 #11
0
 public static int Delete(params string[] primaryKeys)
 {
     //删除权限与角色的对应关系。
     RoleAuthorizeAccess.Delete(primaryKeys);
     return(PermissionAccess.Delete(primaryKeys));
 }
        public IHttpActionResult GetAssginedPermission(string url, long?roleId, long userType)
        {
            PermissionAccess permAccess = new PermissionAccess();

            try
            {
                if (userType == 1 && (url.ToUpper() == "COMPANIES" || url.ToUpper() == "COMPANY" || url.ToUpper() == "EDITCOMPANY"

                                      || url.ToUpper() == "COMPANYROLE"

                                      || url.ToUpper() == "COMPANYUSER"

                                      || url.ToUpper() == "EDITCOMPANY"

                                      ))
                {
                    permAccess.View      = true;
                    permAccess.Add       = true;
                    permAccess.Edit      = true;
                    permAccess.Delete    = true;
                    permAccess.IsAllowed = true;
                    return(Ok(permAccess));
                }

                else
                {
                    DataTable dt = new DataTable();

                    bool retVal = false;
                    if (url.ToUpper().Equals("SKIP"))
                    {
                        retVal = true;
                        permAccess.IsAllowed = true;
                    }
                    else if (url.Contains(","))
                    {
                        long reportId = long.Parse(url.Split(',')[1]);

                        SqlParameter[] param =
                        {
                            new SqlParameter("@roleId",   roleId),
                            new SqlParameter("@reportId", reportId),
                        };
                        DataSet data      = _spService.ExcuteSpAnonmious("prc_getReportPermission", param, 1);
                        var     isAllowed = data.Tables[0].AsEnumerable().Select(s => new
                        {
                            IsAllowed = s.Field <bool>("IsAllowed"),
                        }).FirstOrDefault();


                        if (isAllowed != null)
                        {
                            permAccess.IsAllowed = isAllowed.IsAllowed;
                        }
                    }
                    else
                    {
                        SqlParameter[] param =
                        {
                            new SqlParameter("@pageName", url),
                            new SqlParameter("@roleId",   roleId),
                        };
                        DataSet data       = _spService.ExcuteSpAnonmious("prc_getAssginedPermission", param, 2);
                        var     permission = data.Tables[0].AsEnumerable().Select(s => new
                        {
                            IsAllowed = s.Field <bool>("IsAllowed"),
                            RoleName  = s.Field <string>("RoleName"),
                            PermName  = s.Field <string>("PermName"),
                            PageName  = s.Field <string>("PageName"),
                        }).FirstOrDefault();



                        var access = data.Tables[1].AsEnumerable().Select(s => new
                        {
                            IsAllowed = s.Field <bool>("IsAllowed"),
                            PermName  = s.Field <string>("PermName"),
                        });



                        if (access != null)
                        {
                            foreach (var item in access)
                            {
                                switch (item.PermName.ToUpper())
                                {
                                case "VIEW":
                                    permAccess.View = item.IsAllowed;
                                    break;

                                case "ADD":
                                    permAccess.Add = item.IsAllowed;
                                    break;

                                case "EDIT":
                                    permAccess.Edit = item.IsAllowed;
                                    break;

                                case "DELETE":
                                    permAccess.Delete = item.IsAllowed;
                                    break;
                                }

                                permAccess.IsAllowed = permission.IsAllowed;
                            }
                        }
                    }
                }


                return(Ok(permAccess));
            }
            catch
            {
                return(Ok(permAccess));
            }
        }
예제 #13
0
 public PermissionBusiness()
 {
     dataAccess = new PermissionAccess();
 }
예제 #14
0
        public void AuthorizeNo()
        {
            PermissionAccess pa = new PermissionAccess();

            Assert.AreEqual(false, pa.Authorize("Jj", "k"));
        }
예제 #15
0
        public void AuthorizeYes()
        {
            PermissionAccess pa = new PermissionAccess();

            Assert.AreEqual(true, pa.Authorize("Petr", "Petr"));
        }
예제 #16
0
    private int AddEditPermissions()
    {
        int id = 0;

        try
        {
            UsersPermission _objUsersPermission = new UsersPermission(PermissionId);
            _objUsersPermission.PermissionId     = PermissionId;
            _objUsersPermission.PermissionName   = lblPermissionName.Text;
            _objUsersPermission.LastUpdateUserId = mAppManager.LoginUser.Id;

            if (UIMODEPERMISSION == UIMODEPERMISSION.EDIT)
            {
                _objUsersPermission.IsActive = chkActive.Checked;
                _objUsersPermission.Reason   = Convert.ToString(txtReason.Value);
            }


            //*** Locations and Departments ***//
            List <PermissionAccess> _objPermissionAccessList = new List <PermissionAccess>();
            foreach (TreeNode node in tvLocations.Nodes)
            {
                //If node has child nodes
                if (node.Checked == true)   //it is better to first check if it is "checked" then proceed to count child nodes
                {
                    int _objLocationId = string.IsNullOrEmpty(node.Value) ? 0 : Convert.ToInt32(node.Value);

                    if (node.ChildNodes.Count > 0)   //check if node has any child nodes
                    {
                        //Check all the child nodes.
                        foreach (TreeNode childNode in node.ChildNodes)
                        {
                            if (childNode.Checked == true)
                            {
                                PermissionAccess _objPermissionAccess = new PermissionAccess();
                                _objPermissionAccess.LocationId   = _objLocationId;
                                _objPermissionAccess.DepartmentId = string.IsNullOrEmpty(childNode.Value) ? 0 : Convert.ToInt32(childNode.Value);
                                _objPermissionAccessList.Add(_objPermissionAccess);
                            }
                        }
                    }
                }
            }

            //*** Clients ***//
            List <ClientAccess> _objClientAccessList = new List <ClientAccess>();
            foreach (TreeNode node in tvClients.Nodes)
            {
                if (node.Checked == true)
                {
                    if (node.ChildNodes.Count > 0)   //check if node has any child nodes
                    {
                        //Check all the child nodes.
                        foreach (TreeNode childNode in node.ChildNodes)
                        {
                            if (childNode.Checked == true)
                            {
                                _objClientAccessList.Add(new ClientAccess {
                                    ClientId = string.IsNullOrEmpty(childNode.Value) ? 0 : Convert.ToInt32(childNode.Value)
                                });
                            }
                        }
                    }
                }
            }

            //*** Reports ***//
            List <ReportAccess> _objReportAccessList = new List <ReportAccess>();
            foreach (TreeNode node in tvReports.Nodes)
            {
                if (node.Checked == true)
                {
                    if (node.ChildNodes.Count > 0)   //check if node has any child nodes
                    {
                        //Check all the child nodes.
                        foreach (TreeNode childNode in node.ChildNodes)
                        {
                            if (childNode.Checked == true)
                            {
                                _objReportAccessList.Add(new ReportAccess {
                                    ReportId = string.IsNullOrEmpty(childNode.Value) ? 0 : Convert.ToInt32(childNode.Value)
                                });
                            }
                        }
                    }
                }
            }

            IUsersProfile mUserProfile = null;
            mUserProfile            = AppService.Create <IUsersProfile>();
            mUserProfile.AppManager = this.mAppManager;

            mUserProfile.AddEditUserPermissions(_objUsersPermission, _objPermissionAccessList, _objClientAccessList, _objReportAccessList);
            id = 1;
        }
        catch (ValidationException ve)
        {
            throw ve;
        }
        catch (Exception ex)
        {
            throw ex;
        }
        return(id);
    }