All Sections to SubSections (#16917)
* initial * Revert "initial" This reverts commit 3d631aeecdc2324cd5d17c0ecdc431a8ccc15060. * [MM-32352] Add Experimental Subsections BACKEND (#16887) Automatic Merge * update appiface * Fix app layers * Ancillary Permissions on backend (#17061) Automatic Merge * [MM-32799] Add About Section (#17015) * Add About Section * add mock key * Update role.go * Update role.go Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * [MM-33437] Fix config access tags for experimental settings (#17111) Automatic Merge * [MM-32794] Reporting Sub Section (#17035) * test * revert * add permissions * add new permission stuff * add store mock * fix bad merge * gofmt fix Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * [MM-32343] Environment SubSection (#17054) * pre-checkout commit * fix permission for testSiteURL * pre-merge commit * increase size of Permissions column in Roles table * add entry for ENVIRONMENT to testlib/store.go * use TEXT for Permissions column in Roles table * use environment subsection permissions for API endpoints * use subsections permissions for /config/environment * add suggestions from hahmadia * update tests to use subsection permissions * add permissions column back in * comment out code in upgradeDatabaseToVersion534 Co-authored-by: Mattermod <mattermod@users.noreply.github.com> Co-authored-by: Scott Bishel <scott.bishel@mattermost.com> * MM-32351: Add Compliance Subsections (#17023) * add subsections for compliance sectin * add to mock functions * updates for read job * fixes * fix test * update tests * update tests * another test fix * some cleanup * update mlog * fix linting * Fix bad merges Co-authored-by: Mattermod <mattermod@users.noreply.github.com> Co-authored-by: Hossein <hahmadia@users.noreply.github.com> Co-authored-by: Hossein Ahmadian-Yazdi <hyazdi1997@gmail.com> * MM-32347 Site Subsections (#17095) * Init * Added migration key in testlib store * Fix syntax error * fix bad merge * fix lint Co-authored-by: Mattermod <mattermod@users.noreply.github.com> Co-authored-by: Scott Bishel <scott.bishel@mattermost.com> * MM-32350 Integrations (#17097) * implement server subsections * fix tests * update test * go fmt Co-authored-by: Hossein Ahmadian-Yazdi <hyazdi1997@gmail.com> * patch forgotten endpoints * Adding subsection permissions for Authentication (#17087) * adding new permissions, migrations to do * permission migrations and ancilary permissions * running make app-layers * fixing tests and lint * adding permissions to saml * ldap write permissions * running make app-layers * fixing conflict * making app layers * clean up and fix tests * change job type * fix js error, if site url not returned Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MacBook-Pro.local> Co-authored-by: Hossein Ahmadian-Yazdi <hyazdi1997@gmail.com> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> Co-authored-by: Scott Bishel <scott.bishel@mattermost.com> * Update permissions_migrations.go * gofmt * upgrade to 535 * gofmt Co-authored-by: Mattermod <mattermod@users.noreply.github.com> Co-authored-by: Max Erenberg <max.erenberg@mattermost.com> Co-authored-by: Scott Bishel <scott.bishel@mattermost.com> Co-authored-by: Anurag Shivarathri <anurag6713@gmail.com> Co-authored-by: Ben Cooke <benkcooke@gmail.com> Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MacBook-Pro.local>
Этот коммит содержится в:
785
model/config.go
785
model/config.go
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
19
model/job.go
19
model/job.go
@@ -38,6 +38,25 @@ const (
|
||||
JOB_STATUS_WARNING = "warning"
|
||||
)
|
||||
|
||||
var ALL_JOB_TYPES = [...]string{
|
||||
JOB_TYPE_DATA_RETENTION,
|
||||
JOB_TYPE_MESSAGE_EXPORT,
|
||||
JOB_TYPE_ELASTICSEARCH_POST_INDEXING,
|
||||
JOB_TYPE_ELASTICSEARCH_POST_AGGREGATION,
|
||||
JOB_TYPE_BLEVE_POST_INDEXING,
|
||||
JOB_TYPE_LDAP_SYNC,
|
||||
JOB_TYPE_MIGRATIONS,
|
||||
JOB_TYPE_PLUGINS,
|
||||
JOB_TYPE_EXPIRY_NOTIFY,
|
||||
JOB_TYPE_PRODUCT_NOTICES,
|
||||
JOB_TYPE_ACTIVE_USERS,
|
||||
JOB_TYPE_IMPORT_PROCESS,
|
||||
JOB_TYPE_IMPORT_DELETE,
|
||||
JOB_TYPE_EXPORT_PROCESS,
|
||||
JOB_TYPE_EXPORT_DELETE,
|
||||
JOB_TYPE_CLOUD,
|
||||
}
|
||||
|
||||
type Job struct {
|
||||
Id string `json:"id"`
|
||||
Type string `json:"type"`
|
||||
|
||||
@@ -26,4 +26,12 @@ const (
|
||||
MIGRATION_KEY_ADD_MANAGE_SHARED_CHANNEL_PERMISSIONS = "manage_shared_channel_permissions"
|
||||
MIGRATION_KEY_ADD_MANAGE_REMOTE_CLUSTERS_PERMISSIONS = "manage_remote_clusters_permissions"
|
||||
MIGRATION_KEY_ADD_DOWNLOAD_COMPLIANCE_EXPORT_RESULTS = "download_compliance_export_results"
|
||||
MIGRATION_KEY_ADD_COMPLIANCE_SUBSECTION_PERMISSIONS = "compliance_subsection_permissions"
|
||||
MIGRATION_KEY_ADD_EXPERIMENTAL_SUBSECTION_PERMISSIONS = "experimental_subsection_permissions"
|
||||
MIGRATION_KEY_ADD_AUTHENTICATION_SUBSECTION_PERMISSIONS = "authentication_subsection_permissions"
|
||||
MIGRATION_KEY_ADD_SITE_SUBSECTION_PERMISSIONS = "site_subsection_permissions"
|
||||
MIGRATION_KEY_ADD_ENVIRONMENT_SUBSECTION_PERMISSIONS = "environment_subsection_permissions"
|
||||
MIGRATION_KEY_ADD_REPORTING_SUBSECTION_PERMISSIONS = "reporting_subsection_permissions"
|
||||
MIGRATION_KEY_ADD_ABOUT_SUBSECTION_PERMISSIONS = "about_subsection_permissions"
|
||||
MIGRATION_KEY_ADD_INTEGRATIONS_SUBSECTION_PERMISSIONS = "integrations_subsection_permissions"
|
||||
)
|
||||
|
||||
1174
model/permission.go
1174
model/permission.go
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
@@ -1,21 +0,0 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
package model
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
// This is a test to ensure that we don't accidentally add more permissions than can fit
|
||||
// in the database column for role permissions.
|
||||
func TestPermissionsLength(t *testing.T) {
|
||||
permissionsString := ""
|
||||
for _, permission := range AllPermissions {
|
||||
permissionsString += " " + permission.Id
|
||||
}
|
||||
|
||||
assert.True(t, len(permissionsString) < 4096)
|
||||
}
|
||||
240
model/role.go
240
model/role.go
@@ -47,6 +47,12 @@ func init() {
|
||||
|
||||
// When updating the values here, the values in mattermost-redux must also be updated.
|
||||
SysconsoleAncillaryPermissions = map[string][]*Permission{
|
||||
PERMISSION_SYSCONSOLE_READ_ABOUT_EDITION_AND_LICENSE.Id: {
|
||||
PERMISSION_READ_LICENSE_INFORMATION,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_WRITE_ABOUT_EDITION_AND_LICENSE.Id: {
|
||||
PERMISSION_MANAGE_LICENSE_INFORMATION,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_CHANNELS.Id: {
|
||||
PERMISSION_READ_PUBLIC_CHANNEL,
|
||||
PERMISSION_READ_CHANNEL,
|
||||
@@ -55,26 +61,44 @@ func init() {
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_USERS.Id: {
|
||||
PERMISSION_READ_OTHER_USERS_TEAMS,
|
||||
PERMISSION_GET_ANALYTICS,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_TEAMS.Id: {
|
||||
PERMISSION_LIST_PRIVATE_TEAMS,
|
||||
PERMISSION_LIST_PUBLIC_TEAMS,
|
||||
PERMISSION_VIEW_TEAM,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_WRITE_COMPLIANCE.Id: {
|
||||
PERMISSION_MANAGE_JOBS,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_ELASTICSEARCH.Id: {
|
||||
PERMISSION_READ_ELASTICSEARCH_POST_INDEXING_JOB,
|
||||
PERMISSION_READ_ELASTICSEARCH_POST_AGGREGATION_JOB,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_READ_COMPLIANCE.Id: {
|
||||
PERMISSION_READ_JOBS,
|
||||
PERMISSION_DOWNLOAD_COMPLIANCE_EXPORT_RESULT,
|
||||
PERMISSION_SYSCONSOLE_WRITE_ENVIRONMENT_WEB_SERVER.Id: {
|
||||
PERMISSION_TEST_SITE_URL,
|
||||
PERMISSION_RELOAD_CONFIG,
|
||||
PERMISSION_INVALIDATE_CACHES,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT.Id: {
|
||||
PERMISSION_READ_JOBS,
|
||||
PERMISSION_SYSCONSOLE_WRITE_ENVIRONMENT_DATABASE.Id: {
|
||||
PERMISSION_RECYCLE_DATABASE_CONNECTIONS,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION.Id: {
|
||||
PERMISSION_READ_JOBS,
|
||||
PERMISSION_SYSCONSOLE_WRITE_ENVIRONMENT_ELASTICSEARCH.Id: {
|
||||
PERMISSION_TEST_ELASTICSEARCH,
|
||||
PERMISSION_CREATE_ELASTICSEARCH_POST_INDEXING_JOB,
|
||||
PERMISSION_CREATE_ELASTICSEARCH_POST_AGGREGATION_JOB,
|
||||
PERMISSION_PURGE_ELASTICSEARCH_INDEXES,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_READ_REPORTING.Id: {
|
||||
PERMISSION_SYSCONSOLE_WRITE_ENVIRONMENT_FILE_STORAGE.Id: {
|
||||
PERMISSION_TEST_S3,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_WRITE_ENVIRONMENT_SMTP.Id: {
|
||||
PERMISSION_TEST_EMAIL,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_READ_REPORTING_SERVER_LOGS.Id: {
|
||||
PERMISSION_GET_LOGS,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_READ_REPORTING_SITE_STATISTICS.Id: {
|
||||
PERMISSION_GET_ANALYTICS,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_READ_REPORTING_TEAM_STATISTICS.Id: {
|
||||
PERMISSION_VIEW_TEAM,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_USERS.Id: {
|
||||
@@ -109,12 +133,54 @@ func init() {
|
||||
PERMISSION_CONVERT_PUBLIC_CHANNEL_TO_PRIVATE,
|
||||
PERMISSION_CONVERT_PRIVATE_CHANNEL_TO_PUBLIC,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_WRITE_ENVIRONMENT.Id: {
|
||||
PERMISSION_MANAGE_JOBS,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_WRITE_SITE.Id: {
|
||||
PERMISSION_SYSCONSOLE_WRITE_SITE_CUSTOMIZATION.Id: {
|
||||
PERMISSION_EDIT_BRAND,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_WRITE_COMPLIANCE_DATA_RETENTION_POLICY.Id: {
|
||||
PERMISSION_CREATE_DATA_RETENTION_JOB,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY.Id: {
|
||||
PERMISSION_READ_DATA_RETENTION_JOB,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_WRITE_COMPLIANCE_COMPLIANCE_EXPORT.Id: {
|
||||
PERMISSION_CREATE_COMPLIANCE_EXPORT_JOB,
|
||||
PERMISSION_DOWNLOAD_COMPLIANCE_EXPORT_RESULT,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_READ_COMPLIANCE_COMPLIANCE_EXPORT.Id: {
|
||||
PERMISSION_READ_COMPLIANCE_EXPORT_JOB,
|
||||
PERMISSION_DOWNLOAD_COMPLIANCE_EXPORT_RESULT,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_READ_COMPLIANCE_CUSTOM_TERMS_OF_SERVICE.Id: {
|
||||
PERMISSION_READ_AUDITS,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_WRITE_EXPERIMENTAL_BLEVE.Id: {
|
||||
PERMISSION_CREATE_POST_BLEVE_INDEXES_JOB,
|
||||
PERMISSION_PURGE_BLEVE_INDEXES,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_WRITE_AUTHENTICATION_LDAP.Id: {
|
||||
PERMISSION_CREATE_LDAP_SYNC_JOB,
|
||||
PERMISSION_ADD_LDAP_PUBLIC_CERT,
|
||||
PERMISSION_REMOVE_LDAP_PUBLIC_CERT,
|
||||
PERMISSION_ADD_LDAP_PRIVATE_CERT,
|
||||
PERMISSION_REMOVE_LDAP_PRIVATE_CERT,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_LDAP.Id: {
|
||||
PERMISSION_TEST_LDAP,
|
||||
PERMISSION_READ_LDAP_SYNC_JOB,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_WRITE_AUTHENTICATION_EMAIL.Id: {
|
||||
PERMISSION_INVALIDATE_EMAIL_INVITE,
|
||||
},
|
||||
PERMISSION_SYSCONSOLE_WRITE_AUTHENTICATION_SAML.Id: {
|
||||
PERMISSION_GET_SAML_METADATA_FROM_IDP,
|
||||
PERMISSION_ADD_SAML_PUBLIC_CERT,
|
||||
PERMISSION_ADD_SAML_PRIVATE_CERT,
|
||||
PERMISSION_ADD_SAML_IDP_CERT,
|
||||
PERMISSION_REMOVE_SAML_PUBLIC_CERT,
|
||||
PERMISSION_REMOVE_SAML_PRIVATE_CERT,
|
||||
PERMISSION_REMOVE_SAML_IDP_CERT,
|
||||
PERMISSION_GET_SAML_CERT_STATUS,
|
||||
},
|
||||
}
|
||||
|
||||
SystemUserManagerDefaultPermissions = []string{
|
||||
@@ -125,29 +191,76 @@ func init() {
|
||||
PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_GROUPS.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_TEAMS.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_CHANNELS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_SIGNUP.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_EMAIL.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_PASSWORD.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_MFA.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_LDAP.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_SAML.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_OPENID.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_GUEST_ACCESS.Id,
|
||||
}
|
||||
|
||||
SystemReadOnlyAdminDefaultPermissions = []string{
|
||||
PERMISSION_SYSCONSOLE_READ_ABOUT.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_REPORTING.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ABOUT_EDITION_AND_LICENSE.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_REPORTING_SITE_STATISTICS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_REPORTING_TEAM_STATISTICS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_REPORTING_SERVER_LOGS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_USERS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_GROUPS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_TEAMS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_CHANNELS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_PERMISSIONS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_SITE.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_WEB_SERVER.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_DATABASE.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_ELASTICSEARCH.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_FILE_STORAGE.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_IMAGE_PROXY.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_SMTP.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_PUSH_NOTIFICATION_SERVER.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_HIGH_AVAILABILITY.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_RATE_LIMITING.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_LOGGING.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_SESSION_LENGTHS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_PERFORMANCE_MONITORING.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_DEVELOPER.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_SITE_CUSTOMIZATION.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_SITE_LOCALIZATION.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_SITE_USERS_AND_TEAMS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_SITE_NOTIFICATIONS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_SITE_ANNOUNCEMENT_BANNER.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_SITE_EMOJI.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_SITE_POSTS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_SITE_FILE_SHARING_AND_DOWNLOADS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_SITE_PUBLIC_LINKS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_SITE_NOTICES.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_SIGNUP.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_EMAIL.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_PASSWORD.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_MFA.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_LDAP.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_SAML.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_OPENID.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_GUEST_ACCESS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_PLUGINS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_COMPLIANCE.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_INTEGRATIONS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_EXPERIMENTAL.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_INTEGRATIONS_INTEGRATION_MANAGEMENT.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_INTEGRATIONS_BOT_ACCOUNTS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_INTEGRATIONS_GIF.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_INTEGRATIONS_CORS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_COMPLIANCE_COMPLIANCE_EXPORT.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_COMPLIANCE_COMPLIANCE_MONITORING.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_COMPLIANCE_CUSTOM_TERMS_OF_SERVICE.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_EXPERIMENTAL_FEATURES.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_EXPERIMENTAL_FEATURE_FLAGS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_EXPERIMENTAL_BLEVE.Id,
|
||||
}
|
||||
|
||||
SystemManagerDefaultPermissions = []string{
|
||||
PERMISSION_SYSCONSOLE_READ_ABOUT.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_REPORTING.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ABOUT_EDITION_AND_LICENSE.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_REPORTING_SITE_STATISTICS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_REPORTING_TEAM_STATISTICS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_REPORTING_SERVER_LOGS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_GROUPS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_TEAMS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_CHANNELS.Id,
|
||||
@@ -156,20 +269,75 @@ func init() {
|
||||
PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_TEAMS.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_CHANNELS.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_PERMISSIONS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_ENVIRONMENT.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_SITE.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_SITE.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_WEB_SERVER.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_DATABASE.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_ELASTICSEARCH.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_FILE_STORAGE.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_IMAGE_PROXY.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_SMTP.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_PUSH_NOTIFICATION_SERVER.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_HIGH_AVAILABILITY.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_RATE_LIMITING.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_LOGGING.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_SESSION_LENGTHS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_PERFORMANCE_MONITORING.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_DEVELOPER.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_ENVIRONMENT_WEB_SERVER.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_ENVIRONMENT_DATABASE.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_ENVIRONMENT_ELASTICSEARCH.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_ENVIRONMENT_FILE_STORAGE.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_ENVIRONMENT_IMAGE_PROXY.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_ENVIRONMENT_SMTP.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_ENVIRONMENT_PUSH_NOTIFICATION_SERVER.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_ENVIRONMENT_HIGH_AVAILABILITY.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_ENVIRONMENT_RATE_LIMITING.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_ENVIRONMENT_LOGGING.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_ENVIRONMENT_SESSION_LENGTHS.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_ENVIRONMENT_PERFORMANCE_MONITORING.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_ENVIRONMENT_DEVELOPER.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_SITE_CUSTOMIZATION.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_SITE_CUSTOMIZATION.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_SITE_LOCALIZATION.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_SITE_LOCALIZATION.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_SITE_USERS_AND_TEAMS.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_SITE_USERS_AND_TEAMS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_SITE_NOTIFICATIONS.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_SITE_NOTIFICATIONS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_SITE_ANNOUNCEMENT_BANNER.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_SITE_ANNOUNCEMENT_BANNER.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_SITE_EMOJI.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_SITE_EMOJI.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_SITE_POSTS.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_SITE_POSTS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_SITE_FILE_SHARING_AND_DOWNLOADS.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_SITE_FILE_SHARING_AND_DOWNLOADS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_SITE_PUBLIC_LINKS.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_SITE_PUBLIC_LINKS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_SITE_NOTICES.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_SITE_NOTICES.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_SIGNUP.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_EMAIL.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_PASSWORD.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_MFA.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_LDAP.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_SAML.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_OPENID.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_AUTHENTICATION_GUEST_ACCESS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_PLUGINS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_INTEGRATIONS.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_INTEGRATIONS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_INTEGRATIONS_INTEGRATION_MANAGEMENT.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_INTEGRATIONS_BOT_ACCOUNTS.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_INTEGRATIONS_GIF.Id,
|
||||
PERMISSION_SYSCONSOLE_READ_INTEGRATIONS_CORS.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_INTEGRATIONS_INTEGRATION_MANAGEMENT.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_INTEGRATIONS_BOT_ACCOUNTS.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_INTEGRATIONS_GIF.Id,
|
||||
PERMISSION_SYSCONSOLE_WRITE_INTEGRATIONS_CORS.Id,
|
||||
}
|
||||
|
||||
// Add the ancillary permissions to each system role
|
||||
SystemUserManagerDefaultPermissions = addAncillaryPermissions(SystemUserManagerDefaultPermissions)
|
||||
SystemReadOnlyAdminDefaultPermissions = addAncillaryPermissions(SystemReadOnlyAdminDefaultPermissions)
|
||||
SystemManagerDefaultPermissions = addAncillaryPermissions(SystemManagerDefaultPermissions)
|
||||
SystemUserManagerDefaultPermissions = AddAncillaryPermissions(SystemUserManagerDefaultPermissions)
|
||||
SystemReadOnlyAdminDefaultPermissions = AddAncillaryPermissions(SystemReadOnlyAdminDefaultPermissions)
|
||||
SystemManagerDefaultPermissions = AddAncillaryPermissions(SystemManagerDefaultPermissions)
|
||||
}
|
||||
|
||||
type RoleType string
|
||||
@@ -772,7 +940,7 @@ func MakeDefaultRoles() map[string]*Role {
|
||||
return roles
|
||||
}
|
||||
|
||||
func addAncillaryPermissions(permissions []string) []string {
|
||||
func AddAncillaryPermissions(permissions []string) []string {
|
||||
for _, permission := range permissions {
|
||||
if ancillaryPermissions, ok := SysconsoleAncillaryPermissions[permission]; ok {
|
||||
for _, ancillaryPermission := range ancillaryPermissions {
|
||||
|
||||
@@ -697,3 +697,18 @@ func filterBlocklist(r rune) rune {
|
||||
|
||||
return r
|
||||
}
|
||||
|
||||
// UniqueStrings returns a unique subset of the string slice provided.
|
||||
func UniqueStrings(input []string) []string {
|
||||
u := make([]string, 0, len(input))
|
||||
m := make(map[string]bool)
|
||||
|
||||
for _, val := range input {
|
||||
if _, ok := m[val]; !ok {
|
||||
m[val] = true
|
||||
u = append(u, val)
|
||||
}
|
||||
}
|
||||
|
||||
return u
|
||||
}
|
||||
|
||||
@@ -866,3 +866,36 @@ func TestIsValidHttpUrl(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestUniqueStrings(t *testing.T) {
|
||||
cases := []struct {
|
||||
Input []string
|
||||
Result []string
|
||||
}{
|
||||
{
|
||||
Input: []string{"1", "2", "3", "3", "3"},
|
||||
Result: []string{"1", "2", "3"},
|
||||
},
|
||||
{
|
||||
Input: []string{"1", "2", "3", "4", "5"},
|
||||
Result: []string{"1", "2", "3", "4", "5"},
|
||||
},
|
||||
{
|
||||
Input: []string{"1", "1", "1", "3", "3"},
|
||||
Result: []string{"1", "3"},
|
||||
},
|
||||
{
|
||||
Input: []string{"1", "1", "1", "1", "1"},
|
||||
Result: []string{"1"},
|
||||
},
|
||||
{
|
||||
Input: []string{},
|
||||
Result: []string{},
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range cases {
|
||||
actual := UniqueStrings(tc.Input)
|
||||
require.Equalf(t, actual, tc.Result, "case: %v\tshould returned: %#v", tc, tc.Result)
|
||||
}
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user