kepweb-multi的奇葩逻辑,没人吐槽这个吗
← 返回列表

当前位置: 作者:Lan · 2026-07-16 04:38:55

#1 Lan · 2026-07-16 04:38:55
stalltrix
最近心血来潮试了试多用户的webui玩玩,刚开始没找到添加用户名与密码的地方,之前单用户程序是直接写在config.json就行。

后来才发现这个实际上是使用userinfo.json这个单独文件来控制用户的。需要先把管理员添加进去。




刚开始这些麻烦也没在意,因为我感觉这些是初始化工作,觉得没什么问题。

但是



最奇葩的事情出现了



我没找到如何添加普通用户的地方,如果每添加一个普通用户都要手动修改userinfo.json的话实在是太麻烦了。于是打扰了一下维护者问了下




然后



竟然告诉我是在解封用户那里。对"不存在的用户"进行解封。就是添加用户了。




我突然被惊醒了,突然意识到什么又去看了下代码逻辑。好家伙,原来 封号=删号,解封=注册。这tm什么鬼逻辑。




这种奇葩逻辑,没人觉得这个逻辑另类吗。这么久了,竟然没人说这个
#2 e · 2026-07-15 15:02:34
stalltrix
一直没用过这个多用户webui,没注意这个细节。不过你想想,封号=删号,解封=注册,从某种角度来说,不也是实现了预期功能了吗
#3 hua · 2026-07-15 15:24:03
stalltrix
你这么说了我也顺便看了下,kepweb-multi竟然使用struct UserInfo来存数据,定期fflush到userinfo.json。这偷懒设计偷到家了。正常来说应该使用关系型数据库SQL之类的来存的啊,而且这个都定位为“多用户系统”了竟然还不上数据库
#4 gege · 2026-07-16 10:22:26
stalltrix
> 封号=删号
>
> 解封=注册

卧槽,这神逻辑太牛逼了,究竟是那个鬼才想到的
#5 星河 · 2026-07-16 11:43:21
stalltrix
特地去看了下代码,确实如楼上所说的,

> 封号=删号

https://github.com/stalltrix/kepweb-multi/blob/1ec082e9b08c6d582b1fe7dcb7261e9d7f7b470e/webserver.go#L1441

封号就是删除UserInfo数据,与删号没有本质区别




> 解封=注册

https://github.com/stalltrix/kepweb-multi/blob/1ec082e9b08c6d582b1fe7dcb7261e9d7f7b470e/webserver.go#L1479

解封也是,如果号不存在,就添加进去。
#6 huaxiong · 2026-07-17 07:36:12
stalltrix
multi-webui就是没啥人维护啊。上次SPA登录页面分开的feat patch实现后,multi-webui这边一直都没人愿意动工移植同步过去。昨天我才找时间把这个feat移植过去。

multi-webui这么奇怪的逻辑这么久才有人反馈就说明了这个问题。如果是webui的逻辑早炸锅了。
#7 skymmap · 2026-07-17 08:32:25
stalltrix
忘了当初是谁写出来的这个了,当初功能需求大于架构设计,没有的东西只要有人写就会采用。别人发给我我来统一commit与发版这种开发流程。

当初就是粗糙比没有好这个态度,只分能跑与不能跑这种区别。kepweb-multi现在确实没啥新功能开发了,都是移植功能等维护状态。如果有人愿意写的话还是可以合的。
#8 帅哥 · 2026-07-17 08:51:43
stalltrix
@e(anvyms) 我也去看了下“封号=删号,解封=注册”这个神逻辑,哈哈虽然太粗糙了,但是实际上可以用啊。并且也符合预期
#9 nobody · 2026-07-17 09:03:12
stalltrix
@skymmap(ev3tup) 看了下应该是内置Map->UserInfo struct改sql数据库实现吧?这个我感觉实现应该不难。正好明天放周末有空可以写一版改sql的实现。整出来给各位看看如何
#10 nobody · 2026-07-18 11:12:43
stalltrix
迁移sql的patch一上午改完了,我测试可用,交给站长应该提交上去了,我的提交是commit cd59b81。大家帮忙看看有没有什么bug?

感觉其实不是很难,只要有思路就能搞。提交git的时候顺便把以前一起开发送的纪念邮箱也用上了


#11 skymmap · 2026-07-18 11:46:15
stalltrix
@nobody(vd3tmz) 代码质量确实挺高的。noman大佬以前一起开发的时候也帮了很多忙。

可惜以前混合并行开发太混乱了。merge冲突太大了,后面只能强行重新合并与手动ctrl+v合并,git贡献记录都没记上去,全变成了团队名字。
#12 下耕 · 2026-07-18 12:15:43
stalltrix
@nobody(vd3tmz) 看了下补丁不愧是大佬,几乎完全重构底层存储的代码只用几百行代码就写出来了。我还以为特别多呢。来到这里后才发现原来大佬们都能用很小的代码撬动巨大的逻辑。

本来想帮你看看的,不过新版本我不会配置,文档也没有。哈哈小白我真搞不来。大佬可以补全一下文档。
#13 nobody · 2026-07-18 12:45:23
stalltrix
@skymmap(ev3tup) 不用太客气,其实并没有多复杂。一起讨论整个系统其实也挺有意思的。

@下耕(yw6qcv) 这个不难,有一个sql.cmd示例,sql直接建表就行。然后INSERT用户
#14 ouplan · 2026-07-18 14:43:16
stalltrix
@nobody(vd3tmz) 帮你测了下没有什么问题。不过感觉缺个用户管理模块,现在普通用户无法自管理,只有管理员才有后台
#15 huaxiong · 2026-07-19 01:12:46
stalltrix
用户自管理模块我感觉不是很复杂,既然noman大佬已经把主要框架写出来了,补上这个应该不难,我写一个beta草稿出来看看。
#16 huaxiong · 2026-07-19 12:18:29
stalltrix
@huaxiong(gmpb75) 我低估了这个用户自管理模块的复杂度了,再加上之前noman大佬写的sql模块也有部分bug,加模块的时候把bug也修了下。草案commit 11206ba我已经提交上去了,基本大致能用但还有少量细节未修补。不过我也不想再搞了,有谁愿意接就继续完善吧。
#17 下耕 · 2026-07-19 12:46:12
stalltrix
@huaxiong(gmpb75) 大佬幸苦了,我看了下大佬写了超过1千行代码了。相比之前其他人更新确实比较多了
#18 huaxiong · 2026-07-19 13:04:43
stalltrix
@下耕(yw6qcv) 不是行数问题,最主要是组件复用问题,要尽可能复用现有组件实现,同时不引入额外依赖。同时还要保存逻辑精简。

如果让AI写的话倒是写的快。不过它会引入一大堆第三方业内标准组件而不是复用项目已有的组件,不注意就给你引入argon2id,jwt,以及各种互斥锁。还会帮你把依赖bug运行的features给"修了"。在不放开额外依赖限制的情况下AI确实不好插手
#19 路人a · 2026-07-19 13:27:12
stalltrix
@huaxiong(gmpb75) 对的,这里有一个依赖bug运行的features,登录的cookie name使用的是“seesion”而不是“session”,我二开的时候试过让AI改功能但它会改掉功能之外的这个写法,然后登录成功也会一直报403。产生新bug
#20 007幽灵 · 2026-07-19 14:31:42
stalltrix
编译试了一下感觉还行啊,不过用户管理模块有点单调了,功能也比较少。也没有入口必须手打URL才能进去
#21 huaxiong · 2026-07-19 14:45:04
stalltrix
哎,技不如人没有办法,当不了noman大佬的水平,别人几行代码就能解决,还能把以前多余遗留逻辑也利用起来。相比之下我感觉自己就是打肿脸充胖子的水平
#22 gege · 2026-07-19 14:55:31
stalltrix
@huaxiong(gmpb75) 老哥不要灰心,其实已经很厉害了,能写出来就已经是前10%水平,不必追求过于完美。你看这里的鸽王还少吗,你往下比一下就开心了😂
#23 skymmap · 2026-07-20 00:25:51
stalltrix
@huaxiong(gmpb75) 辛苦了,其实质量还不错,接下来就由我来接着修补吧
#24 ouplan · 2026-07-20 02:03:53
stalltrix
@huaxiong(gmpb75) 说实话我怎么感觉你在凡尔塞,去除html文件,600行就实现了用户管理模块。这水平还算差😅
#25 nobody · 2026-07-20 11:42:25
stalltrix
看了下用户管理模块的代码已经很好了。可能是在同一个位置折腾的时间太长了导致的烦躁。另外我也并非那么厉害,这个只是一个灵感问题,你灵感来了大概也能写的很好
#26 jjboom · 2026-07-21 04:26:43
stalltrix
最近发版怎么变慢了,我记得以前改一个小功能就要发版的,现在改了这么多了还没有发版
#27 skymmap · 2026-07-21 13:58:24
stalltrix
multiuser 模块剩余未完成的部分修补完了。不过每个人设计思路都不一样,不知道补上的是不是huaxiong之前打算设计的。参考了这帖子后续讨论以及经验大致猜测的缺失部分。

发版先等一下发,可以先自行拉取commit 76a9183编译试试。

注册

或使用第三方注册

登录

没有账号? 立即注册
技术
闲聊
开发
正在提交...