summaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
authorGeorge Goldberg <george@gberg.me>2017-03-23 17:38:24 +0000
committerGeorge Goldberg <george@gberg.me>2017-03-23 17:38:24 +0000
commitc6ded1dbfd69a1da69add8d2b554f4b7dd0341b3 (patch)
treea417d54a58edd244edb03935705618737cf2cf13 /api
parent120f5a6f8a5f4ab05aace89ae710698cf68d0564 (diff)
parent8ec37570742b67fd640bb3434ea226c655dbf408 (diff)
downloadchat-c6ded1dbfd69a1da69add8d2b554f4b7dd0341b3.tar.gz
chat-c6ded1dbfd69a1da69add8d2b554f4b7dd0341b3.tar.bz2
chat-c6ded1dbfd69a1da69add8d2b554f4b7dd0341b3.zip
Merge branch 'release-3.7'
Diffstat (limited to 'api')
-rw-r--r--api/channel_test.go90
-rw-r--r--api/context.go2
-rw-r--r--api/post_test.go13
3 files changed, 102 insertions, 3 deletions
diff --git a/api/channel_test.go b/api/channel_test.go
index 08136bc35..bace5df5c 100644
--- a/api/channel_test.go
+++ b/api/channel_test.go
@@ -170,6 +170,20 @@ func TestCreateChannel(t *testing.T) {
t.Fatal(err)
}
+ // Check that if unlicensed the policy restriction is not enforced.
+ utils.IsLicensed = false
+ utils.License = nil
+ utils.SetDefaultRolesBasedOnConfig()
+
+ channel4 := model.Channel{DisplayName: "Test API Name", Name: "a" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: team.Id}
+ channel5 := model.Channel{DisplayName: "Test API Name", Name: "a" + model.NewId() + "a", Type: model.CHANNEL_PRIVATE, TeamId: team.Id}
+ if _, err := Client.CreateChannel(&channel4); err != nil {
+ t.Fatal("should have succeeded")
+ }
+ if _, err := Client.CreateChannel(&channel5); err != nil {
+ t.Fatal("should have succeeded")
+ }
+
*utils.Cfg.TeamSettings.RestrictPublicChannelCreation = model.PERMISSIONS_ALL
*utils.Cfg.TeamSettings.RestrictPrivateChannelCreation = model.PERMISSIONS_ALL
utils.SetDefaultRolesBasedOnConfig()
@@ -374,16 +388,19 @@ func TestUpdateChannel(t *testing.T) {
*utils.Cfg.TeamSettings.RestrictPublicChannelManagement = model.PERMISSIONS_CHANNEL_ADMIN
*utils.Cfg.TeamSettings.RestrictPrivateChannelManagement = model.PERMISSIONS_CHANNEL_ADMIN
+ utils.IsLicensed = true
+ utils.License = &model.License{Features: &model.Features{}}
+ utils.License.Features.SetDefaults()
utils.SetDefaultRolesBasedOnConfig()
MakeUserChannelUser(th.BasicUser, channel2)
MakeUserChannelUser(th.BasicUser, channel3)
store.ClearChannelCaches()
if _, err := Client.UpdateChannel(channel2); err == nil {
- t.Fatal("should have errored not team admin")
+ t.Fatal("should have errored not channel admin")
}
if _, err := Client.UpdateChannel(channel3); err == nil {
- t.Fatal("should have errored not team admin")
+ t.Fatal("should have errored not channel admin")
}
UpdateUserToTeamAdmin(th.BasicUser, team)
@@ -410,6 +427,9 @@ func TestUpdateChannel(t *testing.T) {
*utils.Cfg.TeamSettings.RestrictPublicChannelManagement = model.PERMISSIONS_TEAM_ADMIN
*utils.Cfg.TeamSettings.RestrictPrivateChannelManagement = model.PERMISSIONS_TEAM_ADMIN
+ utils.IsLicensed = true
+ utils.License = &model.License{Features: &model.Features{}}
+ utils.License.Features.SetDefaults()
utils.SetDefaultRolesBasedOnConfig()
if _, err := Client.UpdateChannel(channel2); err == nil {
@@ -433,6 +453,9 @@ func TestUpdateChannel(t *testing.T) {
*utils.Cfg.TeamSettings.RestrictPublicChannelManagement = model.PERMISSIONS_SYSTEM_ADMIN
*utils.Cfg.TeamSettings.RestrictPrivateChannelManagement = model.PERMISSIONS_SYSTEM_ADMIN
+ utils.IsLicensed = true
+ utils.License = &model.License{Features: &model.Features{}}
+ utils.License.Features.SetDefaults()
utils.SetDefaultRolesBasedOnConfig()
if _, err := Client.UpdateChannel(channel2); err == nil {
@@ -450,6 +473,18 @@ func TestUpdateChannel(t *testing.T) {
if _, err := Client.UpdateChannel(channel3); err != nil {
t.Fatal(err)
}
+
+ // Check that if unlicensed the policy restriction is not enforced.
+ utils.IsLicensed = false
+ utils.License = nil
+ utils.SetDefaultRolesBasedOnConfig()
+
+ if _, err := Client.UpdateChannel(channel2); err != nil {
+ t.Fatal(err)
+ }
+ if _, err := Client.UpdateChannel(channel3); err != nil {
+ t.Fatal(err)
+ }
}
func TestUpdateChannelDisplayName(t *testing.T) {
@@ -660,6 +695,18 @@ func TestUpdateChannelHeader(t *testing.T) {
if _, err := SystemAdminClient.UpdateChannelHeader(data3); err != nil {
t.Fatal(err)
}
+
+ // Check that if unlicensed the policy restriction is not enforced.
+ utils.IsLicensed = false
+ utils.License = nil
+ utils.SetDefaultRolesBasedOnConfig()
+
+ if _, err := SystemAdminClient.UpdateChannelHeader(data2); err != nil {
+ t.Fatal(err)
+ }
+ if _, err := SystemAdminClient.UpdateChannelHeader(data3); err != nil {
+ t.Fatal(err)
+ }
}
func TestUpdateChannelPurpose(t *testing.T) {
@@ -830,6 +877,17 @@ func TestUpdateChannelPurpose(t *testing.T) {
if _, err := SystemAdminClient.UpdateChannelPurpose(data3); err != nil {
t.Fatal(err)
}
+
+ // Check that if unlicensed the policy restriction is not enforced.
+ utils.IsLicensed = false
+ utils.License = nil
+ utils.SetDefaultRolesBasedOnConfig()
+ if _, err := SystemAdminClient.UpdateChannelHeader(data2); err != nil {
+ t.Fatal(err)
+ }
+ if _, err := SystemAdminClient.UpdateChannelHeader(data3); err != nil {
+ t.Fatal(err)
+ }
}
func TestGetChannel(t *testing.T) {
@@ -1304,6 +1362,9 @@ func TestDeleteChannel(t *testing.T) {
t.Fatal(err)
}
+ utils.IsLicensed = true
+ utils.License = &model.License{Features: &model.Features{}}
+ utils.License.Features.SetDefaults()
*utils.Cfg.TeamSettings.RestrictPublicChannelDeletion = model.PERMISSIONS_CHANNEL_ADMIN
*utils.Cfg.TeamSettings.RestrictPrivateChannelDeletion = model.PERMISSIONS_CHANNEL_ADMIN
utils.SetDefaultRolesBasedOnConfig()
@@ -1357,6 +1418,9 @@ func TestDeleteChannel(t *testing.T) {
UpdateUserToNonTeamAdmin(th.BasicUser, team)
app.InvalidateAllCaches()
+ utils.IsLicensed = true
+ utils.License = &model.License{Features: &model.Features{}}
+ utils.License.Features.SetDefaults()
*utils.Cfg.TeamSettings.RestrictPublicChannelDeletion = model.PERMISSIONS_TEAM_ADMIN
*utils.Cfg.TeamSettings.RestrictPrivateChannelDeletion = model.PERMISSIONS_TEAM_ADMIN
utils.SetDefaultRolesBasedOnConfig()
@@ -1389,6 +1453,9 @@ func TestDeleteChannel(t *testing.T) {
t.Fatal(err)
}
+ utils.IsLicensed = true
+ utils.License = &model.License{Features: &model.Features{}}
+ utils.License.Features.SetDefaults()
*utils.Cfg.TeamSettings.RestrictPublicChannelDeletion = model.PERMISSIONS_SYSTEM_ADMIN
*utils.Cfg.TeamSettings.RestrictPrivateChannelDeletion = model.PERMISSIONS_SYSTEM_ADMIN
utils.SetDefaultRolesBasedOnConfig()
@@ -1423,6 +1490,25 @@ func TestDeleteChannel(t *testing.T) {
t.Fatal(err)
}
+ // Check that if unlicensed the policy restriction is not enforced.
+ utils.IsLicensed = false
+ utils.License = nil
+ utils.SetDefaultRolesBasedOnConfig()
+
+ channel2 = th.CreateChannel(Client, team)
+ channel3 = th.CreatePrivateChannel(Client, team)
+ Client.Must(Client.AddChannelMember(channel2.Id, th.BasicUser.Id))
+ Client.Must(Client.AddChannelMember(channel3.Id, th.BasicUser.Id))
+
+ Client.Login(th.BasicUser.Email, th.BasicUser.Password)
+
+ if _, err := Client.DeleteChannel(channel2.Id); err != nil {
+ t.Fatal(err)
+ }
+ if _, err := Client.DeleteChannel(channel3.Id); err != nil {
+ t.Fatal(err)
+ }
+
*utils.Cfg.TeamSettings.RestrictPublicChannelDeletion = model.PERMISSIONS_ALL
*utils.Cfg.TeamSettings.RestrictPrivateChannelDeletion = model.PERMISSIONS_ALL
utils.SetDefaultRolesBasedOnConfig()
diff --git a/api/context.go b/api/context.go
index 9a707c968..1b251eb53 100644
--- a/api/context.go
+++ b/api/context.go
@@ -154,7 +154,7 @@ func (h handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
w.Header().Set(model.HEADER_REQUEST_ID, c.RequestId)
- w.Header().Set(model.HEADER_VERSION_ID, fmt.Sprintf("%v.%v.%v", model.CurrentVersion, model.BuildNumber, utils.CfgHash))
+ w.Header().Set(model.HEADER_VERSION_ID, fmt.Sprintf("%v.%v.%v.%v", model.CurrentVersion, model.BuildNumber, utils.CfgHash, utils.IsLicensed))
if einterfaces.GetClusterInterface() != nil {
w.Header().Set(model.HEADER_CLUSTER_ID, einterfaces.GetClusterInterface().GetClusterId())
}
diff --git a/api/post_test.go b/api/post_test.go
index 5546e7165..6558aeb5b 100644
--- a/api/post_test.go
+++ b/api/post_test.go
@@ -993,6 +993,19 @@ func TestDeletePosts(t *testing.T) {
t.Fatal(err)
}
+ // Check that if unlicensed the policy restriction is not enforced.
+ utils.IsLicensed = false
+ utils.License = nil
+ utils.SetDefaultRolesBasedOnConfig()
+
+ time.Sleep(10 * time.Millisecond)
+ post7 := &model.Post{ChannelId: channel1.Id, Message: "a" + model.NewId() + "a"}
+ post7 = Client.Must(Client.CreatePost(post7)).Data.(*model.Post)
+
+ if _, err := Client.DeletePost(channel1.Id, post7.Id); err != nil {
+ t.Fatal(err)
+ }
+
SystemAdminClient.Must(SystemAdminClient.DeletePost(channel1.Id, post6a.Id))
}