关于发布服务以笔记本为单位进行权限控制的前端设计探讨

首先感谢 Zuoqiu-Yingyi 大佬以及 D 大 V 大的贡献,实现了我一年半前的设想( 建议增加只读端口 )。

自发布服务 6 月份上线以来,关于对不同内容进行权限控制的呼声很高,但目前该功能还未进入开发计划。

既然可以针对不同的端口分别设置只读和可编辑权限,那么分别设置公开和私密权限理论上也是可行的。相关的难点之一,可能就是前端如何设计,我这里有一点思路,先看图:

可编辑状态 6806 端口的目录 只读发布服务 6808 端口的目录
image.png image.png
  • 首先,公开权限的设置是以笔记本为单位的,没必要细化到单篇笔记,因为太精细的话一来不好开发,二来用户也不方便管理。
  • 然后,在前端页面,公开笔记本始终排在私密笔记本之上,仅用一条分隔线隔开。这样做的好处,一是用户看着很直观,哪些公开、哪些私密一目了然;二是这样设计,用户除了可以通过右键菜单来修改权限外,还可以直接通过鼠标拖动的方式来调节权限;三是和发布服务的页面保持一致,最上面显示的都是公开笔记本;四是在可编辑状态下,目录从上到下依次是公开笔记本、私密笔记本、已关闭笔记本,越靠上,开放程度越高,给用户一种层层递进的感觉,而且越是私密的内容,越不希望显示在最上面,这也是符合逻辑的。
  • 注意,公开笔记本和私密笔记本属于同一小窗口,共用同一竖向滚动条。对于这一点,我简单地录了个视频,如下。

说完前端,再谈一点点后端。私密笔记本在发布服务的 6808 端口下,除了在目录中屏蔽外,还应该在搜索中屏蔽。至于公开笔记本中可能存在与私密笔记本有关的链接、嵌入块等内容,可以简单粗暴地处理为不予跳转和预览。

Q:为什么不用多个工作空间?
A:维护多个工作空间会分散用户的精力,明明可以用一个工作空间就能搞定的事,为什么要用多个工作空间呢?另外是对于手机用户,APP 不能多开,切换工作空间这一操作简直就是灾难。

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22773 引用 • 91425 回帖 • 2 关注
3 操作
openAI 在 2024-12-01 17:08:35 更新了该帖
openAI 在 2024-12-01 11:39:27 更新了该帖
openAI 在 2024-11-30 10:15:19 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • wilsons 1 赞同

    这样反而实现起来麻烦,不如新建笔记时指定公开或私密,或者默认私密,可在笔记属性里修改为公开。

    然后公开的可以加个公开的标识符。

    排序的话,可增加是否按公开/私密排序。

    1 回复
  • openAI 1 评论

    这样反而实现起来麻烦,不如新建笔记时指定公开或私密,或者默认私密,可在笔记属性里修改为公开。

    我正文里也说了,可以在笔记本的右键菜单中修改权限。并不是一定要实现鼠标拖动的方式来修改。

    然后公开的可以加个公开的标识符。

    有点担心这样会导致标识符滥用,权限控制要表示符,那以后有了新功能是不是也要标识符?标识符其实并不直观,比如用阴影效果代表公开,用户并不能很好地区分,还是要进入笔记本属性才能确认。就算用很直观的方式,在笔记本后面写上“公开”二字(如果是英文的话就是“public”,更长),但由于目录的宽度有限,如果笔记本名字长一点可能就显示不了。另外本来目前笔记本的 icon 就是用户可自定义的,强行征用 icon 用于表示权限可能会导致用户不满。

    排序的话,可增加是否按公开/私密排序。

    既然可以按公开/私密排序,那加一条分隔线也不是什么难事。

    有道理!不过,分割线,如果官方这样加估计会有人会反馈丑吧,标识符,其实一个小点即可,这里仅仅思路并非完全这样,有更优方案可以调整。我觉得应尽量简化方案官方被采纳的可能性才越大,如果能说服 D 大这样做的必要性可能性就更大了。
    wilsons
  • 不过,分割线,如果官方这样加估计会有人会反馈丑吧

    不开启发布服务,不显示分隔线即可。或者更简单一点,用户不设置任何私密笔记本就没有分隔线。并不是每个用户都会用到发布服务。

    1 操作
    openAI 在 2024-11-30 14:36:25 更新了该回帖
  • 过两年再讨论吧 trollface

    1 回复
  • huaji 不如期待一下 enhance 的发布模式

    期待
    openAI
    @openAI 可能要明年了,今年剩下的一个月,大概率都是折腾白板。
    Wetoria
  • visduo

    不如自建分享服务 https://docs-share.07tb.com/

  • 如果要实现用鼠标拖动的方式来更改公开权限,可以考虑后端这样设计:

    将分割线看做一个虚拟笔记本,序号大于分隔线的,视作私密笔记本。

  • 过两年再讨论吧 trollface

    行,过两年连同这个问题( 希望发布服务添加导出开关 )我再提一次。

  • 还有一个不成熟的想法。就是在分享链接时,可能面对不同的群体,需要展示不同的内容。这时候,就需要用多个端口来控制内容的展示。可以这样,假设有 n 个笔记本,m 类读者群体,那就设 m 个端口,笔记本与端口之间是 n 对 m 的映射关系。也就是说某个笔记本可以指定 0 个、1 个或多个端口,相应地,某个端口也可以对应 1 个或多个笔记本。若给笔记本指定了至少 1 个端口,则将其视为公开笔记本,否则视为私密笔记本。

请输入回帖内容 ...

推荐标签 标签

  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖 • 1 关注
  • 书籍

    宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

    78 引用 • 391 回帖
  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 626 关注
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    312 引用 • 546 回帖
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖 • 1 关注
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖 • 5 关注
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 22 关注
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    730 引用 • 1328 回帖
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 636 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 720 关注
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    107 引用 • 153 回帖
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 488 关注
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 473 关注
  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    265 引用 • 666 回帖 • 2 关注
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    155 引用 • 3790 回帖
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 743 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖 • 2 关注
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖
  • 百度

    百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。

    63 引用 • 785 回帖 • 171 关注
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    17 引用 • 53 回帖 • 142 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    50 引用 • 25 回帖 • 1 关注
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 1 关注
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    126 引用 • 169 回帖
  • Netty

    Netty 是一个基于 NIO 的客户端-服务器编程框架,使用 Netty 可以让你快速、简单地开发出一个可维护、高性能的网络应用,例如实现了某种协议的客户、服务端应用。

    49 引用 • 33 回帖 • 24 关注
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    166 引用 • 595 回帖
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 99 关注