Lock wrangler behind enterprise (#25703)
* Lock wrangler behind enterprise * Run tests with SetupEnterprise so Thread Moving is unlocked. Tweak NewTestLicense to include a SkuShortName for 'enterprise' * Don't set SkuShortName in NewTestLicense just in case. Fix up some old debug code in tests * Remove checks on enterprise/e20 and just enforce that the workspace has any license * Update admin_definition.tsx accordingly --------- Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
@@ -1136,7 +1136,7 @@ func moveThread(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if !c.App.Config().FeatureFlags.MoveThreadsEnabled {
|
if !c.App.Config().FeatureFlags.MoveThreadsEnabled || c.App.License() == nil {
|
||||||
c.Err = model.NewAppError("moveThread", "api.post.move_thread.disabled.app_error", nil, "", http.StatusNotImplemented)
|
c.Err = model.NewAppError("moveThread", "api.post.move_thread.disabled.app_error", nil, "", http.StatusNotImplemented)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -733,9 +733,11 @@ func TestCreatePostWithOutgoingHook_no_content_type(t *testing.T) {
|
|||||||
func TestMoveThread(t *testing.T) {
|
func TestMoveThread(t *testing.T) {
|
||||||
os.Setenv("MM_FEATUREFLAGS_MOVETHREADSENABLED", "true")
|
os.Setenv("MM_FEATUREFLAGS_MOVETHREADSENABLED", "true")
|
||||||
defer os.Unsetenv("MM_FEATUREFLAGS_MOVETHREADSENABLED")
|
defer os.Unsetenv("MM_FEATUREFLAGS_MOVETHREADSENABLED")
|
||||||
th := Setup(t).InitBasic()
|
th := SetupEnterprise(t).InitBasic()
|
||||||
defer th.TearDown()
|
defer th.TearDown()
|
||||||
|
|
||||||
|
th.App.Srv().SetLicense(model.NewTestLicenseSKU(model.LicenseShortSkuEnterprise))
|
||||||
|
|
||||||
client := th.Client
|
client := th.Client
|
||||||
|
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
@@ -949,13 +951,6 @@ func TestMoveThread(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.NotNil(t, resp)
|
require.NotNil(t, resp)
|
||||||
require.NotNil(t, posts)
|
require.NotNil(t, posts)
|
||||||
// There should be 3 posts, the system join message for the user who moved it joining the channel, and the two posts in the thread
|
|
||||||
// require.Equal(t, 3, len(posts.Posts))
|
|
||||||
fmt.Println(posts.Order)
|
|
||||||
for _, p := range posts.Order {
|
|
||||||
fmt.Println(posts.Posts[p].Id)
|
|
||||||
fmt.Println(posts.Posts[p].Message)
|
|
||||||
}
|
|
||||||
require.Equal(t, "This thread was moved from another channel", posts.Posts[posts.Order[0]].Message)
|
require.Equal(t, "This thread was moved from another channel", posts.Posts[posts.Order[0]].Message)
|
||||||
require.Equal(t, newPost2.Message, posts.Posts[posts.Order[1]].Message)
|
require.Equal(t, newPost2.Message, posts.Posts[posts.Order[1]].Message)
|
||||||
require.Equal(t, newPost.Message, posts.Posts[posts.Order[2]].Message)
|
require.Equal(t, newPost.Message, posts.Posts[posts.Order[2]].Message)
|
||||||
|
|||||||
@@ -3203,7 +3203,7 @@ const AdminDefinition: AdminDefinitionType = {
|
|||||||
url: 'site_config/wrangler',
|
url: 'site_config/wrangler',
|
||||||
title: t('admin.sidebar.move_thread'),
|
title: t('admin.sidebar.move_thread'),
|
||||||
title_default: 'Move Thread (Beta)',
|
title_default: 'Move Thread (Beta)',
|
||||||
isHidden: it.any(it.not(it.userHasReadPermissionOnResource(RESOURCE_KEYS.SITE.POSTS)), it.configIsFalse('FeatureFlags', 'MoveThreadsEnabled')),
|
isHidden: it.any(it.not(it.userHasReadPermissionOnResource(RESOURCE_KEYS.SITE.POSTS)), it.configIsFalse('FeatureFlags', 'MoveThreadsEnabled'), it.not(it.licensed)),
|
||||||
schema: {
|
schema: {
|
||||||
id: 'WranglerSettings',
|
id: 'WranglerSettings',
|
||||||
name: t('admin.site.move_thread'),
|
name: t('admin.site.move_thread'),
|
||||||
|
|||||||
@@ -277,7 +277,7 @@ export function cloudReverseTrial(state: GlobalState): boolean {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function moveThreadsEnabled(state: GlobalState): boolean {
|
export function moveThreadsEnabled(state: GlobalState): boolean {
|
||||||
return getFeatureFlagValue(state, 'MoveThreadsEnabled') === 'true';
|
return getFeatureFlagValue(state, 'MoveThreadsEnabled') === 'true' && getLicense(state).IsLicensed === 'true';
|
||||||
}
|
}
|
||||||
|
|
||||||
export function streamlinedMarketplaceEnabled(state: GlobalState): boolean {
|
export function streamlinedMarketplaceEnabled(state: GlobalState): boolean {
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user