Commit Graph

5392 Commits (77548ec5a7f6cf69529d9f7f5be8e4754cedac68)

Author SHA1 Message Date
Nancy 77548ec5a7
feat: add name existence check before creating attachment group and storage policy (#6959)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.20.x

#### What this PR does / why we need it:

在创建附件分组或者存储策略时,支持检查是否有已存在的名称。

#### Which issue(s) this PR fixes:

Fixes #6946

#### Special notes for your reviewer:

#### Does this PR introduce a user-facing change?

```release-note
在创建附件分组或者存储策略时,支持检查是否有已存在的名称。
```
2024-10-30 03:30:38 +00:00
Ryan Wang fdc90aff5c
fix: prevent undefined key name when creating Secret (#6964)
#### What type of PR is this?

/area ui
/kind bug
/milestone 2.20.x

#### What this PR does / why we need it:

修复使用 Secret 输入框创建 Secret 时,stringData 的 key 可能为 undefined 的问题。

#### Which issue(s) this PR fixes:

See https://github.com/halo-sigs/plugin-alist/issues/23#issuecomment-2443499980 for more

#### Special notes for your reviewer:

#### Does this PR introduce a user-facing change?

```release-note
修复使用 Secret 输入框创建 Secret 时,stringData 的 key 可能为 undefined 的问题。
```
2024-10-29 15:50:13 +00:00
John Niang 25086ee3e6
Rearrange order of security configurers (#6939)
#### What type of PR is this?

/kind improvement
/area core
/milestone 2.20.x

#### What this PR does / why we need it:

This PR rearranges order of security configurers. Especially, SecurityWebFiltersConfigurer has lower priority to configure than other security configurers.

So we can catch internal authentication in plugins.

#### Does this PR introduce a user-facing change?

```release-note
None
```
2024-10-27 10:02:01 +00:00
Nancy d44fa5f6d8
feat: add support for creating a new group when uploading attachments (#6951)
#### What type of PR is this?

/kind improvement
/area ui
/milestone 2.20.x

#### What this PR does / why we need it:

支持在附件上传界面创建新分组。

#### Which issue(s) this PR fixes:

Fixes #6942 

#### Special notes for your reviewer:

#### Does this PR introduce a user-facing change?

```release-note
支持在附件上传界面创建新分组。
```
2024-10-27 09:52:01 +00:00
LuijpCN 65808c8c6f
feat: add supports for displaying jpeg icon in attachments list (#6956)
#### What type of PR is this?

/kind improvement


#### What this PR does / why we need it:

在附件,列表模式中,为 jpeg 后缀文件添加图标。

#### Which issue(s) this PR fixes:

Fixes #

#### Special notes for your reviewer:

#### Does this PR introduce a user-facing change?


```release-note
为 jpeg 后缀文件添加图标
```
2024-10-27 08:26:01 +00:00
John Niang edfb230008
Upgrade to Spring Boot 3.4.0-RC1 (#6952)
#### What type of PR is this?

/kind improvement
/area core
/milestone 2.20.x

#### What this PR does / why we need it:

This PR upgrades to Spring Boot [3.4.0-RC1](https://github.com/spring-projects/spring-boot/releases/tag/v3.4.0-RC1).

#### Does this PR introduce a user-facing change?

```release-note
升级 Spring Boot 至 3.4.0-RC1
```
2024-10-27 03:52:01 +00:00
John Niang a0b352ac2d
Support hooking user creation (#6945)
#### What type of PR is this?

/kind feature
/area core
/milestone 2.20.x

#### What this PR does / why we need it:

This PR adds support for hooking user creating. Plugin developers can define extension points of `UserPreCreatingHandler` and `UserPostCreatingHandler` to do something else.

#### Does this PR introduce a user-facing change?

```release-note
支持在插件中定义用户创建的前置和后置处理器
```
2024-10-25 07:55:54 +00:00
John Niang 180b6b2b87
Update version to 2.20.8-SNAPSHOT (#6940) 2024-10-25 12:49:32 +08:00
guqing 17e9f2be1f
fix: leading zeroes incorrect for index key comparator (#6934)
#### What type of PR is this?
/kind bug
/area core
/milestone 2.20.x

#### What this PR does / why we need it:
修复索引比较会因为全是 0 的字符串与其他字符串可能相等的问题

原因是遇到了全是 0 的字符串会因为跳过前导 0 的逻辑导致全部忽略了

#### Does this PR introduce a user-facing change?
```release-note
None
```
2024-10-23 12:32:20 +00:00
guqing 2c234ab3eb
fix: prioritize login page route to prevent single page override (#6926)
#### What type of PR is this?
/kind bug
/area core
/milestone 2.20.x

#### What this PR does / why we need it:
修复登录页面路由会被自定义页面覆盖导致无法登录的问题

#### Which issue(s) this PR fixes:
Fixes #6893

#### Does this PR introduce a user-facing change?
```release-note
修复登录页面路由会被自定义页面路由覆盖导致无法登录的问题
```
2024-10-23 08:42:20 +00:00
guqing 17ec34c75e
fix: ignore conversion exceptions for plugin configuration to prevent program errors (#6924)
#### What type of PR is this?
/kind bug
/area plugin
/milestone 2.20.x

#### What this PR does / why we need it:
修复插件配置可能因为缺少校验导致使用时类型转换失败从而影响 Halo 使用的问题

#### Which issue(s) this PR fixes:
Fixes #6899

#### Does this PR introduce a user-facing change?
```release-note
修复插件配置可能因为缺少校验导致使用时类型转换失败从而影响 Halo 使用的问题
```
2024-10-23 08:40:20 +00:00
guqing fae03d4a5b
fix: missing deleted index in list method of single page finder (#6922)
#### What type of PR is this?
/kind bug
/area core
/milestone 2.20.x

#### What this PR does / why we need it:
修复使用 `singlePageFinder.list()` 时会提示缺少 spec.deleted 索引的问题

#### Which issue(s) this PR fixes:
Fixes #6919

#### Does this PR introduce a user-facing change?
```release-note
修复使用 `singlePageFinder.list()` 时会提示缺少 spec.deleted 索引的问题
```
2024-10-23 08:38:20 +00:00
guqing 7cc3dfa0a0
fix: remove httpOnly from language cookie to allow JS to access current language (#6933)
#### What type of PR is this?
/kind bug
/area core
/milestone 2.20.x

#### What this PR does / why we need it:
修复登录时切换了其他语言但是登录成功后始终显示中文的问题

此问题为 https://github.com/halo-dev/halo/pull/6891 导致

#### Does this PR introduce a user-facing change?
```release-note
修复登录时切换了其他语言但是登录成功后始终显示中文的问题
```
2024-10-23 03:34:17 +00:00
John Niang aeaa47f6c4
Configure registry while login to Fit2Cloud Docker Registry (#6925)
Signed-off-by: JohnNiang <johnniang@foxmail.com>
2024-10-22 18:25:40 +08:00
Ryan Wang c8a8ac1b57
chore: update action.yaml (#6923) 2024-10-22 18:05:00 +08:00
John Niang 7e63d4448f
Support pushing Docker image into Fit2Cloud Docker Registry (#6921)
Signed-off-by: JohnNiang <johnniang@foxmail.com>
2024-10-22 17:37:56 +08:00
John Niang 61718cce98
Support nested configuration properties (#6920)
#### What type of PR is this?

/kind improvement
/area core
/milestone 2.20.x

#### What this PR does / why we need it:

This PR adds the annotations `@NestedConfigurationProperties` to let Spring Configuration Processor generate fully metadata.

We can execute command `./gradlew :application:compileJava` to generate `application/build/classes/java/main/META-INF/spring-configuration-metadata.json`. If you are using IDEA Ultimate, configuration hints related to Halo will be available.

#### Does this PR introduce a user-facing change?

```release-note
None
```
2024-10-22 09:20:29 +00:00
guqing d2799c59be
fix: path match rules for grouped OpenAPI (#6898)
#### What type of PR is this?
/kind improvement
/area core
/milestone 2.20.x

#### What this PR does / why we need it:
修正 OpenAPI 的分组匹配规则 之前有很多 PublicAPIs 没有出现在对应的组

#### Does this PR introduce a user-facing change?
```release-note
None
```
2024-10-22 07:52:28 +00:00
Ryan Wang ddaf7b0dce
chore: remove unused dependencies and configuration files (#6917)
#### What type of PR is this?

/area core
/kind cleanup

#### What this PR does / why we need it:

Remove unused dependencies and configuration files

#### Does this PR introduce a user-facing change?

```release-note
None
```
2024-10-22 06:54:29 +00:00
Ryan Wang 9ecc8f1d95
fix: post slug generation not following selected strategy (#6914)
#### What type of PR is this?

/area ui
/kind bug
/milestone 2.20.x

#### What this PR does / why we need it:

修复文章自动生成别名不按照别名生成策略生成的问题。

#### Which issue(s) this PR fixes:

Fixes #6913 

#### Special notes for your reviewer:

需要测试:

1. 分类、标签创建和更新时的别名生成
2. 文章新建时,别名是否按照生成策略生成。

#### Does this PR introduce a user-facing change?

```release-note
修复文章自动生成别名不按照别名生成策略生成的问题。
```
2024-10-22 06:52:28 +00:00
John Niang 329bcc5748
Exclude console and uc assets in security configuration (#6915)
#### What type of PR is this?

/kind improvement
/area core
/milestone 2.20.x

#### What this PR does / why we need it:

This PR excludes console and uc assets in security configuration to make them access by anonymous users.

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/6908

#### Special notes for your reviewer:

```bash
http http://localhost:8090/uc/assets/index-E-uvwInx.css -ph

HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Content-Encoding: gzip
Content-Length: 26213
Content-Type: text/css
Vary: Accept-Encoding
```

#### Does this PR introduce a user-facing change?

```release-note
None
```
2024-10-22 03:40:27 +00:00
Ryan Wang 53b291b54e
fix: resolve button height overflow in signup form on older Safari (#6912)
#### What type of PR is this?

/area core
/kind bug
/milestone 2.20.x

#### What this PR does / why we need it:

修复在低版本 Safari 浏览器中,注册表单中的按钮高度溢出的问题。

#### Which issue(s) this PR fixes:

Fixes #6910 

#### Does this PR introduce a user-facing change?

```release-note
修复在低版本 Safari 浏览器中,注册表单中的按钮高度溢出的问题。
```

<!-- Fuck Safari -->
2024-10-21 09:24:21 +00:00
Ryan Wang 500f702e02
fix: can not return to post list after publishing when re-logged in (#6902)
#### What type of PR is this?

/area ui
/kind bug
/milestone 2.20.x

#### What this PR does / why we need it:

修复通过登录跳转到文章编辑页面时,发布文章会跳转到个人中心的问题。

#### Which issue(s) this PR fixes:

Fixes #6901 

#### Special notes for your reviewer:

测试步骤:

1. 新建文章,编写内容,但是不发布
2. 在新的浏览器选项卡中退出登录
3. 回到文章编辑页面,跳转到登录页面重新登录之后,发布文章
4. 观察是否会返回到 Console 的文章管理页面。

#### Does this PR introduce a user-facing change?

```release-note
修复通过登录跳转到文章编辑页面时,发布文章会跳转到个人中心的问题。
```
2024-10-19 15:58:44 +00:00
guqing 833b884bdb
fix: modify name column charset to make it case-sensitive for MySQL (#6897)
#### What type of PR is this?
/kind improvement
/area core
/milestone 2.20.x

#### What this PR does / why we need it:
将 MySQL 的表创建脚本 name 列字符集改为 utf8mb4_bin 以使其对大小写敏感

Fixes https://github.com/halo-dev/halo/issues/4372

**how to test it?**
使用 docker 运行 MySQL
```shell
# mariadb 同样将镜像改为 mariadb 后执行相同步骤
docker run --name mysql-test -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=halo -p 3306:3306 --rm -d mysql:latest
```
然后执行表创建脚本并手动执行以下两条 SQL 能成功插入
```sql
insert into extensions(name,data,version) values('a', 'a', 0)
insert into extensions(name,data,version) values('A', 'A', 0)
```

#### Does this PR introduce a user-facing change?
```release-note
修改 MySQL 表创建脚本 name 列的字符集使其大小写敏感以解决可能会遇到切换数据库时因为数据冲突而无法导入备份的问题(这只对此版本及之后的新用户有效)
```
2024-10-18 09:49:38 +00:00
guqing 13644d21eb
fix: language preference is not remembered under non-HTTPS connections (#6891)
#### What type of PR is this?
/kind bug
/area core
/milestone 2.20.x

#### What this PR does / why we need it:
修复非 HTTPS 连接下无法记住用户语言偏好的问题

#### Which issue(s) this PR fixes:
Fixes #6888

#### Does this PR introduce a user-facing change?
```release-note
修复非 HTTPS 连接下无法记住用户语言偏好的问题
```
2024-10-18 09:47:37 +00:00
John Niang 3570353ce2
Bind sign up data instead of building by hand (#6895)
#### What type of PR is this?

/kind improvement
/area core
/milestone 2.20.x

#### What this PR does / why we need it:

This PR refactors sign up data binding using internal `bind` method in `ServerRequest` instead of binding my hand. It's more convenient and simpler.

#### Does this PR introduce a user-facing change?

```release-note
None
```
2024-10-18 07:55:39 +00:00
John Niang 697a5e5a4c
Fix the problem of not redirecting to corresponding login page after authentication failure (#6896)
#### What type of PR is this?

/kind bug
/area core
/milestone 2.20.x

#### What this PR does / why we need it:

This PR appends query `method=local` after redirection location in authentication failure handler to redirect to login page with local method.

#### Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/6894

#### Does this PR introduce a user-facing change?

```release-note
修复非默认登录方式登录失败之后跳转至默认登录方式的问题
```
2024-10-18 07:29:37 +00:00
guqing c465bf8c75
fix: prevent initialization failure when theme directory already exists (#6889)
#### What type of PR is this?
/kind bug
/area core
/milestone 2.20.x

#### What this PR does / why we need it:
修复从旧版本升级到 2.20 会因为默认主题目录已经存在而无法初始化的问题

#### Which issue(s) this PR fixes:
Fixes #6887

#### Does this PR introduce a user-facing change?
```release-note
修复从旧版本升级到 2.20 会因为默认主题目录已经存在而无法初始化的问题
```
2024-10-17 08:45:30 +00:00
John Niang 02def4e20a
Expose ReactiveUserDetailsService to authentication plugins (#6885)
#### What type of PR is this?

/kind improvement
/area core
/milestone 2.20.x

#### What this PR does / why we need it:

This PR exposes ReactiveUserDetailsService to authentication plugins.

#### Does this PR introduce a user-facing change?

```release-note
支持在插件中使用 ReactiveUserDetailsService
```
2024-10-17 02:43:30 +00:00
Ryan Wang 8df91e80b3
chore: bump app store plugin version (#6881)
#### What type of PR is this?

/area core
/kind improvement
/milestone 2.20.x

#### What this PR does / why we need it:

Bump app store plugin to 1.6.0

#### Does this PR introduce a user-facing change?

```release-note
None
```
2024-10-16 13:59:27 +00:00
John Niang 514a05552f
Refactor PAT authentication by making it standalone (#6878)
#### What type of PR is this?

/kind improvement
/area core
/milestone 2.20.x

#### What this PR does / why we need it:

This PR makes PAT configuration standalone and removes unused configuration related with `JWT`.

After this, we can define additional authentications in plugins with correct configuration order.

#### Does this PR introduce a user-facing change?

```release-note
None
```
2024-10-16 10:07:27 +00:00
John Niang db4e68b732
Expose user and role services into plugins (#6880)
#### What type of PR is this?

/kind feature
/area plugin
/milestone 2.20.x

#### What this PR does / why we need it:

This PR exposes user and role services into plugins. Some authentication plugins may interact with users and users' roles.

#### Does this PR introduce a user-facing change?

```release-note
允许在插件中使用 UserService 和 RoleService
```
2024-10-16 09:29:27 +00:00
guqing c577deb6ee
fix: missing ServerWebExchange in plugin template processor extension (#6877)
#### What type of PR is this?
/kind bug
/area core
/milestone 2.20.x

#### What this PR does / why we need it:
修复由 #6680 导致的插件模板处理扩展中无法获取到请求上下文的问题

#6680 修复了插件可以在模板处理扩展中通过请求上下文获取到 Halo 的 ApplicationContext 的问题
但这也引入了新的问题就是导致模板处理扩展无法获取到请求上下文,此 PR 通过判断传递给插件的 ITemplateContext 是否为 IWebContext,如果是则包装为 SecureTemplateWebContext 传递给插件,以解决此问题

#### Which issue(s) this PR fixes:
Fixes #6875

#### Does this PR introduce a user-facing change?
```release-note
修复插件模板处理扩展中无法获取到请求上下文的问题
```
2024-10-16 08:21:28 +00:00
Ryan Wang ecc7c07d08
docs: add gitpod link for readme (#6876)
#### What type of PR is this?

/kind documentation

#### What this PR does / why we need it:

添加 Gitpod 的演示环境链接。

#### Does this PR introduce a user-facing change?

```release-note
None 
```
2024-10-16 06:07:27 +00:00
Ryan Wang c9869b7d20
docs: update readme for 2.20 (#6874)
#### What type of PR is this?

/kind documentation

#### What this PR does / why we need it:

更新快速开始的版本号。

#### Does this PR introduce a user-facing change?

```release-note
None
```
2024-10-16 03:13:27 +00:00
John Niang b95a83a242
Fix the problem of not being able to create PAT for OAuth2 user (#6870)
#### What type of PR is this?

/kind bug
/area core
/milestone 2.20.x

#### What this PR does / why we need it:

This PR refactors check of whether the current user is a real user to fix the problem of not being able to create PAT for OAuth2 user.

#### Does this PR introduce a user-facing change?

```release-note
修复通过 OAuth2 登录之后无法正常创建和恢复个人令牌的问题
```
2024-10-15 08:51:22 +00:00
John Niang c3020d6a85
Fix the problem of not being able to disconnect OAuth2 user (#6869)
#### What type of PR is this?

/kind bug
/area core
/milestone 2.20.x

#### What this PR does / why we need it:

This PR corrects typo of `apisGroups` to `apiGroups` to fix the problem of not being able to disconnect OAuth2 user.

#### Special notes for your reviewer:

0. Install OAuth2 plugin
1. Log in as a normal user
2. Bind a OAuth2 user
3. Try to unbind it

#### Does this PR introduce a user-facing change?

```release-note
修复无法正常解绑 OAuth2 用户
```
2024-10-15 07:57:21 +00:00
guqing 45aae9c1a8
fix: preventing access to login page after Halo setup (#6865)
#### What type of PR is this?
/kind bug
/area core
/milestone 2.20.x

#### What this PR does / why we need it:
修复初始化 Halo 之后无法进入登录页面的问题

此问题原因是更改了 AuthProvider 的逻辑,当系统启动之后缺少默认的登录方式导致登录页面无法正确渲染
此 PR 将确保默认的登录方式始终存在来解决此问题

how to test it?
重新初始化 Halo 之后能正确渲染登录页面并登录即为符合预期

#### Does this PR introduce a user-facing change?
```release-note
修复初始化 Halo 之后无法进入登录页面的问题
```
2024-10-14 12:43:18 +00:00
John Niang dd5f02e505
Fix the problem of redirecting to previous URI with fragment after authenticated (#6862)
#### What type of PR is this?

/kind bug
/area core
/milestone 2.20.x

#### What this PR does / why we need it:

This PR ignores URI fragment while removing redirect URI. Before that, users may be redirected to previous redirect URI that contains fragment.

#### Does this PR introduce a user-facing change?

```release-note
修复二次登录后重定向跳转至旧地址的问题
```
2024-10-14 07:09:16 +00:00
guqing 17eea823a5
fix: retain legacy enabled field for auth provider setting (#6861)
#### What type of PR is this?
/kind bug
/area core
/milestone 2.20.x

#### What this PR does / why we need it:
恢复 https://github.com/halo-dev/halo/pull/6846 中删除的 SystemSetting.AuthProvider#enabled 字段避免插件应用到了它可能会发生错误,将其标记为过时

#### Does this PR introduce a user-facing change?
```release-note
None
```
2024-10-14 06:17:16 +00:00
Ryan Wang f7b2dcf9fc
chore: bump preset theme version (#6860)
Signed-off-by: Ryan Wang <i@ryanc.cc>
2024-10-14 12:25:35 +08:00
guqing 82498dcedf
refactor: auth provider sorting logic for better maintainability and clarity (#6846)
* refactor: auth provider sorting logic for better maintainability and clarity

* Refine UI

* chore: remove other auth type

* Remove other auth providers

---------

Co-authored-by: Ryan Wang <i@ryanc.cc>
2024-10-14 10:53:24 +08:00
Ryan Wang 4059f159b2
Merge pull request #6848 from ruibaby/feat/add-h2-alert-for-setup-page-2
feat: add H2 database usage warning for setup page
2024-10-14 10:18:51 +08:00
Ryan Wang eff73dca12 feat: add H2 database usage warning for setup page 2024-10-14 10:18:24 +08:00
johnniang 55f133396c Set usingH2database variable into setup template model 2024-10-14 10:18:03 +08:00
Ryan Wang b0d36b784e
feat: support toast a message for backend exceptions when sending emails (#6856)
#### What type of PR is this?

/area core
/kind improvement
/milestone 2.20.x

#### What this PR does / why we need it:

注册表单发送邮箱验证码时,支持显示来自后端的异常。

<img width="693" alt="image" src="https://github.com/user-attachments/assets/78d1d793-7673-4442-9b0b-1eb7c4d91ebd">


#### Does this PR introduce a user-facing change?

```release-note
None
```
2024-10-13 15:33:14 +00:00
Ryan Wang 0d8c4bb126
fix: set default value for attachment storage policy in user center (#6853)
#### What type of PR is this?

/area core
/kind bug
/milestone 2.20.x

#### What this PR does / why we need it:

修复首次初始化之后,个人中心使用的附件存储策略没有默认值的问题。

#### Which issue(s) this PR fixes:

Fixes #6834 

#### Does this PR introduce a user-facing change?

```release-note
None
```
2024-10-13 15:11:14 +00:00
Ryan Wang a21413e080
fix: not redirect to /console after setup (#6852)
#### What type of PR is this?

/area core
/kind bug
/milestone 2.20.x

#### What this PR does / why we need it:

修复初始化登录之后,没有正确重定向到 /console 的问题。

#### Which issue(s) this PR fixes:

Fixes #6850 

#### Does this PR introduce a user-facing change?

```release-note
None
```
2024-10-13 14:55:14 +00:00
Ryan Wang 149cb5d136
refactor: remove underline in h2 warning alert (#6849)
#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.20.x

#### What this PR does / why we need it:

before:

<img width="804" alt="image" src="https://github.com/user-attachments/assets/3d55d7d2-1dfa-4988-afbd-dd502e54fdb2">

after:

<img width="806" alt="image" src="https://github.com/user-attachments/assets/6194d995-b6f1-404a-820d-b667ccfab9f1">

#### Does this PR introduce a user-facing change?

```release-note
None
```
2024-10-13 14:49:14 +00:00
John Niang 7c6a8e9ce7
Fill operation ID while building setup route (#6857)
#### What type of PR is this?

/kind bug
/area core
/milestone 2.20.x

#### What this PR does / why we need it:

This PR fills operation ID while building setup route to prevent errors when generating OpenAPI docs.

```java
2024-10-13T22:09:46.997+08:00 ERROR 68966 --- [     parallel-4] a.w.r.e.AbstractErrorWebExceptionHandler : [88654f05-3]  500 Server Error for HTTP GET "/v3/api-docs/apis_aggregated.api_v1alpha1"

java.lang.IllegalStateException: You should either fill, the Operation or at least the bean class and the bean method
	at org.springdoc.core.fn.builders.operation.Builder.build(Builder.java:467) ~[springdoc-openapi-starter-common-2.6.0.jar:2.6.0]
	Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
```

#### Does this PR introduce a user-facing change?

```release-note
None
```
2024-10-13 14:21:14 +00:00