feat(settings): 个人资料编辑 + 头像上传/裁切 + 自定义裁切弹窗
**新增功能:**
用户名编辑:输入框替换静态文本,白名单验证(中文/英文/数字/下划线/连字符),前端计数器(n/16),utf8对齐PG VARCHAR,XSS防控。
个性签名编辑:Textarea,128字符上限,实时计数器。
头像上传管线:校验→解码→裁切→CatmullRom缩放→WebP二分编码≤100KB→原子写入(.tmp→os.Rename)。限制5MB,128-3840px,JPEG/PNG/WebP。输出512x512 WebP。文件名 {uid}_{timestamp}.webp。清理旧头像。
自定义裁切弹窗:浅色主题,固定裁切框+图片平移/缩放(1×-3×滚轮),box-shadow遮罩,三等分网格。坐标映射pan/zoom→原图像素→subImage。
CSP修复:img-src允许data:URI(FileReader预览)。
**文件变更:**
修改: README, docs/{development,structure}.md, go.{mod,sum}, cmd/server/main.go, controller/settings, middleware/security, router, templates/settings/{index.html,css}
新增: internal/service/avatar_service.go, docs/settings.md
This commit is contained in:
@ -47,7 +47,8 @@ MetaLab 是一个正在开发中的开源技术社区平台,旨在为开发者
|
||||
- ✅ **安全头**——Content-Security-Policy 等安全响应头
|
||||
- ✅ **管理后台**——用户管理、角色权限控制
|
||||
- ✅ **软删除**——用户数据可恢复,登录时自动恢复
|
||||
- ✅ **用户设置页**——个人资料设置
|
||||
- ✅ **用户设置页**——个人资料修改(用户名、个性签名、头像上传与裁切)
|
||||
- ✅ **头像处理**——JPEG/PNG/WebP 上传,方形裁切,512×512 WebP 编码 ≤100KB
|
||||
- ✅ **多主题支持**——可切换的前端主题系统
|
||||
|
||||
## 计划中
|
||||
|
||||
Reference in New Issue
Block a user