コード例 #1
0
        public async Task <ActionResult> SetRolePermission(string role_uid, string permission)
        {
            return(await RunActionAsync(async() =>
            {
                var pers = permission?.JsonToEntity <List <string> >(throwIfException: false);
                if (!ValidateHelper.IsPlumpString(role_uid) || pers == null)
                {
                    return GetJsonRes("参数错误");
                }

                var map = pers.Select(x =>
                {
                    var m = new RolePermissionEntity()
                    {
                        RoleID = role_uid,
                        PermissionID = x
                    };
                    m.Init("dr");
                    return m;
                }).ToList();

                var res = await this._roleService.SetRolePermissions(role_uid, map);
                if (res.error)
                {
                    return GetJsonRes(res.msg);
                }

                return GetJsonRes(string.Empty);
            }));
        }
コード例 #2
0
        public async Task UpdateRoleToPermissesAsync(long roleId, long[] PermissionIds)
        {
            using (AdminUserContext ctx = new AdminUserContext())
            {
                BaseService <RoleEntity> roleBs = new BaseService <RoleEntity>(ctx);
                var role = await roleBs.GetAll().SingleAsync(e => e.Id == roleId);

                BaseService <RolePermissionEntity> rolePermissionBs = new BaseService <RolePermissionEntity>(ctx);
                await rolePermissionBs.GetAll().ForEachAsync(e =>
                {
                    if (e.RoleId == roleId)
                    {
                        ctx.RolePermission.Remove(e);
                    }
                });

                BaseService <PermissionEntity> permissionBs = new BaseService <PermissionEntity>(ctx);
                await permissionBs.GetAll().ForEachAsync(e =>
                {
                    if (PermissionIds.Any(x => x == e.Id))
                    {
                        RolePermissionEntity en = new RolePermissionEntity();
                        en.Role       = role;
                        en.Permission = e;
                        ctx.RolePermission.Add(en);
                    }
                });

                await ctx.SaveChangesAsync();
            }
        }
コード例 #3
0
        /// <summary>
        /// 设置角色权限
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public async Task <StatusResult> SetRolePermissionAsync(SetRolePermissionInputDto dto)
        {
            var result = new StatusResult();
            var role   = await _roleRepository.Where(o => o.Id == dto.RoleId && o.Enabled).AnyAsync();

            if (!role)
            {
                result.SetErrorMessage("未获取到角色信息");
                return(result);
            }
            await _rolePermissionRepository.DeleteAsync(o => o.RoleId == dto.RoleId);

            var data = new List <RolePermissionEntity>();

            foreach (var item in dto.PermissionIds)
            {
                var model = new RolePermissionEntity()
                {
                    Id           = Snowflake.GenId(),
                    PermissionId = item,
                    RoleId       = dto.RoleId
                };
                data.Add(model);
            }
            await _rolePermissionRepository.InsertAsync(data);

            return(result);
        }
コード例 #4
0
        public static RolePermissionEntity ToRolePemissionDataModel(this Permission source)
        {
            var result = new RolePermissionEntity();

            result.PermissionId = source.Id;

            return(result);
        }
コード例 #5
0
        public static Permission ToCoreModel(this RolePermissionEntity source)
        {
            var result = new Permission();

            //  result.InjectFrom(source.Permission);
            result = Mapper.Map <PermissionEntity, Permission>(source.Permission);
            return(result);
        }
コード例 #6
0
        public bool Delete(RolePermissionEntityViewModel dt, int id)
        {
            RolePermissionEntity dr = db.RolePermissionEntities.Where(i => i.rpeID == id).FirstOrDefault();

            db.RolePermissionEntities.Remove(dr);
            var Result = db.SaveChanges();

            return(Result == 1);
        }
コード例 #7
0
        public static RolePermissionEntity ToRolePemissionDataModel(this Permission source)
        {
            var result = new RolePermissionEntity();

            result.PermissionId = source.Id;
            if (source.AssignedScopes != null)
            {
                result.Scopes = new List <PermissionScopeEntity>(source.AssignedScopes.Where(x => !String.IsNullOrEmpty(x.Scope)).Select(x => x.ToDataModel()));
            }
            return(result);
        }
コード例 #8
0
        public bool Update(RolePermissionEntityViewModel dt, int id)
        {
            RolePermissionEntity dr = db.RolePermissionEntities.Where(i => i.rpeID == id).FirstOrDefault();

            dr.rpeID               = dt.ID;
            dr.rpeUserRoleID       = dt.UserRoleID;
            dr.rpeRolePermissionID = dt.RolePermissionID;
            var Result = db.SaveChanges();

            return(Result == 1);
        }
コード例 #9
0
        public int Insert(RolePermissionEntityViewModel dt)
        {
            RolePermissionEntity dr = new RolePermissionEntity();

            dr.rpeUserRoleID       = dt.UserRoleID;
            dr.rpeRolePermissionID = dt.RolePermissionID;
            db.RolePermissionEntities.Add(dr);
            var Result = db.SaveChanges();

            return(dr.rpeID);
        }
コード例 #10
0
        public static void Patch(this RolePermissionEntity source, RolePermissionEntity target)
        {
            if (target == null)
            {
                throw new ArgumentNullException("target");
            }

            if (!source.Scopes.IsNullCollection())
            {
                var comparer = AnonymousComparer.Create((PermissionScopeEntity x) => x.Scope);
                source.Scopes.Patch(target.Scopes, comparer, (sourceItem, targetItem) => { });
            }
        }
コード例 #11
0
        public static Permission ToCoreModel(this RolePermissionEntity source, IPermissionScopeService scopeService)
        {
            var result = new Permission();

            //  result.InjectFrom(source.Permission);
            result = Mapper.Map <PermissionEntity, Permission>(source.Permission);
            result.AssignedScopes = source.Scopes.Select(x => new { source = x, target = scopeService.GetScopeByTypeName(x.Type) })
                                    .Where(x => x.target != null)
                                    .Select(x => x.source.ToCoreModel(x.target))
                                    .ToArray();
            result.AvailableScopes = scopeService.GetAvailablePermissionScopes(result.Id).ToArray();
            return(result);
        }
コード例 #12
0
        /// <summary>
        /// 分配操作权限
        /// </summary>
        public void GrantPermission(UserEntity user, int roleID, int[] permissionIDs)
        {
            //1.0 清空该角色原有的操作权限
            EntityManager <RolePermissionEntity> manager = new EntityManager <RolePermissionEntity>();

            WhereStatement where = new WhereStatement();
            where.Add(RolePermissionEntity.FieldRoleID, Comparison.Equals, roleID);
            manager.Delete(where);

            //2.0 添加当前选中的操作权限
            foreach (int id in permissionIDs)
            {
                RolePermissionEntity entity = new RolePermissionEntity();
                entity.RoleID            = roleID;
                entity.PermissionID      = id;
                entity.DeletionStateCode = (int)TrueFalse.True;
                entity.CreateUserId      = user.ID.ToString();
                entity.CreateBy          = user.UserName;
                entity.CreateOn          = DateTime.Now;
                manager.Insert(entity);
            }
        }
コード例 #13
0
 public void SaveRolePermission(RolePermissionEntity Permission)
 {
     using (RolePermissionDataAccess RolePermission = new RolePermissionDataAccess()) {
         RolePermission.SaveRolePermission(Permission);
     }
 }