FEATURE: Category setting to allow unlimited first post edits by the owner of the topic (#12690)

This PR adds a new category setting which is a column in the `categories` table, `allow_unlimited_owner_edits_on_first_post`.

What this does is:

* Inside the `can_edit_post?` method of `PostGuardian`, if the current user editing a post is the owner of the post, it is the first post, and the topic's category has `allow_unlimited_owner_edits_on_first_post`, then we bypass the check for `LimitedEdit#edit_time_limit_expired?` on that post.
* Also, similar to wiki topics, in `PostActionNotifier#after_create_post_revision` we send a notification to all users watching a topic when the OP is edited in a topic with the category setting `allow_unlimited_owner_edits_on_first_post` enabled.

This is useful for forums where there is a Marketplace or similar category, where topics are created and then updated indefinitely by the OP rather than the OP making new topics or additional replies. In a way this acts similar to a wiki that only one person can edit.
This commit is contained in:
Martin Brennan
2021-04-14 15:54:09 +10:00
committed by GitHub
parent d56da72fe9
commit eeaecd4fd2
16 changed files with 232 additions and 90 deletions

View File

@@ -131,6 +131,15 @@
"min_tags_from_required_group": {
"type": "integer"
},
"allowed_tags": {
"type": "array"
},
"allowed_tag_groups": {
"type": "array"
},
"allow_global_tags": {
"type": "boolean"
},
"required_tag_group_name": {
"type": [
"string",
@@ -158,6 +167,9 @@
"auto_close_based_on_last_post": {
"type": "boolean"
},
"allow_unlimited_owner_edits_on_first_post": {
"type": "boolean"
},
"group_permissions": {
"type": "array",
"items": [
@@ -261,6 +273,7 @@
"available_groups",
"auto_close_hours",
"auto_close_based_on_last_post",
"allow_unlimited_owner_edits_on_first_post",
"group_permissions",
"email_in",
"email_in_allow_strangers",

View File

@@ -46,6 +46,9 @@
"per_page": {
"type": "integer"
},
"top_tags": {
"type": "array"
},
"topics": {
"type": "array",
"items": [

View File

@@ -134,6 +134,15 @@
"min_tags_from_required_group": {
"type": "integer"
},
"allowed_tags": {
"type": "array"
},
"allowed_tag_groups": {
"type": "array"
},
"allow_global_tags": {
"type": "boolean"
},
"required_tag_group_name": {
"type": [
"string",
@@ -161,6 +170,9 @@
"auto_close_based_on_last_post": {
"type": "boolean"
},
"allow_unlimited_owner_edits_on_first_post": {
"type": "boolean"
},
"group_permissions": {
"type": "array",
"items": [
@@ -264,6 +276,7 @@
"available_groups",
"auto_close_hours",
"auto_close_based_on_last_post",
"allow_unlimited_owner_edits_on_first_post",
"group_permissions",
"email_in",
"email_in_allow_strangers",