Ejemplo n.º 1
0
        public IActionResult GetNotChildrenByNotebookId(string token, string notebookId)
        {
            var apiRe = new ApiRe();

            var user = tokenSerivce.GetUserByToken(token);

            if (user != null)
            {
                //var repository = noteRepositoryService.GetNotesRepository(repositoryId.ToLongByHex());

                //var memerRole = noteRepositoryService.GetRepositoryMemberRole(repositoryId.ToLongByHex());

                var book = notebookService.GetNotebookById(notebookId.ToLongByHex());
                if (book == null)
                {
                    return(LeanoteJson(apiRe));
                }
                //检查用户是否对仓库具有读权限
                if (noteRepositoryService.Verify(book.NotesRepositoryId, user.UserId, RepositoryAuthorityEnum.Read))
                {
                    var notes = noteService.GetNotChildrenByNotebookId(notebookId.ToLongByHex());
                    apiRe.Ok   = true;
                    apiRe.Data = notes;
                }
            }
            return(LeanoteJson(apiRe));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> DeleteNoteRepository(string token, string noteRepositoryId, string dataSignJson)
        {
            var verify = false;
            var user   = tokenSerivce.GetUserByToken(token);
            var re     = new ApiRe()
            {
                Ok   = false,
                Data = null
            };

            if (user == null)
            {
                return(LeanoteJson(re));
            }

            if (this.config.SecurityConfig.ForceDigitalSignature)
            {
                //验证签名
                var dataSign = DataSignDTO.FromJSON(dataSignJson);
                verify = await this.ePassService.VerifyDataSign(dataSign);

                if (!verify)
                {
                    return(LeanoteJson(re));
                }
                verify = dataSign.SignData.Operate.Equals("/api/NotesRepository/DeleteNoteRepository");
                if (!verify)
                {
                    re.Msg = "Operate is not Equals ";
                    return(LeanoteJson(re));
                }
                //签名存证
                this.dataSignService.AddDataSign(dataSign, "DeleteNoteRepository");
            }

            verify = noteRepositoryService.Verify(noteRepositoryId.ToLongByHex(), user.UserId, RepositoryAuthorityEnum.DeleteRepository);
            if (!verify)
            {
                return(LeanoteJson(re));
            }

            this.noteRepositoryService.DeleteNoteRepository(noteRepositoryId.ToLongByHex());
            re.Ok = true;
            return(LeanoteJson(re));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> DeleteNotebook(string token, string noteRepositoryId, string notebookId, bool recursively, bool force, string dataSignJson)
        {
            User  user   = tokenSerivce.GetUserByToken(token);
            var   verify = false;
            ApiRe re     = new ApiRe()
            {
                Ok  = false,
                Msg = "NOTLOGIN",
            };

            if (user == null)
            {
                re.Msg = "NOTLOGIN";
                return(LeanoteJson(re));
            }
            if (this.config.SecurityConfig.ForceDigitalSignature)
            {
                //验证签名
                var dataSign = DataSignDTO.FromJSON(dataSignJson);
                verify = await this.ePassService.VerifyDataSign(dataSign);

                if (!verify)
                {
                    return(LeanoteJson(re));
                }
                verify = dataSign.SignData.Operate.Equals("/api/Notebook/DeleteNotebook");
                if (!verify)
                {
                    re.Msg = "Operate is not Equals ";
                    return(LeanoteJson(re));
                }
                //签名存证
                this.dataSignService.AddDataSign(dataSign, "DeleteNotebook");
            }

            var message      = "";
            var notebook     = notebookService.GetNotebookById(notebookId.ToLongByHex());
            var repositoryId = notebook.NotesRepositoryId;

            if (repositoryId != noteRepositoryId.ToLongByHex())
            {
                return(LeanoteJson(re));
            }
            //鉴别用户是否有权限
            verify = noteRepositoryService.Verify(repositoryId, user.UserId, RepositoryAuthorityEnum.Write);
            if (verify == false)
            {
                return(LeanoteJson(re));
            }
            //增加usn
            var usn = noteRepositoryService.IncrUsn(repositoryId);

            if (recursively)
            {
                re.Ok = notebookService.DeleteNotebookRecursively(notebookId.ToLongByHex(), usn);
            }
            else
            {
                re.Ok = notebookService.DeleteNotebook(notebookId.ToLongByHex(), usn);
            }

            return(LeanoteJson(re));
        }