kuaifan
645cb02757
chore(upgrade): Laravel 8 直升 13(旧结构跑通)+ PHP 8.4 + 依赖升级与兼容修复
...
- composer: framework ^13.0、php ^8.3、laravel-s ~3.8.0、predis ^2.3、
phpunit ^11.5、tinker ^3、excel ^3.1.69、captcha ^3.5、avatar ^6.5、
ldaprecord-laravel ^4、pinyin ^5.3、notify 锁 ~1.28.0;
移除 fideloper/proxy、fruitcake/laravel-cors、facade/ignition、
laravel/sail、madnest/madzipper、手动钉的 symfony/mailer;
symfony/console 锁 ^7.4(LaravelS Portal 与 console 8 的
configure(): void 类型断言不兼容)
- $dates 移除:AbstractModel 改 getCasts() 合并默认 datetime 列,
3 个子模型改 $casts
- Carbon 3:4 处 diffInSeconds 补 absolute 参数并取整
- LdapRecord v4:config use_ssl/use_tls→use_tls/use_starttls(env 变量名不变),
LdapUser::$objectClasses 补类型声明
- Madzipper→原生 ZipArchive(Base::zipAddFiles,4 处调用)
- pinyin v5 静态 API(Base::getFirstCharter/cn2pinyin)
- laravolt/avatar 6.5:PatchedAvatar 修上游纵向对齐 bug
(intervention 4.1.3 枚举无 middle),avatar 响应改 response()->file()
- TrustProxies 改框架内置基类,CORS 改 Illuminate\Http\Middleware\HandleCors
- Symfony Console 8 兼容:ManticoreSyncLock::handleSignal 新签名,
pcntl 回调解耦
- 非 Swoole 运行时守卫:AbstractTask::task / PushTask::push /
AbstractData(swoole table),artisan/测试上下文不再炸
Target class [swoole] does not exist
- Laravel 11+ change() 丢修饰符:2023_12_07 与 2025_08_10 迁移重申
nullable/default/comment(修复 fresh 安装)
- Setting/Ihttp 缺键访问加 ?? 守卫(PHP 8 警告在测试中转异常)
- phpunit.xml 迁移 11 schema;UserImportParseTest 改为自建部门数据
验证:8.4 容器内 migrate:fresh --seed 213 全过;php artisan test
145 passed/1 skipped;LaravelS(Swoole 6.2.1) /health 200、登录、
token 认证、WebSocket 握手、Task 投递、头像、图片裁剪冒烟全过
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 19:42:12 +00:00
kuaifan
717e520556
fix(ldap): 修复 AD 环境下用户搜索失败和密码策略冲突
...
- objectClasses 移除 inetOrgPerson 和 organizationalPerson,仅保留 person + top
AD 用户的 objectClass 是 user 而非 inetOrgPerson,导致 LdapRecord 搜索过滤不到用户
- LDAP 用户首次创建本地账号时使用随机密码,避免 LDAP 密码不满足本地密码策略
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 02:05:14 +00:00
kuaifan
1059630b9d
feat(ldap): 支持非邮箱用户名登录,完善 AD 兼容性
...
- 登录页放宽校验:登录模式允许任意账号格式,注册模式仍强制邮箱
- 登录属性新增 userPrincipalName 选项(AD 常用且通常是邮箱格式)
- LDAP 用户缺少邮箱属性时返回明确错误提示,替代误导性的"请输入正确的邮箱地址"
- LDAP 登录合并已有本地账号时记录 info 日志,便于审计
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 11:48:40 +00:00
kuaifan
09edb14d56
fix(ldap): 使用 LDAP Bind 认证替代 userPassword 查询,兼容 Active Directory
...
- 认证方式从 userPassword 属性过滤改为标准 LDAP Bind,兼容所有 LDAP 服务器
- 新增可配置的登录属性(cn/uid/mail/sAMAccountName),AD 用户选 sAMAccountName 即可
- 移除 posixAccount objectClass,兼容 AD 目录结构
- 同步创建用户时移除 POSIX 专属属性,添加 mail 属性
- 用户查找改用 findByEmail 按 mail/cn/uid/userPrincipalName 依次匹配
- initConfig 从静态变量缓存改为 RequestContext 请求级缓存,修复 Swoole 下配置变更不生效的问题
- 默认登录属性为 cn,与旧版本行为一致,确保向后兼容
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 09:18:36 +00:00
kuaifan
71f13a0b50
perf: 支持自定义上传图片压缩质量
2024-12-02 10:40:55 +08:00
kuaifan
7445ac3a39
perf: 优化图片压缩
2024-10-23 15:37:00 +08:00
kuaifan
8ffac1376a
perf: 对webp文件的支持
2023-04-06 10:34:23 +08:00
kuaifan
d2e04843a4
no message
2023-04-03 12:57:32 +08:00
kuaifan
3a9001e091
Upgrade Professional Edition
2023-03-24 09:08:53 +08:00