Commit Graph

4185 Commits (2bbdb96979010dcedc89451be15d4ac583374112)

Author SHA1 Message Date
Ryan Wang f130c8769e perf: retrieve the plugin before updating its status
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-24 22:15:30 +08:00
Ryan Wang e7022a072b feat: add support for uploading plugins (halo-dev/console#590)
Signed-off-by: Ryan Wang <i@ryanc.cc>

<!--  Thanks for sending a pull request!  Here are some tips for you:
1. 如果这是你的第一次,请阅读我们的贡献指南:<https://github.com/halo-dev/halo/blob/master/CONTRIBUTING.md>。
1. If this is your first time, please read our contributor guidelines: <https://github.com/halo-dev/halo/blob/master/CONTRIBUTING.md>.
2. 请根据你解决问题的类型为 Pull Request 添加合适的标签。
2. Please label this pull request according to what type of issue you are addressing, especially if this is a release targeted pull request.
3. 请确保你已经添加并运行了适当的测试。
3. Ensure you have added or ran the appropriate tests for your PR.
-->

#### What type of PR is this?

<!--
添加其中一个类别:
Add one of the following kinds:

/kind bug
/kind cleanup
/kind documentation
/kind feature
/kind optimization

适当添加其中一个或多个类别(可选):
Optionally add one or more of the following kinds if applicable:

/kind api-change
/kind deprecation
/kind failing-test
/kind flake
/kind regression
-->

/kind feature
/milestone 2.0

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

添加上传插件的支持。

see https://github.com/halo-dev/halo/pull/2271

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

<!--
PR 合并时自动关闭 issue。
Automatically closes linked issue when PR is merged.

用法:`Fixes #<issue 号>`,或者 `Fixes (粘贴 issue 完整链接)`
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
-->
None

#### Screenshots:

<img width="1156" alt="image" src="https://user-images.githubusercontent.com/21301288/180416186-49c56971-c0b9-4761-ae9e-8531e433a9c0.png">
<img width="1156" alt="image" src="https://user-images.githubusercontent.com/21301288/180416203-e4b35266-3645-497b-9d08-d6407b2dd7f7.png">


<!--
如果此 PR 有 UI 的改动,最好截图说明这个 PR 的改动。
If there are UI changes to this PR, it is best to take a screenshot to illustrate the changes to this PR.

eg.

Before:

![screenshot-before](https://user-images.githubusercontent.com/screenshot.png)

After:

![screenshot-after](https://user-images.githubusercontent.com/screenshot.png)
-->

#### Special notes for your reviewer:

可以使用以下插件仓库中 Actions 构建的 JAR 测试:

- https://github.com/halo-sigs/plugin-links/actions
- https://github.com/halo-sigs/plugin-meilisearch/actions
- https://github.com/halo-sigs/plugin-template/actions

/cc @halo-dev/sig-halo-admin 
/cc @halo-dev/sig-halo 

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

<!--
如果当前 Pull Request 的修改不会造成用户侧的任何变更,在 `release-note` 代码块儿中填写 `NONE`。
否则请填写用户侧能够理解的 Release Note。如果当前 Pull Request 包含破坏性更新(Break Change),
Release Note 需要以 `action required` 开头。
If no, just write "NONE" in the release-note block below.
If yes, a release note is required:
Enter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string "action required".
-->

```release-note
None
```
2022-07-23 12:42:13 +00:00
guqing d85c83bf6e
refactor: plugin components finder to avoid cannot be started after installing the plugin (#2272)
<!--  Thanks for sending a pull request!  Here are some tips for you:
1. 如果这是你的第一次,请阅读我们的贡献指南:<https://github.com/halo-dev/halo/blob/master/CONTRIBUTING.md>。
1. If this is your first time, please read our contributor guidelines: <https://github.com/halo-dev/halo/blob/master/CONTRIBUTING.md>.
2. 请根据你解决问题的类型为 Pull Request 添加合适的标签。
2. Please label this pull request according to what type of issue you are addressing, especially if this is a release targeted pull request.
3. 请确保你已经添加并运行了适当的测试。
3. Ensure you have added or ran the appropriate tests for your PR.
-->

#### What type of PR is this?
/kind improvement
/milestone 2.0
/area core
<!--
添加其中一个类别:
Add one of the following kinds:

/kind bug
/kind cleanup
/kind documentation
/kind feature
/kind improvement

适当添加其中一个或多个类别(可选):
Optionally add one or more of the following kinds if applicable:

/kind api-change
/kind deprecation
/kind failing-test
/kind flake
/kind regression
-->

#### What this PR does / why we need it:
使用 SpringComponentsFinder 覆盖 pf4j 默认实现的插件组件类缓存逻辑,以解决插件安装后缓存没有更新导致插件类加载不正确问题
原问题浮现步骤:
1. 先删除插件目录的所有插件
2. 通过接口上传一个插件`apis/api.halo.run/v1alpha1/plugins/install`
3. 启动它
4. 再上传另一个插件并启动它就会发现这个插件无法启动

现在修复过后可以重复测试上述步骤并观察日志显示的插件组件是否被正确加载,再此之前你可能需要配置以下日志级别
```
logging:
  level:
    org.pf4j.AbstractExtensionFinder: DEBUG
```
启动插件时观察这样的日志是否符合预期:
```
r.h.app.plugin.SpringComponentsFinder    : Read 'META-INF/plugin-components.idx'
org.pf4j.AbstractExtensionFinder         : Found possible 2 extensions:
org.pf4j.AbstractExtensionFinder         :    run.halo.template.TemplatePlugin
org.pf4j.AbstractExtensionFinder         :    run.halo.template.ApplesController
r.h.app.plugin.SpringComponentsFinder    : Load [2] component names into storage cache for plugin [PluginTemplate].
```
可以结合此 PR 上传插件进行测试 https://github.com/halo-dev/halo-admin/pull/590
#### Which issue(s) this PR fixes:

<!--
PR 合并时自动关闭 issue。
Automatically closes linked issue when PR is merged.

用法:`Fixes #<issue 号>`,或者 `Fixes (粘贴 issue 完整链接)`
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
-->
Fixes #

#### Special notes for your reviewer:
/cc @halo-dev/sig-halo 
#### Does this PR introduce a user-facing change?

<!--
如果当前 Pull Request 的修改不会造成用户侧的任何变更,在 `release-note` 代码块儿中填写 `NONE`。
否则请填写用户侧能够理解的 Release Note。如果当前 Pull Request 包含破坏性更新(Break Change),
Release Note 需要以 `action required` 开头。
If no, just write "NONE" in the release-note block below.
If yes, a release note is required:
Enter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string "action required".
-->

```release-note
None
```
2022-07-23 12:40:10 +00:00
Ryan Wang b737637a21 refactor: UserEditingModal component
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-22 21:37:27 +08:00
John Niang 0b4b1c321b
Provide an endpoint to install plugin using Jar file (#2271)
#### What type of PR is this?

/kind feature
/area core
/milestone 2.0

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

Provide an endpoint to install plugin using Jar file.

#### Special notes for your reviewer:

Currently, you could login and open the swagger ui to test against this feature.

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

```release-note
None
```
2022-07-22 10:11:51 +00:00
Ryan Wang 51c87c1519 feat: user editing support using yaml
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-22 17:04:30 +08:00
Ryan Wang e218818a59 feat: add codemirror component
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-22 16:12:28 +08:00
Ryan Wang c5d0656608 feat: show the number of permissions under the role
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-22 12:49:06 +08:00
John Niang 4cb94d3752
Upgrade Spring Boot to 3.0.0-M4 (#2269)
#### What type of PR is this?

/kind flake
/area core
/milestone 2.0

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

Upgrade Spring Boot to 3.0.0-M4. Please see <https://github.com/spring-projects/spring-boot/releases/tag/v3.0.0-M4>.

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

```release-note
None
```
2022-07-22 03:13:50 +00:00
Ryan Wang d90838f4cb chore: bump packages version
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-21 15:10:46 +08:00
Ryan Wang 5862db903f perf: improve user detail page style
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-21 15:03:30 +08:00
John Niang 50932fc2a9
Refactor deletion of Extension in Extension client (#2267)
#### What type of PR is this?

/kind improvement
/area core
/milestone 2.0

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

Do not delete directly when invoking ExtensionClient#delete. We just flag it by setting metadata.deletionTimestamp.

The rest should be done by garbage collector.

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

```release-note
None
```
2022-07-21 06:29:52 +00:00
Ryan Wang 0b0220e30d fix: @halo-dev/shared packages import location
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-21 14:26:55 +08:00
Ryan Wang 1a3492bd1e refactor: plugin detail page
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-21 14:16:51 +08:00
Ryan Wang 6e3ebacd8e feat: create labels and annotations enumeration types
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-20 22:47:10 +08:00
Ryan Wang e3b5abc529 chore: update themes data mock
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-20 16:54:20 +08:00
Ryan Wang 931c0eb8be feat: add plugin status tooltip
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-20 15:51:21 +08:00
Ryan Wang 3ab60a4bbf feat: plugin details support display of included roles
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-20 15:24:35 +08:00
guqing bb0b5b26e2
feat: add plugin initial resource cleanup when plugin stop (#2262)
* refactor: the way of plugin extension update

* feat: add plugin initial resource cleanup when plugin stop

* refactor: remove role delete watcher
2022-07-20 14:35:24 +08:00
guqing ba20f71504
feat: add role templates for system (#2260)
* feat: add role templates for system

* fix: permissions manage config

* feat: add hidden labels

* feat: add ui permissions for role template

* fix: user password change definition
2022-07-20 14:35:07 +08:00
Ryan Wang eaf64c5bc2 perf: refine basic layout component styles
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-20 14:28:33 +08:00
Ryan Wang a1774ded3d fix: role page route on the user details page
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-20 12:33:38 +08:00
Ryan Wang 6400f8593e fix: production api url env
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-20 11:46:48 +08:00
Ryan Wang 15b8aed601 Merge branch 'next' of github.com:halo-dev/halo-admin into next 2022-07-20 10:57:30 +08:00
Ryan Wang a5b13f7d4c feat: add set api url support
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-20 10:56:40 +08:00
John Niang 9ed0dcafcc
Change image name to halo-dev (#2264) 2022-07-19 23:47:36 +08:00
John Niang d7743d149a Refactor GitHub workflow configuration (halo-dev/console#589) 2022-07-19 19:31:11 +08:00
John Niang b1586f3cdd Add dockerignore file to ignore node_modules folder while building docker image (halo-dev/console#588)
#### What type of PR is this?

/kind optimization
/milestone 2.0

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

As I mentioned in the title, this PR mainly ignore the `node_modules` folder while copying current files into Docker daemon context. Because it is huge and unnecessary. Please see the size below:

```bash
--- /home/johnniang/workspaces/halo-dev/halo-admin ------------------------------------
  736.4 MiB S 388.8 MiB [###################] /node_modules
   12.2 MiB             [                   ] /.git
  892.0 KiB             [                   ] /packages
  616.0 KiB             [                   ] /src
  292.0 KiB             [                   ]  pnpm-lock.yaml
   48.0 KiB             [                   ] /cypress
   40.0 KiB             [                   ] /.github
   36.0 KiB             [                   ]  LICENSE
   20.0 KiB             [                   ] /.husky
   16.0 KiB             [                   ] /.changeset
   12.0 KiB             [                   ] /public
```

- Before

    ```bash
    Sending build context to Docker daemon  740MB
    Step 1/15 : FROM node:lts-alpine as build-stage
     ---> b0cbdedc1b9d
    Step 2/15 : ENV PNPM_VERSION 7.5.0
     ---> Using cache
     ---> 6184c581a0af
    Step 3/15 : RUN apk --no-cache add curl
     ---> Using cache
     ---> 74b030c17e7b
    Step 4/15 : RUN curl -sL https://unpkg.com/@pnpm/self-installer | node
    ```

- After

    ```bash
    Sending build context to Docker daemon  12.59MB
    Step 1/15 : FROM node:lts-alpine as build-stage
     ---> b0cbdedc1b9d
    Step 2/15 : ENV PNPM_VERSION 7.5.0
     ---> Using cache
     ---> 6184c581a0af
    Step 3/15 : RUN apk --no-cache add curl
     ---> Using cache
     ---> 74b030c17e7b
    Step 4/15 : RUN curl -sL https://unpkg.com/@pnpm/self-installer | node
    ```

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

```release-note
None
```
2022-07-19 07:50:05 +00:00
Ryan Wang 8cd7091d04 fix: package import name of lodash.isequal
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-19 15:41:39 +08:00
Ryan Wang e7dcdd46f1 chore: update github actions
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-19 15:36:44 +08:00
Ryan Wang 3744d2b731 chore: fix @halo-dev/api-client dependency location
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-19 15:08:20 +08:00
Ryan Wang 64b8619bca fix: the issue of redirection after login
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-19 14:56:30 +08:00
Ryan Wang 99ad35e97f docs: update readme
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-19 14:11:45 +08:00
Ryan Wang ca4e4bbeae feat: ui permission binding
see https://github.com/halo-dev/halo/pull/2260
2022-07-19 14:07:28 +08:00
Ryan Wang 1cded7a581 feat: refine roles management
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-19 11:41:05 +08:00
Ryan Wang 84e4cae994 feat: refine roles management
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-19 11:18:47 +08:00
guqing 275df33d75
refactor: scanning of the jsBundleRule for plugins (#2249)
<!--  Thanks for sending a pull request!  Here are some tips for you:
1. 如果这是你的第一次,请阅读我们的贡献指南:<https://github.com/halo-dev/halo/blob/master/CONTRIBUTING.md>。
1. If this is your first time, please read our contributor guidelines: <https://github.com/halo-dev/halo/blob/master/CONTRIBUTING.md>.
2. 请根据你解决问题的类型为 Pull Request 添加合适的标签。
2. Please label this pull request according to what type of issue you are addressing, especially if this is a release targeted pull request.
3. 请确保你已经添加并运行了适当的测试。
3. Ensure you have added or ran the appropriate tests for your PR.
-->

#### What type of PR is this?
/kind improvement
/area core
/milestone 2.0
<!--
添加其中一个类别:
Add one of the following kinds:

/kind bug
/kind cleanup
/kind documentation
/kind feature
/kind improvement

适当添加其中一个或多个类别(可选):
Optionally add one or more of the following kinds if applicable:

/kind api-change
/kind deprecation
/kind failing-test
/kind flake
/kind regression
-->

#### What this PR does / why we need it:
重构 JsBundle 获取方式,增加对 js entry 的文件校验如果不存在,则启用插件时不生成反向代理 APIs
#### Which issue(s) this PR fixes:

<!--
PR 合并时自动关闭 issue。
Automatically closes linked issue when PR is merged.

用法:`Fixes #<issue 号>`,或者 `Fixes (粘贴 issue 完整链接)`
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
-->
Fixes #

#### Special notes for your reviewer:
/cc @halo-dev/sig-halo 
#### Does this PR introduce a user-facing change?

<!--
如果当前 Pull Request 的修改不会造成用户侧的任何变更,在 `release-note` 代码块儿中填写 `NONE`。
否则请填写用户侧能够理解的 Release Note。如果当前 Pull Request 包含破坏性更新(Break Change),
Release Note 需要以 `action required` 开头。
If no, just write "NONE" in the release-note block below.
If yes, a release note is required:
Enter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string "action required".
-->

```release-note
None
```
2022-07-18 14:42:04 +00:00
Ryan Wang 82d966cba6 perf: add type support to usePluginStore
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-18 16:12:54 +08:00
Ryan Wang c15330f1e8 chore: bump dependencies
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-18 12:35:34 +08:00
Ryan Wang 0f3b17baa9 chore: cleanup type definition
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-18 12:23:14 +08:00
John Niang 1571b9bcf8
Add an API to change password of user (#2250)
#### What type of PR is this?

/kind feature
/area core
/milestone 2.0

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

This PR provides an API to change password of user. If the username is equal to `-`, we will change the password of current login user. Otherwise, we update the password according the request URI.

Here is an example:

- Request

```bash
curl -X 'PUT' \
  'http://localhost:8090/apis/api.halo.run/v1alpha1/users/-/password' \
  -H 'accept: */*' \
  -H 'Content-Type: */*' \
  -d '{
  "password": "openhalo"
}'
```

- Response

```json
{
  "spec": {
    "displayName": "Administrator",
    "email": "admin@halo.run",
    "password": "{bcrypt}$2a$10$/v8/nbxoUFGBDoWfOF2NHOHk.2RS0OFfS5AtN2g/mCGjScX19KvSG",
    "registeredAt": "2022-07-15T07:50:25.151513387Z",
    "twoFactorAuthEnabled": false,
    "disabled": false
  },
  "apiVersion": "v1alpha1",
  "kind": "User",
  "metadata": {
    "name": "admin",
    "annotations": {
      "rbac.authorization.halo.run/role-names": "[\"super-role\"]"
    },
    "version": 5,
    "creationTimestamp": "2022-07-15T07:50:25.255909669Z"
  }
}
```
#### Which issue(s) this PR fixes:

<!--
PR 合并时自动关闭 issue。
Automatically closes linked issue when PR is merged.

用法:`Fixes #<issue 号>`,或者 `Fixes (粘贴 issue 完整链接)`
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
-->
Fixes #

#### Special notes for your reviewer:

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

```release-note
None
```
2022-07-18 04:18:11 +00:00
Ryan Wang faa7fa9141 feat: add change user password support 2022-07-18 11:52:13 +08:00
guqing 49ea6fbdec
feat: plugin class is registered as a bean at startup (#2255)
<!--  Thanks for sending a pull request!  Here are some tips for you:
1. 如果这是你的第一次,请阅读我们的贡献指南:<https://github.com/halo-dev/halo/blob/master/CONTRIBUTING.md>。
1. If this is your first time, please read our contributor guidelines: <https://github.com/halo-dev/halo/blob/master/CONTRIBUTING.md>.
2. 请根据你解决问题的类型为 Pull Request 添加合适的标签。
2. Please label this pull request according to what type of issue you are addressing, especially if this is a release targeted pull request.
3. 请确保你已经添加并运行了适当的测试。
3. Ensure you have added or ran the appropriate tests for your PR.
-->

#### What type of PR is this?
/kind feature
/milestone 2.0
/area core
<!--
添加其中一个类别:
Add one of the following kinds:

/kind bug
/kind cleanup
/kind documentation
/kind feature
/kind improvement

适当添加其中一个或多个类别(可选):
Optionally add one or more of the following kinds if applicable:

/kind api-change
/kind deprecation
/kind failing-test
/kind flake
/kind regression
-->

#### What this PR does / why we need it:
插件 plugin.yaml 中不用在写 pluginClass 属性,插件的生命周期类通过标注 `@Component` 注解在启动时通过 PluginApplicationContext 依赖注入并创建实例,这得益于每个插件都有一个单独的 PluginApplicationContext 插件启动时可以将PluginWrapper 放到 Context 以支撑 pluginClass 实例的创建
```yaml
apiVersion: plugin.halo.run/v1alpha1
kind: Plugin
metadata:
  # The name defines how the plugin is invoked,A unique name
  name: PluginTemplate
spec:
  pluginClass: run.halo.template.TemplatePlugin
```
现在只需要如下方式即可无需配置 pluginClass
```java
@Component
public class TemplatePlugin extends BasePlugin {}
```
#### Which issue(s) this PR fixes:

<!--
PR 合并时自动关闭 issue。
Automatically closes linked issue when PR is merged.

用法:`Fixes #<issue 号>`,或者 `Fixes (粘贴 issue 完整链接)`
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
-->
Fixes #

#### Special notes for your reviewer:
/cc @halo-dev/sig-halo 
#### Does this PR introduce a user-facing change?

<!--
如果当前 Pull Request 的修改不会造成用户侧的任何变更,在 `release-note` 代码块儿中填写 `NONE`。
否则请填写用户侧能够理解的 Release Note。如果当前 Pull Request 包含破坏性更新(Break Change),
Release Note 需要以 `action required` 开头。
If no, just write "NONE" in the release-note block below.
If yes, a release note is required:
Enter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string "action required".
-->

```release-note
None
```
2022-07-18 02:56:10 +00:00
Ryan Wang 24e1a3c4f7 fix: permission logic of super administrator
Signed-off-by: Ryan Wang <i@ryanc.cc>
2022-07-16 12:04:58 +08:00
Ryan Wang d5c1e3e428 feat: support permission judgment of interface elements and routes 2022-07-15 16:26:27 +08:00
John Niang ca3cff277a
Create super admin initializer and run extension controllers conditionally (#2248)
#### What type of PR is this?

/kind improvement
/kind failing-test
/area core
/milestone 2.0

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

Before this PR, our unit tests were flaky to run. After my inspection, I found that extension controllers will run asynchronously at every unit test that is annotated `@SpringBootTest` annotation. Please see the log of failing test:

```java
ExtensionConfigurationTest > shouldReturnNotFoundWhenSchemeNotRegistered() FAILED
    java.lang.AssertionError at ExtensionConfigurationTest.java:72
```

So this PR makes Halo create super admin initializer and run extension controllers conditionally, especially in tests.

You can configure the following property to disable super admin initialization and extension controllers running:

```yaml
halo:
  security:
    initializer:
      disabled: true
  extension:
    controller:
      disabled: true
```

BTW, we can configure the initial username and password for super administrator:

```yaml
halo:
  security:
    initializer:
      super-admin-username: admin
      super-admin-password: P@88w0rd
```

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

Fixes #

#### Special notes for your reviewer:

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

<!--
如果当前 Pull Request 的修改不会造成用户侧的任何变更,在 `release-note` 代码块儿中填写 `NONE`。
否则请填写用户侧能够理解的 Release Note。如果当前 Pull Request 包含破坏性更新(Break Change),
Release Note 需要以 `action required` 开头。
If no, just write "NONE" in the release-note block below.
If yes, a release note is required:
Enter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string "action required".
-->

```release-note
None
```
2022-07-15 06:43:09 +00:00
guqing 7000885133
refactor: super administrator role has all UI permissions (#2247)
<!--  Thanks for sending a pull request!  Here are some tips for you:
1. 如果这是你的第一次,请阅读我们的贡献指南:<https://github.com/halo-dev/halo/blob/master/CONTRIBUTING.md>。
1. If this is your first time, please read our contributor guidelines: <https://github.com/halo-dev/halo/blob/master/CONTRIBUTING.md>.
2. 请根据你解决问题的类型为 Pull Request 添加合适的标签。
2. Please label this pull request according to what type of issue you are addressing, especially if this is a release targeted pull request.
3. 请确保你已经添加并运行了适当的测试。
3. Ensure you have added or ran the appropriate tests for your PR.
-->

#### What type of PR is this?
/kind improvement
/area core
/milestone 2.0
<!--
添加其中一个类别:
Add one of the following kinds:

/kind bug
/kind cleanup
/kind documentation
/kind feature
/kind improvement

适当添加其中一个或多个类别(可选):
Optionally add one or more of the following kinds if applicable:

/kind api-change
/kind deprecation
/kind failing-test
/kind flake
/kind regression
-->

#### What this PR does / why we need it:
- 超级管理员具有所有 ui-permissions
- 根据用户名获取权限的接口标记非空文档注解
#### Which issue(s) this PR fixes:

<!--
PR 合并时自动关闭 issue。
Automatically closes linked issue when PR is merged.

用法:`Fixes #<issue 号>`,或者 `Fixes (粘贴 issue 完整链接)`
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
-->
Fixes #

#### Special notes for your reviewer:
/cc @halo-dev/sig-halo 
#### Does this PR introduce a user-facing change?

<!--
如果当前 Pull Request 的修改不会造成用户侧的任何变更,在 `release-note` 代码块儿中填写 `NONE`。
否则请填写用户侧能够理解的 Release Note。如果当前 Pull Request 包含破坏性更新(Break Change),
Release Note 需要以 `action required` 开头。
If no, just write "NONE" in the release-note block below.
If yes, a release note is required:
Enter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string "action required".
-->

```release-note
None
```
2022-07-15 04:23:09 +00:00
guqing 90da5a13a1
refactor: the way of plugin initialize load (#2242)
<!--  Thanks for sending a pull request!  Here are some tips for you:
1. 如果这是你的第一次,请阅读我们的贡献指南:<https://github.com/halo-dev/halo/blob/master/CONTRIBUTING.md>。
1. If this is your first time, please read our contributor guidelines: <https://github.com/halo-dev/halo/blob/master/CONTRIBUTING.md>.
2. 请根据你解决问题的类型为 Pull Request 添加合适的标签。
2. Please label this pull request according to what type of issue you are addressing, especially if this is a release targeted pull request.
3. 请确保你已经添加并运行了适当的测试。
3. Ensure you have added or ran the appropriate tests for your PR.
-->

#### What type of PR is this?
/kind improvement
/area core
/milestone 2.0
<!--
添加其中一个类别:
Add one of the following kinds:

/kind bug
/kind cleanup
/kind documentation
/kind feature
/kind improvement

适当添加其中一个或多个类别(可选):
Optionally add one or more of the following kinds if applicable:

/kind api-change
/kind deprecation
/kind failing-test
/kind flake
/kind regression
-->

#### What this PR does / why we need it:
1. 优化插件初始化加载方式及 Plugin 自定义模型资源的更新
2. 插件 plugin.yaml 中 license 配置不再支持只配置字符串,而使用如下替代
```yaml
license:
  - name: "MIT"
```
3. 可以在 application.yaml 中配置
```yaml
halo:
  initial-extension-locations:
    - "path/to/extensions/yaml"
```
用于在系统启动时创建或更新自定义模型数据
#### Which issue(s) this PR fixes:

<!--
PR 合并时自动关闭 issue。
Automatically closes linked issue when PR is merged.

用法:`Fixes #<issue 号>`,或者 `Fixes (粘贴 issue 完整链接)`
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
-->
Fixes #

#### Special notes for your reviewer:
/cc @halo-dev/sig-halo 
#### Does this PR introduce a user-facing change?

<!--
如果当前 Pull Request 的修改不会造成用户侧的任何变更,在 `release-note` 代码块儿中填写 `NONE`。
否则请填写用户侧能够理解的 Release Note。如果当前 Pull Request 包含破坏性更新(Break Change),
Release Note 需要以 `action required` 开头。
If no, just write "NONE" in the release-note block below.
If yes, a release note is required:
Enter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string "action required".
-->

```release-note
None
```
2022-07-14 14:55:09 +00:00
Ryan Wang 1f0ea9d168 refactor: change role annotations name
change `plugin.halo.run/dependencies` to `rbac.authorization.halo.run/dependencies`
2022-07-14 18:39:19 +08:00
John Niang 1cbd3c74e3
Refactor the response structure of Extension list API (#2244)
#### What type of PR is this?

/kind improvement
/kind api-change
/area core
/milestone 2.0

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

This PR is refactoring the response structure of Extension list API as follows:

```json
{
  "page": 0,
  "size": 0,
  "total": 1,
  "items": [
    {
      "spec": {
        "displayName": "Administrator",
        "email": "admin@halo.run",
        "password": "{bcrypt}$2a$10$/YveWyuf9vyYrHE3fiToI.bGBy5Hgs1eViRvKzU7Kl982la5NSwWO",
        "registeredAt": "2022-06-17T09:35:47.237625514Z",
        "twoFactorAuthEnabled": false,
        "disabled": false
      },
      "apiVersion": "v1alpha1",
      "kind": "User",
      "metadata": {
        "name": "admin",
        "annotations": {
          "user.halo.run/roles": "[\"super-role\"]",
          "rbac.authorization.halo.run/role-names": "[\"second-super-role\",\"super-role\"]"
        },
        "version": 3077,
        "creationTimestamp": "2022-06-17T09:35:47.367919552Z"
      }
    }
  ],
  "first": true,
  "last": true,
  "hasNext": false,
  "hasPrevious": false
}
```

Instead of items only.

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

Fixes #

#### Special notes for your reviewer:

Steps to test:

1. Start Halo server
2. Request <http://localhost:8090/swagger-ui.html> from browser and you might be redirected to login page
3. Login with your username and password
4. Try to request the list endpoints and see the result.

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

```release-note
None
```
2022-07-14 08:53:09 +00:00