Skip to content

Commit

Permalink
Merge c639b40 into 8568afe
Browse files Browse the repository at this point in the history
  • Loading branch information
grundleborg committed Mar 15, 2017
2 parents 8568afe + c639b40 commit b0cf36d
Show file tree
Hide file tree
Showing 8 changed files with 280 additions and 110 deletions.
90 changes: 88 additions & 2 deletions api/channel_test.go
Expand Up @@ -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()
Expand Down Expand Up @@ -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)
Expand All @@ -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 {
Expand All @@ -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 {
Expand All @@ -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) {
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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()
Expand Down Expand Up @@ -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()
Expand Down Expand Up @@ -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()
Expand Down Expand Up @@ -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()
Expand Down
2 changes: 1 addition & 1 deletion api/context.go
Expand Up @@ -150,7 +150,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())
}
Expand Down
13 changes: 13 additions & 0 deletions api/post_test.go
Expand Up @@ -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))

}
Expand Down
15 changes: 14 additions & 1 deletion api4/channel_test.go
Expand Up @@ -91,10 +91,10 @@ func TestCreateChannel(t *testing.T) {
}()
*utils.Cfg.TeamSettings.RestrictPublicChannelCreation = model.PERMISSIONS_ALL
*utils.Cfg.TeamSettings.RestrictPrivateChannelCreation = model.PERMISSIONS_ALL
utils.SetDefaultRolesBasedOnConfig()
utils.IsLicensed = true
utils.License = &model.License{Features: &model.Features{}}
utils.License.Features.SetDefaults()
utils.SetDefaultRolesBasedOnConfig()

channel.Name = GenerateTestChannelName()
_, resp = Client.CreateChannel(channel)
Expand Down Expand Up @@ -160,6 +160,19 @@ func TestCreateChannel(t *testing.T) {
_, resp = th.SystemAdminClient.CreateChannel(private)
CheckNoError(t, resp)

// Check that if unlicensed the policy restriction is not enforced.
utils.IsLicensed = false
utils.License = nil
utils.SetDefaultRolesBasedOnConfig()

channel.Name = GenerateTestChannelName()
_, resp = Client.CreateChannel(channel)
CheckNoError(t, resp)

private.Name = GenerateTestChannelName()
_, resp = Client.CreateChannel(private)
CheckNoError(t, resp)

if r, err := Client.DoApiPost("/channels", "garbage"); err == nil {
t.Fatal("should have errored")
} else {
Expand Down
2 changes: 1 addition & 1 deletion api4/context.go
Expand Up @@ -133,7 +133,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())
}
Expand Down
4 changes: 4 additions & 0 deletions app/license.go
Expand Up @@ -76,6 +76,8 @@ func SaveLicense(licenseBytes []byte) (*model.License, *model.AppError) {
return nil, model.NewLocAppError("addLicense", model.INVALID_LICENSE_ERROR, nil, "")
}

ReloadConfig()

InvalidateAllCaches()

return license, nil
Expand All @@ -93,6 +95,8 @@ func RemoveLicense() *model.AppError {
return result.Err
}

ReloadConfig()

InvalidateAllCaches()

return nil
Expand Down
2 changes: 1 addition & 1 deletion app/web_conn.go
Expand Up @@ -178,7 +178,7 @@ func (webCon *WebConn) IsAuthenticated() bool {

func (webCon *WebConn) SendHello() {
msg := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_HELLO, "", "", webCon.UserId, nil)
msg.Add("server_version", fmt.Sprintf("%v.%v.%v", model.CurrentVersion, model.BuildNumber, utils.CfgHash))
msg.Add("server_version", fmt.Sprintf("%v.%v.%v.%v", model.CurrentVersion, model.BuildNumber, utils.CfgHash, utils.IsLicensed))
msg.DoPreComputeJson()
webCon.Send <- msg
}
Expand Down

0 comments on commit b0cf36d

Please sign in to comment.