Example #1
0
        public async Task <ApiResult <List <TreeListSysRoleDto> > > GetRoleTreeList(string Id)
        {
            ApiResult <List <TreeListSysRoleDto> > res = new ApiResult <List <TreeListSysRoleDto> >();

            res.data = new List <TreeListSysRoleDto>();
            TokenModelBeta token = JwtToken.ParsingJwtToken(HttpContext);

            try
            {
                var RoleList = _mapper.Map <List <TreeListSysRoleDto> >(await _sysRoleService.QueryAsync(s => s.OrganizeId == Id));

                var sysRole = new List <TreeListSysRoleDto>();
                sysRole.AddRange(RoleList);

                //如果不是管理员
                if (!token.IsAdmin)
                {
                    var sysRoleInfo = sysRole.Where(s => s.key == token.Role).FirstOrDefault();
                    sysRoleInfo.children = new List <TreeListSysRoleDto>();
                    sysRoleInfo.children.AddRange(TreeGenerateTools.TreeGroup(RoleList.Where(s => s.key != sysRoleInfo.key).ToList(), sysRoleInfo.key));
                    res.data.Add(sysRoleInfo);
                }
                else
                {
                    res.data.AddRange(TreeGenerateTools.TreeGroup(RoleList, "00000000-0000-0000-0000-000000000000"));
                }
            }
            catch (Exception ex)
            {
                res.code    = (int)ApiEnum.Error;
                res.message = "异常:" + ex.Message;
            }
            return(await Task.Run(() => res));
        }
Example #2
0
        public async Task <ApiResult <string> > Put(string Id, EditSysRoleDto Params)
        {
            ApiResult <string> res   = new ApiResult <string>();
            TokenModelBeta     token = JwtToken.ParsingJwtToken(HttpContext);

            try
            {
                SysRole sysRoleInfo = _mapper.Map <SysRole>(Params);
                sysRoleInfo.Id = Id;
                var IsSuccess = await _sysRoleService.UpdateAsync(sysRoleInfo);

                if (!IsSuccess)
                {
                    res.code    = (int)ApiEnum.Failure;
                    res.message = "错误:修改角色失败";
                }
                else
                {
                    //添加权限
                    //Params.treeModels
                    res = await _sysRoleAuthorizeService.AddSysModuleActionsAsync(Id, token.Id, Params.treeModels);
                }
            }
            catch (Exception ex)
            {
                res.code    = (int)ApiEnum.Error;
                res.message = "异常:" + ex.Message;
            }

            return(await Task.Run(() => res));
        }
Example #3
0
        public async Task <ApiResult <string> > Post(EditSysUserDto Params)
        {
            ApiResult <string> res   = new ApiResult <string>();
            TokenModelBeta     token = JwtToken.ParsingJwtToken(HttpContext);

            //开启事务
            try {
                SysUser userInfo = _mapper.Map <SysUser>(Params);
                userInfo.Id          = Guid.NewGuid().ToString();
                userInfo.CreatorTime = DateTime.Now;
                userInfo.CreatorId   = token.Id;
                await _userService.AddAsync(userInfo);

                SysUserLogon userLogonInfo = _mapper.Map <SysUserLogon>(Params);
                userLogonInfo.Id               = Guid.NewGuid().ToString();
                userLogonInfo.UserId           = userInfo.Id;
                userLogonInfo.LogOnCount       = 0;
                userLogonInfo.UserSecretkey    = Md5Crypt.Encrypt(Guid.NewGuid().ToString());
                userLogonInfo.UserPassword     = Md5Crypt.Encrypt(DES3Encrypt.EncryptString(userLogonInfo.UserPassword.ToLower(), userLogonInfo.UserSecretkey).ToLower(), false).ToLower();
                userLogonInfo.PasswordSecurity = UniversalTool.PassSecurityValidation(userLogonInfo.UserPassword);
                await _userLogonService.AddAsync(userLogonInfo);
            }
            catch (Exception ex) {
                res.code    = (int)ApiEnum.Error;
                res.message = "异常:" + ex.Message;
            }

            //事务结束


            return(await Task.Run(() => res));
        }
Example #4
0
        public async Task <ApiResult <string> > Post(EditSysOrganizeDto Params)
        {
            ApiResult <string> res   = new ApiResult <string>();
            TokenModelBeta     token = JwtToken.ParsingJwtToken(HttpContext);


            try
            {
                SysOrganize sysOrganizeInfo = _mapper.Map <SysOrganize>(Params);
                sysOrganizeInfo.CreatorTime   = DateTime.Now;
                sysOrganizeInfo.CreatorUserId = token.Id;
                sysOrganizeInfo.Id            = Guid.NewGuid().ToString();
                sysOrganizeInfo.DeleteMark    = false;
                var IsSuccess = await _sysOrganizeService.AddAsync(sysOrganizeInfo);

                if (!IsSuccess)
                {
                    res.code    = (int)ApiEnum.Failure;
                    res.message = "错误:添加组织失败";
                }
            }
            catch (Exception ex)
            {
                res.code    = (int)ApiEnum.Error;
                res.message = "异常:" + ex.Message;
            }
            return(await Task.Run(() => res));
        }
Example #5
0
        public async Task <ApiResult <LoginSysUserDto> > Post()
        {
            ApiResult <LoginSysUserDto> res = new ApiResult <LoginSysUserDto>();

            res.data = new LoginSysUserDto();
            try
            {
                TokenModelBeta token = JwtToken.ParsingJwtToken(HttpContext);
                //获取用户信息
                string ExpirationTime = DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString();

                var claims = new List <Claim> {
                    new Claim(JwtRegisteredClaimNames.Jti, token.Id),
                    new Claim(ClaimTypes.Name, token.Name),
                    new Claim(ClaimTypes.Gender, "Web"),
                    new Claim(ClaimTypes.GroupSid, token.Organize),
                    new Claim(ClaimTypes.Authentication, token.IsAdmin == true ? "1" : "0"),
                    new Claim(ClaimTypes.Expiration, ExpirationTime)
                };
                claims.Add(new Claim(ClaimTypes.Role, token.Role));
                //用户标识
                var identity = new ClaimsIdentity(JwtBearerDefaults.AuthenticationScheme);
                identity.AddClaims(claims);
                res.data.token   = JwtToken.BuildJwtToken(claims.ToArray(), _requirement).token;
                res.data.expires = ExpirationTime;
            }
            catch (Exception ex)
            {
                res.code    = (int)ApiEnum.Failure;
                res.message = "刷新Token失败";
            }


            return(res);
        }
Example #6
0
        public async Task <ApiResult <List <TreeListSysOrganizeDto> > > GetOrganizeTreeList()
        {
            ApiResult <List <TreeListSysOrganizeDto> > res = new ApiResult <List <TreeListSysOrganizeDto> >();

            res.data = new List <TreeListSysOrganizeDto>();
            TokenModelBeta token = JwtToken.ParsingJwtToken(HttpContext);

            try
            {
                var OrganizeList = _mapper.Map <List <TreeListSysOrganizeDto> >(await _sysOrganizeService.QueryAsync());

                List <TreeListSysOrganizeDto> TreeList = new List <TreeListSysOrganizeDto>();
                TreeList.AddRange(OrganizeList.FindAll(s => s.key == token.Organize));
                foreach (var item in TreeList)
                {
                    item.children = new List <TreeListSysOrganizeDto>();
                    item.children.AddRange(TreeGenerateTools.TreeGroup(OrganizeList.Where(s => s.key == item.key).ToList(), item.key));
                    res.data.Add(item);
                }
            }
            catch (Exception ex)
            {
                res.code    = (int)ApiEnum.Error;
                res.message = "异常:" + ex.Message;
            }
            return(await Task.Run(() => res));
        }
Example #7
0
        public async Task <ApiResult <string> > Put(string Id, EditSysOrganizeDto Params)
        {
            ApiResult <string> res   = new ApiResult <string>();
            TokenModelBeta     token = JwtToken.ParsingJwtToken(HttpContext);

            try
            {
                SysOrganize sysOrganizeInfo = _mapper.Map <SysOrganize>(Params);
                sysOrganizeInfo.Id = Id;
                var IsSuccess = await _sysOrganizeService.UpdateAsync(sysOrganizeInfo);

                if (!IsSuccess)
                {
                    res.code    = (int)ApiEnum.Failure;
                    res.message = "错误:修改组织失败";
                }
            }
            catch (Exception ex)
            {
                res.code    = (int)ApiEnum.Error;
                res.message = "异常:" + ex.Message;
            }

            return(await Task.Run(() => res));
        }
Example #8
0
        static async Task Acceptor(HttpContext context, Func <Task> n)
        {
            if (!context.WebSockets.IsWebSocketRequest)
            {
                return;
            }
            CancellationToken ct = context.RequestAborted;

            socket = await context.WebSockets.AcceptWebSocketAsync();

            TokenModelBeta tokenModel = JwtToken.SerializeJWT(context.Request.Query["Authorization"].ToString());

            //处理用户连接
            //添加Socket进集合 存在就取出 不存在就加入
            if (!_sockets.ContainsKey(tokenModel.Id))
            {
                _sockets.TryAdd(tokenModel.Id, socket);
            }
            else
            {
                if (_sockets[tokenModel.Id] != socket)
                {
                    _sockets[tokenModel.Id] = socket;
                }
            }

            //处理消息
            await EchoLoop(tokenModel.Id, ct);
        }
Example #9
0
        public async Task <ApiResult <string> > Upload(IFormCollection Files, int FileType)
        {
            ApiResult <string> res   = new ApiResult <string>();
            TokenModelBeta     token = JwtToken.ParsingJwtToken(HttpContext);

            try
            {
                //var form = Request.Form;//直接从表单里面获取文件名不需要参数
                string              dd   = Files["File"];
                var                 form = Files;//定义接收类型的参数
                Hashtable           hash = new Hashtable();
                IFormFileCollection cols = Request.Form.Files;
                if (cols == null || cols.Count == 0)
                {
                    res.code    = (int)ApiEnum.Failure;
                    res.message = "没有上传文件";
                    return(res);
                }
                foreach (IFormFile file in cols)
                {
                    //定义图片数组后缀格式
                    string[] LimitPictureType = { ".JPG", ".JPEG", ".GIF", ".PNG", ".BMP" };
                    //获取图片后缀是否存在数组中
                    string currentPictureExtension = Path.GetExtension(file.FileName).ToUpper();
                    if (LimitPictureType.Contains(currentPictureExtension))
                    {
                        string new_path = "";
                        switch (FileType)
                        {
                        case 0:
                            new_path = Path.Combine("Uploads/HeadImage/", token.Id + DateTime.Now.ToString("yyyy-mm-ddhhddss") + ".JPG");
                            break;
                        }

                        var path = Path.Combine(Directory.GetCurrentDirectory(), new_path);
                        using (var stream = new FileStream(path, FileMode.Create))
                        {
                            //再把文件保存的文件夹中
                            file.CopyTo(stream);
                            hash.Add("file", "/" + new_path);
                            res.data = new_path;
                        }
                    }
                    else
                    {
                        res.code    = (int)ApiEnum.Failure;
                        res.message = "请上传指定格式的图片";
                        return(res);
                    }
                }
                return(res);
            }
            catch (Exception ex)
            {
                res.code    = (int)ApiEnum.Failure;
                res.message = "上传失败";
                return(res);
            }
        }
Example #10
0
        public async Task <ApiResult <DetailsSysUserDto> > GetTokenUserDetails()
        {
            ApiResult <DetailsSysUserDto> res = new ApiResult <DetailsSysUserDto>();
            TokenModelBeta token = JwtToken.ParsingJwtToken(HttpContext);

            res.data = _mapper.Map <DetailsSysUserDto>(await _userService.QueryAsyncById(token.Id));
            return(await Task.Run(() => res));
        }
Example #11
0
        public async Task <ApiResult <DetailsSysOrganizeDto> > Get(string Id)
        {
            ApiResult <DetailsSysOrganizeDto> res = new ApiResult <DetailsSysOrganizeDto>();
            TokenModelBeta token = JwtToken.ParsingJwtToken(HttpContext);

            try
            {
                res.data = _mapper.Map <DetailsSysOrganizeDto>(await _sysOrganizeService.QuerySysOrganizeByIDAsync(Id));
            }
            catch (Exception ex)
            {
                res.code    = (int)ApiEnum.Error;
                res.message = "异常:" + ex.Message;
            }

            return(await Task.Run(() => res));
        }
Example #12
0
        public async Task <ApiResult <string> > Post(EditSysModuleDto Params)
        {
            ApiResult <string> res   = new ApiResult <string>();
            TokenModelBeta     token = JwtToken.ParsingJwtToken(HttpContext);

            try {
                //添加模块
                SysModule sysModuleInfo = _mapper.Map <SysModule>(Params);
                sysModuleInfo.CreatorTime   = DateTime.Now;
                sysModuleInfo.CreatorUserId = token.Id;
                sysModuleInfo.Id            = Guid.NewGuid().ToString();
                sysModuleInfo.DeleteMark    = false;
                var IsSuccess = await _sysModuleService.AddAsync(sysModuleInfo);

                if (!IsSuccess)
                {
                    res.code    = (int)ApiEnum.Failure;
                    res.message = "错误:添加模块失败";
                }

                //添加模块请求
                List <SysModuleAction> AddsysModuleActionList = _mapper.Map <List <SysModuleAction> >(Params.SysModuleActionDtos.Where(s => s.Id == null));
                if (AddsysModuleActionList.Count() > 0)
                {
                    foreach (var item in AddsysModuleActionList)
                    {
                        item.Id            = Guid.NewGuid().ToString();
                        item.ModuleId      = sysModuleInfo.Id;
                        item.CreatorTime   = DateTime.Now;
                        item.CreatorUserId = token.Id;
                    }
                    IsSuccess = await _sysModuleActionService.AddListAsync(AddsysModuleActionList);

                    if (!IsSuccess)
                    {
                        res.code    = (int)ApiEnum.Failure;
                        res.message = "错误:添加模块失败";
                    }
                }
            } catch (Exception ex) {
                res.code    = (int)ApiEnum.Error;
                res.message = "异常:" + ex.Message;
            }

            return(await Task.Run(() => res));
        }
Example #13
0
        public async Task <ApiResult <List <TreeListSysModuleDto> > > GetModuleTreeList()
        {
            ApiResult <List <TreeListSysModuleDto> > res = new ApiResult <List <TreeListSysModuleDto> >();
            TokenModelBeta token = JwtToken.ParsingJwtToken(HttpContext);


            try {
                var ModuleList = await _sysModuleService.QueryAsync(s => s.DeleteMark == false && s.EnabledMark == true);

                res.data = TreeGenerateTools.TreeGroup(_mapper.Map <List <TreeListSysModuleDto> >(ModuleList), "00000000-0000-0000-0000-000000000000");
            }
            catch (Exception ex) {
                res.code    = (int)ApiEnum.Error;
                res.message = "异常:" + ex.Message;
            }

            return(await Task.Run(() => res));
        }
Example #14
0
        public async Task <ApiResult <DetailsSysRoleDto> > Get(string Id)
        {
            ApiResult <DetailsSysRoleDto> res = new ApiResult <DetailsSysRoleDto>();
            TokenModelBeta token = JwtToken.ParsingJwtToken(HttpContext);

            try {
                res.data = _mapper.Map <DetailsSysRoleDto>(await _sysRoleService.QuerySysModuleByIdAndUserIdAsync(Id, token.Id));
                if (token.Role == Id)
                {
                    res.data.IsDisabled = true;
                }
            } catch (Exception ex) {
                res.code    = (int)ApiEnum.Error;
                res.message = "异常:" + ex.Message;
            }

            return(await Task.Run(() => res));
        }
Example #15
0
        static async Task Acceptor(HttpContext context, Func <Task> n)
        {
            if (!context.WebSockets.IsWebSocketRequest)
            {
                return;
            }


            CancellationToken ct = context.RequestAborted;

            socket = await context.WebSockets.AcceptWebSocketAsync();

            TokenModelBeta tokenModel = JwtToken.SerializeJWT(context.Request.Query["Authorization"].ToString());

            //处理用户连接
            //添加Socket进集合 存在就取出 不存在就加入
            if (!_sockets.ContainsKey(tokenModel.Id))
            {
                //用户第一次连接上来 给一个欢迎消息
                _sockets.TryAdd(tokenModel.Id, socket);
                NoticetemplateModule msg = new NoticetemplateModule();
                msg.id              = "0";
                msg.title           = "欢迎使用";
                msg.read            = false;
                msg.status          = "doing";
                msg.type            = "通知";
                msg.description     = "已成功连接WebSocket";
                msg.avatar          = "";
                msg.creatorUserName = "******";
                msg.datetime        = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                msg.RecriverId      = tokenModel.Id;
                await SendStringAsync(socket, JsonConvert.SerializeObject(msg));
            }
            else
            {
                if (_sockets[tokenModel.Id] != socket)
                {
                    _sockets[tokenModel.Id] = socket;
                }
            }

            //处理消息
            await EchoLoop(tokenModel.Id, ct);
        }
Example #16
0
        public async Task <ApiResult <List <CommonTreeModel> > > GetModuleTreeAuthList(string Id)
        {
            ApiResult <List <CommonTreeModel> > res = new ApiResult <List <CommonTreeModel> >();

            res.data = new List <CommonTreeModel>();
            TokenModelBeta token = JwtToken.ParsingJwtToken(HttpContext);

            try
            {
                //获取可以看到的 模块
                var ModuleList = await _sysRoleAuthorizeService.GetRoleModuleByIdAsync(token.Role);

                if (ModuleList.Count > 0)
                {
                    //查询这个角色是否是菜单
                    var role = await _sysRoleService.QueryByIDAsync(Id);

                    //如果不是菜单
                    if (!string.IsNullOrEmpty(Id) && !UniversalTool.ModuleIsNull(role))
                    {
                        //获取传入角色的权限信息
                        List <string> roleKeyList = (await _sysRoleAuthorizeService.GetRoleModuleByIdAsync(Id)).Select(s => s.key).ToList();
                        ModuleList.Where(a => roleKeyList.Contains(a.key) && a.type == 1).ToList().ForEach(a => a.@checked = true);
                        //如果打开的是自己的就禁用
                        if (Id == token.Role)
                        {
                            ModuleList.ForEach(a => a.disableCheckbox = true);
                        }
                    }

                    res.data.AddRange(TreeGenerateTools.TreeGroup(ModuleList, "00000000-0000-0000-0000-000000000000"));
                }
            }
            catch (Exception ex)
            {
                res.code    = (int)ApiEnum.Error;
                res.message = "异常:" + ex.Message;
            }

            return(await Task.Run(() => res));
        }
Example #17
0
        public async Task <ApiResult <AppInitSysUserDto> > Get()
        {
            ApiResult <AppInitSysUserDto> res = new ApiResult <AppInitSysUserDto>();
            TokenModelBeta token = JwtToken.ParsingJwtToken(HttpContext);

            //获取用户信息

            try
            {
                res.data = _mapper.Map <AppInitSysUserDto>(await _userService.QueryAsyncById(token.Id));


                var moduleList = _mapper.Map <List <MenuSysModuleDto> >(await _sysModuleService.QuerySysModuleByRolrIdAsync(token.Role));
                //var oduleList =  _mapper.Map<List<MenuSysModuleDto>>(await _sysModuleService.QueryAsync(s=>s.EnabledMark == true && s.DeleteMark == false))
                res.data.moduleDtos = MenuGenerateTools.MenuGroup(moduleList, "00000000-0000-0000-0000-000000000000");
            }
            catch (Exception ex) {
                res.code    = (int)ApiEnum.Error;
                res.message = "异常:" + ex.Message;
            }

            return(await Task.Run(() => res));
        }
Example #18
0
        public async Task <ApiResult <string> > Delete(string Id)
        {
            ApiResult <string> res   = new ApiResult <string>();
            TokenModelBeta     token = JwtToken.ParsingJwtToken(HttpContext);

            try
            {
                var IsSuccess = await _sysRoleService.DeleteAsync(s => s.Id == Id);

                if (!IsSuccess)
                {
                    res.code    = (int)ApiEnum.Failure;
                    res.message = "错误:删除角色失败";
                }
            }
            catch (Exception ex)
            {
                res.code    = (int)ApiEnum.Error;
                res.message = "异常:" + ex.Message;
            }

            return(await Task.Run(() => res));
        }
Example #19
0
        public async Task <ApiResult <string> > Put(string Id, EditSysModuleDto Params)
        {
            ApiResult <string> res   = new ApiResult <string>();
            TokenModelBeta     token = JwtToken.ParsingJwtToken(HttpContext);

            try
            {
                //添加模块
                SysModule sysModuleInfo = _mapper.Map <SysModule>(Params);
                sysModuleInfo.Id = Id;
                var IsSuccess = await _sysModuleService.UpdateAsync(sysModuleInfo);

                if (!IsSuccess)
                {
                    res.code    = (int)ApiEnum.Failure;
                    res.message = "错误:修改模块失败";
                }

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

                //修改模块数据
                List <SysModuleAction> EditsysModuleActionList = _mapper.Map <List <SysModuleAction> >(Params.SysModuleActionDtos.Where(s => s.Id != null));
                if (EditsysModuleActionList.Count() > 0)
                {
                    IsSuccess = await _sysModuleActionService.UpdateListAsync(EditsysModuleActionList);

                    if (!IsSuccess)
                    {
                        res.code    = (int)ApiEnum.Failure;
                        res.message = "错误:修改模块失败";
                    }
                    ModuleIds.AddRange(EditsysModuleActionList.Select(s => s.Id).ToList());
                }


                //添加模块请求
                List <SysModuleAction> AddsysModuleActionList = _mapper.Map <List <SysModuleAction> >(Params.SysModuleActionDtos.Where(s => s.Id == null));
                if (AddsysModuleActionList.Count() > 0)
                {
                    foreach (var item in AddsysModuleActionList)
                    {
                        item.Id            = Guid.NewGuid().ToString();
                        item.ModuleId      = sysModuleInfo.Id;
                        item.CreatorTime   = DateTime.Now;
                        item.CreatorUserId = token.Id;
                    }
                    IsSuccess = await _sysModuleActionService.AddListAsync(AddsysModuleActionList);

                    if (!IsSuccess)
                    {
                        res.code    = (int)ApiEnum.Failure;
                        res.message = "错误:添加模块失败";
                    }
                    ModuleIds.AddRange(AddsysModuleActionList.Select(s => s.Id).ToList());
                }

                //删除不存在的模块请求
                await _sysModuleActionService.DeleteAsync(s => s.ModuleId == sysModuleInfo.Id && !ModuleIds.Contains(s.Id));
            }
            catch (Exception ex) {
                res.code    = (int)ApiEnum.Error;
                res.message = "异常:" + ex.Message;
            }

            return(await Task.Run(() => res));
        }