<!-- 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
/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:
新增插件设置,允许通过 Setting 自定义模型生成表单并收集其值为 ConfigMap
插件可以通过注入 SettingFetcher 来获取值并使用它,例如:
```java
Sns sns = settingFetcher.getGroupForObject("sns", Sns.class);
```
#### 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
```
* refactor: plugin configuration loading to adapt to plugin development mode
* refactor: extension locations
* refactor: plugin labels
* fix: unit test
* Move role and rolebinding extensions into core package
* Add UserExtensionUserDetailService to find user and update password
* Rename DefaultUserDetailService
* Fix test errors
* Add SuperAdminInitializer to initialize first user
* Add unit tests for DefaultUserDetailService and UserService
* Add test for verifying SuperAdminInitializer
* Fix unstable test due to database reusability
Signed-off-by: johnniang <johnniang@fastmail.com>
* Extract ExtensionOperator and MetadataOperator
* Move groupVersionKind methods up to ExtensionOperator interface
* Add Unstructured Extension for generic Extension
* Refine mapping of GVK and Scheme
* Add two compatible methods
* feat: Add request info resolver and evaluation
* feat: Add attributes record
* feat: Add rule resolver and authorization filter
* feat: Add authorization intergation test case
* chore: add todo for only testing class
* feat: Add auhentication provider and password authentication filter
* refactor: JwtUsernamePasswordAuthenticationFilter and add test case
* chore: delete unused class
* fix: code style
* refactor: web secutity config
* feat: Add JwtGenerator for authentication
* fix: code style
* refactor: change OAuth2TokenType type to record
* refactor: remove explicit declaration of equals and hashcode for records class
* feat: Content add front-end rendering options and refactor post params
* feat: add default value for serverSidemarkdownRender
* refactor: content save api
* fix: generate summary
* refactor: remove useless server-side markdown render code
* refactor: allow the formatContent to be empty
* refactor: Rename serverSideMarkdownRender to keepRaw
* refactor: Rename test case
* feat: split post content to new table and support content version control
* feat: Improve post version management
* feat: Add post content and version record deletion
* feat: Add isInProcess attribute for post list and detail api
* feat: Add migrate sql script
* fix: Add a sql of allow origin_content to null in posts table
* feat: Assign a value to the source of the post content version record
* perf: add password reset field verification
Signed-off-by: Ryan Wang <i@ryanc.cc>
* feat: add unit test case
Co-authored-by: guqing <1484563614@qq.com>
* feat: include posts that under the subcategories when getting posts by category
* refactor: list as tree
* fix: can nott query the problem of encrypted category
* refactor: post count under the category
* fix: list all by parent id
* feat: tag support color options
* refactor: change the color of tag
* feat: add api model property
* refactor: change color field length
* refactor: color field length in tag param
* Removing email field from the required arguments in comments
* Fixed gravatar and added database migration script
* Adding validation test cases for PostCommentParam
* Added unit test for PostCommentServiceImpl
* Address comments: removing identicon in gravatar, renaming migration script
* Address comment: removing gravata identicon from CommentProperties
* Address comments: Adding more unit tests for comment API
* Address comments: Adding integration tests for comment API
* feat: Refactor the naming method of uploaded attachments
* refactor: attachment upload parameter
* refactor: 重构文件名称是否重复的判断方式
* refactor: the usage of file path descriptor
* fix: remove blank line
* feat: add more test case
* fix: file base name in FilePathDescriptor
* Revert "refactor: the usage of file path descriptor"
This reverts commit b46ff3b4