示例#1
0
 /// <summary>
 /// 获取用户资源
 /// </summary>
 public virtual List <TsResource> GetUserResource(string userId, RbacResourceType rbacRscType)
 {
     using (var db = GetDbContext())
     {
         var tsUser = db.GetTable <TsUser>()
                      .FirstOrDefault(x => x.Id.Equals(userId));
         var result = new List <TsResource>();
         if (tsUser.CUserType == 9)
         {
             result = db.GetTable <TsResource>()
                      .Where(x => x.CType.Equals((int)rbacRscType))
                      .ToList();
         }
         else
         {
             var roles       = GetUserRoles(userId);
             var resourceIds = db.GetTable <TsRolePermission>()
                               .Where(x => roles.Contains(x.CRoleId) && x.CResourceType.Equals((int)rbacRscType))
                               .Select(x => x.CResourceId)
                               .ToList();
             result = db.GetTable <TsResource>()
                      .Where(x => resourceIds.Contains(x.Id))
                      .OrderBy(x => x.COrder)
                      .ToList();
         }
         return(result);
     }
 }
示例#2
0
        /// <summary>
        /// 按角色保存提交数据行权限
        /// </summary>
        public virtual void SaveRoleRestrictDataItem(string roleId, string dataId, string parentId, bool checkedState, RbacResourceType rtype = RbacResourceType.DataItem)
        {
            using (var db = GetDbContext())
            {
                var resourceId = string.Format("{0}##{1}", parentId, dataId);

                var tsRolePermission = db.GetTable <TsRolePermission>()
                                       .FirstOrDefault(x => x.CRoleId.Equals(roleId) && x.CResourceId.Equals(resourceId) && x.CResourceType.Equals(rtype));
                if (tsRolePermission == null & checkedState)
                {
                    db.Insert(new TsRolePermission
                    {
                        Id            = SequenceService.Proxy.GenerateLocalId(),
                        CResourceId   = resourceId,
                        CResourceType = (int)rtype,
                        CRoleId       = roleId
                    });
                }

                if (tsRolePermission != null && !checkedState)
                {
                    db.Delete(tsRolePermission);
                }
            }
        }