Этот коммит содержится в:
Ben Schumacher
2021-07-12 20:05:36 +02:00
коммит произвёл Claudio Costa
родитель 953eebdef4
Коммит 97ccf0bdf6
472 изменённых файлов: 9126 добавлений и 9132 удалений

Просмотреть файл

@@ -49,10 +49,6 @@ issues:
- golint - golint
text: "should have|should be|should replace|stutters|underscore|annoying|error strings should not be capitalized" text: "should have|should be|should replace|stutters|underscore|annoying|error strings should not be capitalized"
- linters:
- golint
path: "model/"
- linters: - linters:
- misspell - misspell
path: "shared/markdown/html_entities.go" path: "shared/markdown/html_entities.go"

Просмотреть файл

@@ -146,7 +146,7 @@ func Init(a app.AppIface, root *mux.Router) *API {
} }
api.BaseRoutes.Root = root api.BaseRoutes.Root = root
api.BaseRoutes.ApiRoot = root.PathPrefix(model.API_URL_SUFFIX).Subrouter() api.BaseRoutes.ApiRoot = root.PathPrefix(model.ApiUrlSuffix).Subrouter()
api.BaseRoutes.Users = api.BaseRoutes.ApiRoot.PathPrefix("/users").Subrouter() api.BaseRoutes.Users = api.BaseRoutes.ApiRoot.PathPrefix("/users").Subrouter()
api.BaseRoutes.User = api.BaseRoutes.ApiRoot.PathPrefix("/users/{user_id:[A-Za-z0-9]+}").Subrouter() api.BaseRoutes.User = api.BaseRoutes.ApiRoot.PathPrefix("/users/{user_id:[A-Za-z0-9]+}").Subrouter()
@@ -305,7 +305,7 @@ func InitLocal(a app.AppIface, root *mux.Router) *API {
} }
api.BaseRoutes.Root = root api.BaseRoutes.Root = root
api.BaseRoutes.ApiRoot = root.PathPrefix(model.API_URL_SUFFIX).Subrouter() api.BaseRoutes.ApiRoot = root.PathPrefix(model.ApiUrlSuffix).Subrouter()
api.BaseRoutes.Users = api.BaseRoutes.ApiRoot.PathPrefix("/users").Subrouter() api.BaseRoutes.Users = api.BaseRoutes.ApiRoot.PathPrefix("/users").Subrouter()
api.BaseRoutes.User = api.BaseRoutes.Users.PathPrefix("/{user_id:[A-Za-z0-9]+}").Subrouter() api.BaseRoutes.User = api.BaseRoutes.Users.PathPrefix("/{user_id:[A-Za-z0-9]+}").Subrouter()

Просмотреть файл

@@ -261,7 +261,7 @@ func SetupConfigWithStoreMock(tb testing.TB, updateConfig func(cfg *model.Config
th := setupTestHelper(testlib.GetMockStoreForSetupFunctions(), nil, false, false, updateConfig, nil) th := setupTestHelper(testlib.GetMockStoreForSetupFunctions(), nil, false, false, updateConfig, nil)
statusMock := mocks.StatusStore{} statusMock := mocks.StatusStore{}
statusMock.On("UpdateExpiredDNDStatuses").Return([]*model.Status{}, nil) statusMock.On("UpdateExpiredDNDStatuses").Return([]*model.Status{}, nil)
statusMock.On("Get", "user1").Return(&model.Status{UserId: "user1", Status: model.STATUS_ONLINE}, nil) statusMock.On("Get", "user1").Return(&model.Status{UserId: "user1", Status: model.StatusOnline}, nil)
statusMock.On("UpdateLastActivityAt", "user1", mock.Anything).Return(nil) statusMock.On("UpdateLastActivityAt", "user1", mock.Anything).Return(nil)
statusMock.On("SaveOrUpdate", mock.AnythingOfType("*model.Status")).Return(nil) statusMock.On("SaveOrUpdate", mock.AnythingOfType("*model.Status")).Return(nil)
emptyMockStore := mocks.Store{} emptyMockStore := mocks.Store{}
@@ -275,7 +275,7 @@ func SetupWithStoreMock(tb testing.TB) *TestHelper {
th := setupTestHelper(testlib.GetMockStoreForSetupFunctions(), nil, false, false, nil, nil) th := setupTestHelper(testlib.GetMockStoreForSetupFunctions(), nil, false, false, nil, nil)
statusMock := mocks.StatusStore{} statusMock := mocks.StatusStore{}
statusMock.On("UpdateExpiredDNDStatuses").Return([]*model.Status{}, nil) statusMock.On("UpdateExpiredDNDStatuses").Return([]*model.Status{}, nil)
statusMock.On("Get", "user1").Return(&model.Status{UserId: "user1", Status: model.STATUS_ONLINE}, nil) statusMock.On("Get", "user1").Return(&model.Status{UserId: "user1", Status: model.StatusOnline}, nil)
statusMock.On("UpdateLastActivityAt", "user1", mock.Anything).Return(nil) statusMock.On("UpdateLastActivityAt", "user1", mock.Anything).Return(nil)
statusMock.On("SaveOrUpdate", mock.AnythingOfType("*model.Status")).Return(nil) statusMock.On("SaveOrUpdate", mock.AnythingOfType("*model.Status")).Return(nil)
emptyMockStore := mocks.Store{} emptyMockStore := mocks.Store{}
@@ -289,7 +289,7 @@ func SetupEnterpriseWithStoreMock(tb testing.TB) *TestHelper {
th := setupTestHelper(testlib.GetMockStoreForSetupFunctions(), nil, true, false, nil, nil) th := setupTestHelper(testlib.GetMockStoreForSetupFunctions(), nil, true, false, nil, nil)
statusMock := mocks.StatusStore{} statusMock := mocks.StatusStore{}
statusMock.On("UpdateExpiredDNDStatuses").Return([]*model.Status{}, nil) statusMock.On("UpdateExpiredDNDStatuses").Return([]*model.Status{}, nil)
statusMock.On("Get", "user1").Return(&model.Status{UserId: "user1", Status: model.STATUS_ONLINE}, nil) statusMock.On("Get", "user1").Return(&model.Status{UserId: "user1", Status: model.StatusOnline}, nil)
statusMock.On("UpdateLastActivityAt", "user1", mock.Anything).Return(nil) statusMock.On("UpdateLastActivityAt", "user1", mock.Anything).Return(nil)
statusMock.On("SaveOrUpdate", mock.AnythingOfType("*model.Status")).Return(nil) statusMock.On("SaveOrUpdate", mock.AnythingOfType("*model.Status")).Return(nil)
emptyMockStore := mocks.Store{} emptyMockStore := mocks.Store{}
@@ -361,17 +361,17 @@ func (th *TestHelper) InitLogin() *TestHelper {
// create users once and cache them because password hashing is slow // create users once and cache them because password hashing is slow
initBasicOnce.Do(func() { initBasicOnce.Do(func() {
th.SystemAdminUser = th.CreateUser() th.SystemAdminUser = th.CreateUser()
th.App.UpdateUserRoles(th.SystemAdminUser.Id, model.SYSTEM_USER_ROLE_ID+" "+model.SYSTEM_ADMIN_ROLE_ID, false) th.App.UpdateUserRoles(th.SystemAdminUser.Id, model.SystemUserRoleId+" "+model.SystemAdminRoleId, false)
th.SystemAdminUser, _ = th.App.GetUser(th.SystemAdminUser.Id) th.SystemAdminUser, _ = th.App.GetUser(th.SystemAdminUser.Id)
userCache.SystemAdminUser = th.SystemAdminUser.DeepCopy() userCache.SystemAdminUser = th.SystemAdminUser.DeepCopy()
th.SystemManagerUser = th.CreateUser() th.SystemManagerUser = th.CreateUser()
th.App.UpdateUserRoles(th.SystemManagerUser.Id, model.SYSTEM_USER_ROLE_ID+" "+model.SYSTEM_MANAGER_ROLE_ID, false) th.App.UpdateUserRoles(th.SystemManagerUser.Id, model.SystemUserRoleId+" "+model.SystemManagerRoleId, false)
th.SystemManagerUser, _ = th.App.GetUser(th.SystemManagerUser.Id) th.SystemManagerUser, _ = th.App.GetUser(th.SystemManagerUser.Id)
userCache.SystemManagerUser = th.SystemManagerUser.DeepCopy() userCache.SystemManagerUser = th.SystemManagerUser.DeepCopy()
th.TeamAdminUser = th.CreateUser() th.TeamAdminUser = th.CreateUser()
th.App.UpdateUserRoles(th.TeamAdminUser.Id, model.SYSTEM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.TeamAdminUser.Id, model.SystemUserRoleId, false)
th.TeamAdminUser, _ = th.App.GetUser(th.TeamAdminUser.Id) th.TeamAdminUser, _ = th.App.GetUser(th.TeamAdminUser.Id)
userCache.TeamAdminUser = th.TeamAdminUser.DeepCopy() userCache.TeamAdminUser = th.TeamAdminUser.DeepCopy()
@@ -433,7 +433,7 @@ func (th *TestHelper) InitBasic() *TestHelper {
th.App.AddUserToChannel(th.BasicUser2, th.BasicPrivateChannel, false) th.App.AddUserToChannel(th.BasicUser2, th.BasicPrivateChannel, false)
th.App.AddUserToChannel(th.BasicUser, th.BasicDeletedChannel, false) th.App.AddUserToChannel(th.BasicUser, th.BasicDeletedChannel, false)
th.App.AddUserToChannel(th.BasicUser2, th.BasicDeletedChannel, false) th.App.AddUserToChannel(th.BasicUser2, th.BasicDeletedChannel, false)
th.App.UpdateUserRoles(th.BasicUser.Id, model.SYSTEM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.SystemUserRoleId, false)
th.Client.DeleteChannel(th.BasicDeletedChannel.Id) th.Client.DeleteChannel(th.BasicDeletedChannel.Id)
th.LoginBasic() th.LoginBasic()
th.Group = th.CreateGroup() th.Group = th.CreateGroup()
@@ -468,7 +468,7 @@ func (th *TestHelper) CreateLocalClient(socketPath string) *model.Client4 {
} }
return &model.Client4{ return &model.Client4{
ApiUrl: "http://_" + model.API_URL_SUFFIX, ApiUrl: "http://_" + model.ApiUrlSuffix,
HttpClient: httpClient, HttpClient: httpClient,
} }
} }
@@ -523,7 +523,7 @@ func (th *TestHelper) CreateTeamWithClient(client *model.Client4) *model.Team {
DisplayName: "dn_" + id, DisplayName: "dn_" + id,
Name: GenerateTestTeamName(), Name: GenerateTestTeamName(),
Email: th.GenerateTestEmail(), Email: th.GenerateTestEmail(),
Type: model.TEAM_OPEN, Type: model.TeamOpen,
} }
utils.DisableDebugLogForTest() utils.DisableDebugLogForTest()
@@ -622,18 +622,18 @@ func (th *TestHelper) SetupSamlConfig() {
*cfg.SamlSettings.NicknameAttribute = "" *cfg.SamlSettings.NicknameAttribute = ""
*cfg.SamlSettings.PositionAttribute = "" *cfg.SamlSettings.PositionAttribute = ""
*cfg.SamlSettings.LocaleAttribute = "" *cfg.SamlSettings.LocaleAttribute = ""
*cfg.SamlSettings.SignatureAlgorithm = model.SAML_SETTINGS_SIGNATURE_ALGORITHM_SHA256 *cfg.SamlSettings.SignatureAlgorithm = model.SamlSettingsSignatureAlgorithmSha256
*cfg.SamlSettings.CanonicalAlgorithm = model.SAML_SETTINGS_CANONICAL_ALGORITHM_C14N11 *cfg.SamlSettings.CanonicalAlgorithm = model.SamlSettingsCanonicalAlgorithmC14n11
}) })
th.App.Srv().SetLicense(model.NewTestLicense("saml")) th.App.Srv().SetLicense(model.NewTestLicense("saml"))
} }
func (th *TestHelper) CreatePublicChannel() *model.Channel { func (th *TestHelper) CreatePublicChannel() *model.Channel {
return th.CreateChannelWithClient(th.Client, model.CHANNEL_OPEN) return th.CreateChannelWithClient(th.Client, model.ChannelTypeOpen)
} }
func (th *TestHelper) CreatePrivateChannel() *model.Channel { func (th *TestHelper) CreatePrivateChannel() *model.Channel {
return th.CreateChannelWithClient(th.Client, model.CHANNEL_PRIVATE) return th.CreateChannelWithClient(th.Client, model.ChannelTypePrivate)
} }
func (th *TestHelper) CreateChannelWithClient(client *model.Client4, channelType string) *model.Channel { func (th *TestHelper) CreateChannelWithClient(client *model.Client4, channelType string) *model.Channel {
@@ -1049,7 +1049,7 @@ func s3New(endpoint, accessKey, secretKey string, secure bool, signV2 bool, regi
func (th *TestHelper) cleanupTestFile(info *model.FileInfo) error { func (th *TestHelper) cleanupTestFile(info *model.FileInfo) error {
cfg := th.App.Config() cfg := th.App.Config()
if *cfg.FileSettings.DriverName == model.IMAGE_DRIVER_S3 { if *cfg.FileSettings.DriverName == model.ImageDriverS3 {
endpoint := *cfg.FileSettings.AmazonS3Endpoint endpoint := *cfg.FileSettings.AmazonS3Endpoint
accessKey := *cfg.FileSettings.AmazonS3AccessKeyId accessKey := *cfg.FileSettings.AmazonS3AccessKeyId
secretKey := *cfg.FileSettings.AmazonS3SecretAccessKey secretKey := *cfg.FileSettings.AmazonS3SecretAccessKey
@@ -1076,7 +1076,7 @@ func (th *TestHelper) cleanupTestFile(info *model.FileInfo) error {
return err return err
} }
} }
} else if *cfg.FileSettings.DriverName == model.IMAGE_DRIVER_LOCAL { } else if *cfg.FileSettings.DriverName == model.ImageDriverLocal {
if err := os.Remove(*cfg.FileSettings.Directory + info.Path); err != nil { if err := os.Remove(*cfg.FileSettings.Directory + info.Path); err != nil {
return err return err
} }
@@ -1260,11 +1260,11 @@ func (th *TestHelper) AddPermissionToRole(permission string, roleName string) {
} }
func (th *TestHelper) SetupTeamScheme() *model.Scheme { func (th *TestHelper) SetupTeamScheme() *model.Scheme {
return th.SetupScheme(model.SCHEME_SCOPE_TEAM) return th.SetupScheme(model.SchemeScopeTeam)
} }
func (th *TestHelper) SetupChannelScheme() *model.Scheme { func (th *TestHelper) SetupChannelScheme() *model.Scheme {
return th.SetupScheme(model.SCHEME_SCOPE_CHANNEL) return th.SetupScheme(model.SchemeScopeChannel)
} }
func (th *TestHelper) SetupScheme(scope string) *model.Scheme { func (th *TestHelper) SetupScheme(scope string) *model.Scheme {

Просмотреть файл

@@ -18,8 +18,8 @@ func purgeBleveIndexes(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec := c.MakeAuditRecord("purgeBleveIndexes", audit.Fail) auditRec := c.MakeAuditRecord("purgeBleveIndexes", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_PURGE_BLEVE_INDEXES) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionPurgeBleveIndexes) {
c.SetPermissionError(model.PERMISSION_PURGE_BLEVE_INDEXES) c.SetPermissionError(model.PermissionPurgeBleveIndexes)
return return
} }

Просмотреть файл

@@ -19,8 +19,8 @@ func TestBlevePurgeIndexes(t *testing.T) {
}) })
t.Run("as system user with write experimental permission", func(t *testing.T) { t.Run("as system user with write experimental permission", func(t *testing.T) {
th.AddPermissionToRole(model.PERMISSION_PURGE_BLEVE_INDEXES.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionPurgeBleveIndexes.Id, model.SystemUserRoleId)
defer th.RemovePermissionFromRole(model.PERMISSION_SYSCONSOLE_WRITE_EXPERIMENTAL.Id, model.SYSTEM_USER_ROLE_ID) defer th.RemovePermissionFromRole(model.PermissionSysconsoleWriteExperimental.Id, model.SystemUserRoleId)
_, resp := th.Client.PurgeBleveIndexes() _, resp := th.Client.PurgeBleveIndexes()
CheckOKStatus(t, resp) CheckOKStatus(t, resp)
}) })

Просмотреть файл

@@ -45,14 +45,14 @@ func createBot(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("bot", bot) auditRec.AddMeta("bot", bot)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_CREATE_BOT) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionCreateBot) {
c.SetPermissionError(model.PERMISSION_CREATE_BOT) c.SetPermissionError(model.PermissionCreateBot)
return return
} }
if user, err := c.App.GetUser(c.AppContext.Session().UserId); err == nil { if user, err := c.App.GetUser(c.AppContext.Session().UserId); err == nil {
if user.IsBot { if user.IsBot {
c.SetPermissionError(model.PERMISSION_CREATE_BOT) c.SetPermissionError(model.PermissionCreateBot)
return return
} }
} }
@@ -124,10 +124,10 @@ func getBot(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_READ_OTHERS_BOTS) { if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionReadOthersBots) {
// Allow access to any bot. // Allow access to any bot.
} else if bot.OwnerId == c.AppContext.Session().UserId { } else if bot.OwnerId == c.AppContext.Session().UserId {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_READ_BOTS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionReadBots) {
// Pretend like the bot doesn't exist at all to avoid revealing that the // Pretend like the bot doesn't exist at all to avoid revealing that the
// user is a bot. It's kind of silly in this case, sine we created the bot, // user is a bot. It's kind of silly in this case, sine we created the bot,
// but we don't have read bot permissions. // but we don't have read bot permissions.
@@ -153,14 +153,14 @@ func getBots(c *Context, w http.ResponseWriter, r *http.Request) {
onlyOrphaned, _ := strconv.ParseBool(r.URL.Query().Get("only_orphaned")) onlyOrphaned, _ := strconv.ParseBool(r.URL.Query().Get("only_orphaned"))
var OwnerId string var OwnerId string
if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_READ_OTHERS_BOTS) { if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionReadOthersBots) {
// Get bots created by any user. // Get bots created by any user.
OwnerId = "" OwnerId = ""
} else if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_READ_BOTS) { } else if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionReadBots) {
// Only get bots created by this user. // Only get bots created by this user.
OwnerId = c.AppContext.Session().UserId OwnerId = c.AppContext.Session().UserId
} else { } else {
c.SetPermissionError(model.PERMISSION_READ_BOTS) c.SetPermissionError(model.PermissionReadBots)
return return
} }
@@ -241,7 +241,7 @@ func assignBot(c *Context, w http.ResponseWriter, _ *http.Request) {
if user, err := c.App.GetUser(userId); err == nil { if user, err := c.App.GetUser(userId); err == nil {
if user.IsBot { if user.IsBot {
c.SetPermissionError(model.PERMISSION_ASSIGN_BOT) c.SetPermissionError(model.PermissionAssignBot)
return return
} }
} }
@@ -272,7 +272,7 @@ func getBotIconImage(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if !canSee { if !canSee {
c.SetPermissionError(model.PERMISSION_VIEW_MEMBERS) c.SetPermissionError(model.PermissionViewMembers)
return return
} }
@@ -294,7 +294,7 @@ func getBotIconImage(c *Context, w http.ResponseWriter, r *http.Request) {
} }
w.Header().Set("Cache-Control", fmt.Sprintf("max-age=%v, private", 24*60*60)) // 24 hrs w.Header().Set("Cache-Control", fmt.Sprintf("max-age=%v, private", 24*60*60)) // 24 hrs
w.Header().Set(model.HEADER_ETAG_SERVER, etag) w.Header().Set(model.HeaderEtagServer, etag)
w.Header().Set("Content-Type", "image/svg+xml") w.Header().Set("Content-Type", "image/svg+xml")
w.Write(img) w.Write(img)
} }
@@ -406,8 +406,8 @@ func convertBotToUser(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("userPatch", userPatch) auditRec.AddMeta("userPatch", userPatch)
auditRec.AddMeta("set_system_admin", systemAdmin) auditRec.AddMeta("set_system_admin", systemAdmin)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }

Просмотреть файл

@@ -41,8 +41,8 @@ func TestCreateBot(t *testing.T) {
th := Setup(t).InitBasic() th := Setup(t).InitBasic()
defer th.TearDown() defer th.TearDown()
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
th.App.Config().ServiceSettings.EnableBotAccountCreation = model.NewBool(false) th.App.Config().ServiceSettings.EnableBotAccountCreation = model.NewBool(false)
_, resp := th.Client.CreateBot(&model.Bot{ _, resp := th.Client.CreateBot(&model.Bot{
@@ -59,8 +59,8 @@ func TestCreateBot(t *testing.T) {
defer th.TearDown() defer th.TearDown()
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -84,8 +84,8 @@ func TestCreateBot(t *testing.T) {
th := Setup(t).InitBasic() th := Setup(t).InitBasic()
defer th.TearDown() defer th.TearDown()
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -108,9 +108,9 @@ func TestCreateBot(t *testing.T) {
}) })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableUserAccessTokens = true }) th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableUserAccessTokens = true })
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_EDIT_OTHER_USERS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionEditOtherUsers.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID+" "+model.SYSTEM_USER_ACCESS_TOKEN_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId+" "+model.SystemUserAccessTokenRoleId, false)
bot, resp := th.Client.CreateBot(&model.Bot{ bot, resp := th.Client.CreateBot(&model.Bot{
Username: GenerateTestUsername(), Username: GenerateTestUsername(),
@@ -119,7 +119,7 @@ func TestCreateBot(t *testing.T) {
}) })
CheckCreatedStatus(t, resp) CheckCreatedStatus(t, resp)
defer th.App.PermanentDeleteBot(bot.UserId) defer th.App.PermanentDeleteBot(bot.UserId)
th.App.UpdateUserRoles(bot.UserId, model.TEAM_USER_ROLE_ID+" "+model.SYSTEM_USER_ACCESS_TOKEN_ROLE_ID, false) th.App.UpdateUserRoles(bot.UserId, model.TeamUserRoleId+" "+model.SystemUserAccessTokenRoleId, false)
rtoken, resp := th.Client.CreateUserAccessToken(bot.UserId, "test token") rtoken, resp := th.Client.CreateUserAccessToken(bot.UserId, "test token")
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -153,8 +153,8 @@ func TestPatchBot(t *testing.T) {
defer th.TearDown() defer th.TearDown()
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -230,8 +230,8 @@ func TestPatchBot(t *testing.T) {
defer th.TearDown() defer th.TearDown()
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_READ_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadOthersBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -253,8 +253,8 @@ func TestPatchBot(t *testing.T) {
defer th.TearDown() defer th.TearDown()
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_MANAGE_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOthersBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -282,12 +282,12 @@ func TestPatchBot(t *testing.T) {
// Continue through the bot update process (call UpdateUserRoles), then // Continue through the bot update process (call UpdateUserRoles), then
// get the bot, to make sure the patched bot was correctly saved. // get the bot, to make sure the patched bot was correctly saved.
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadOthersBots.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_ROLES.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageRoles.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
success, resp := th.Client.UpdateUserRoles(createdBot.UserId, model.SYSTEM_USER_ROLE_ID) success, resp := th.Client.UpdateUserRoles(createdBot.UserId, model.SystemUserRoleId)
CheckOKStatus(t, resp) CheckOKStatus(t, resp)
require.True(t, success) require.True(t, success)
@@ -302,8 +302,8 @@ func TestPatchBot(t *testing.T) {
defer th.TearDown() defer th.TearDown()
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -331,9 +331,9 @@ func TestPatchBot(t *testing.T) {
defer th.TearDown() defer th.TearDown()
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -361,9 +361,9 @@ func TestPatchBot(t *testing.T) {
defer th.TearDown() defer th.TearDown()
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -395,9 +395,9 @@ func TestPatchBot(t *testing.T) {
defer th.TearDown() defer th.TearDown()
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -429,9 +429,9 @@ func TestPatchBot(t *testing.T) {
defer th.TearDown() defer th.TearDown()
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -491,8 +491,8 @@ func TestGetBot(t *testing.T) {
deletedBot, resp = th.SystemAdminClient.DisableBot(deletedBot.UserId) deletedBot, resp = th.SystemAdminClient.DisableBot(deletedBot.UserId)
CheckOKStatus(t, resp) CheckOKStatus(t, resp)
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -504,14 +504,14 @@ func TestGetBot(t *testing.T) {
}) })
CheckCreatedStatus(t, resp) CheckCreatedStatus(t, resp)
defer th.App.PermanentDeleteBot(myBot.UserId) defer th.App.PermanentDeleteBot(myBot.UserId)
th.RemovePermissionFromRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
t.Run("get unknown bot", func(t *testing.T) { t.Run("get unknown bot", func(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadOthersBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
_, resp := th.Client.GetBot(model.NewId(), "") _, resp := th.Client.GetBot(model.NewId(), "")
CheckNotFoundStatus(t, resp) CheckNotFoundStatus(t, resp)
@@ -520,9 +520,9 @@ func TestGetBot(t *testing.T) {
t.Run("get bot1", func(t *testing.T) { t.Run("get bot1", func(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadOthersBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
bot, resp := th.Client.GetBot(bot1.UserId, "") bot, resp := th.Client.GetBot(bot1.UserId, "")
CheckOKStatus(t, resp) CheckOKStatus(t, resp)
@@ -535,9 +535,9 @@ func TestGetBot(t *testing.T) {
t.Run("get bot2", func(t *testing.T) { t.Run("get bot2", func(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadOthersBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
bot, resp := th.Client.GetBot(bot2.UserId, "") bot, resp := th.Client.GetBot(bot2.UserId, "")
CheckOKStatus(t, resp) CheckOKStatus(t, resp)
@@ -547,26 +547,26 @@ func TestGetBot(t *testing.T) {
CheckEtag(t, bot, resp) CheckEtag(t, bot, resp)
}) })
t.Run("get bot1 without READ_OTHERS_BOTS permission", func(t *testing.T) { t.Run("get bot1 without PermissionReadOthersBots permission", func(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageBots.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOthersBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
_, resp := th.Client.GetBot(bot1.UserId, "") _, resp := th.Client.GetBot(bot1.UserId, "")
CheckErrorMessage(t, resp, "store.sql_bot.get.missing.app_error") CheckErrorMessage(t, resp, "store.sql_bot.get.missing.app_error")
}) })
t.Run("get myBot without READ_BOTS OR READ_OTHERS_BOTS permissions", func(t *testing.T) { t.Run("get myBot without ReadBots OR ReadOthersBots permissions", func(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageBots.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOthersBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
_, resp := th.Client.GetBot(myBot.UserId, "") _, resp := th.Client.GetBot(myBot.UserId, "")
CheckErrorMessage(t, resp, "store.sql_bot.get.missing.app_error") CheckErrorMessage(t, resp, "store.sql_bot.get.missing.app_error")
@@ -575,9 +575,9 @@ func TestGetBot(t *testing.T) {
t.Run("get deleted bot", func(t *testing.T) { t.Run("get deleted bot", func(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadOthersBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
_, resp := th.Client.GetBot(deletedBot.UserId, "") _, resp := th.Client.GetBot(deletedBot.UserId, "")
CheckNotFoundStatus(t, resp) CheckNotFoundStatus(t, resp)
@@ -586,9 +586,9 @@ func TestGetBot(t *testing.T) {
t.Run("get deleted bot, include deleted", func(t *testing.T) { t.Run("get deleted bot, include deleted", func(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadOthersBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
bot, resp := th.Client.GetBotIncludeDeleted(deletedBot.UserId, "") bot, resp := th.Client.GetBotIncludeDeleted(deletedBot.UserId, "")
CheckOKStatus(t, resp) CheckOKStatus(t, resp)
@@ -652,8 +652,8 @@ func TestGetBots(t *testing.T) {
deletedBot2, resp = th.SystemAdminClient.DisableBot(deletedBot2.UserId) deletedBot2, resp = th.SystemAdminClient.DisableBot(deletedBot2.UserId)
CheckOKStatus(t, resp) CheckOKStatus(t, resp)
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser2.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser2.Id, model.TeamUserRoleId, false)
th.LoginBasic2() th.LoginBasic2()
orphanedBot, resp := th.Client.CreateBot(&model.Bot{ orphanedBot, resp := th.Client.CreateBot(&model.Bot{
Username: GenerateTestUsername(), Username: GenerateTestUsername(),
@@ -672,9 +672,9 @@ func TestGetBots(t *testing.T) {
t.Run("get bots, page=0, perPage=10", func(t *testing.T) { t.Run("get bots, page=0, perPage=10", func(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadOthersBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
expectedBotList := []*model.Bot{bot1, bot2, bot3, orphanedBot} expectedBotList := []*model.Bot{bot1, bot2, bot3, orphanedBot}
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) { th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
@@ -691,9 +691,9 @@ func TestGetBots(t *testing.T) {
t.Run("get bots, page=0, perPage=1", func(t *testing.T) { t.Run("get bots, page=0, perPage=1", func(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadOthersBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
expectedBotList := []*model.Bot{bot1} expectedBotList := []*model.Bot{bot1}
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) { th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
@@ -710,9 +710,9 @@ func TestGetBots(t *testing.T) {
t.Run("get bots, page=1, perPage=2", func(t *testing.T) { t.Run("get bots, page=1, perPage=2", func(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadOthersBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
expectedBotList := []*model.Bot{bot3, orphanedBot} expectedBotList := []*model.Bot{bot3, orphanedBot}
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) { th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
@@ -729,9 +729,9 @@ func TestGetBots(t *testing.T) {
t.Run("get bots, page=2, perPage=2", func(t *testing.T) { t.Run("get bots, page=2, perPage=2", func(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadOthersBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
expectedBotList := []*model.Bot{} expectedBotList := []*model.Bot{}
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) { th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
@@ -748,9 +748,9 @@ func TestGetBots(t *testing.T) {
t.Run("get bots, page=0, perPage=10, include deleted", func(t *testing.T) { t.Run("get bots, page=0, perPage=10, include deleted", func(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadOthersBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
expectedBotList := []*model.Bot{bot1, deletedBot1, bot2, bot3, deletedBot2, orphanedBot} expectedBotList := []*model.Bot{bot1, deletedBot1, bot2, bot3, deletedBot2, orphanedBot}
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) { th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
@@ -767,9 +767,9 @@ func TestGetBots(t *testing.T) {
t.Run("get bots, page=0, perPage=1, include deleted", func(t *testing.T) { t.Run("get bots, page=0, perPage=1, include deleted", func(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadOthersBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
expectedBotList := []*model.Bot{bot1} expectedBotList := []*model.Bot{bot1}
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) { th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
@@ -786,9 +786,9 @@ func TestGetBots(t *testing.T) {
t.Run("get bots, page=1, perPage=2, include deleted", func(t *testing.T) { t.Run("get bots, page=1, perPage=2, include deleted", func(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadOthersBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
expectedBotList := []*model.Bot{bot2, bot3} expectedBotList := []*model.Bot{bot2, bot3}
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) { th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
@@ -805,9 +805,9 @@ func TestGetBots(t *testing.T) {
t.Run("get bots, page=2, perPage=2, include deleted", func(t *testing.T) { t.Run("get bots, page=2, perPage=2, include deleted", func(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadOthersBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
expectedBotList := []*model.Bot{deletedBot2, orphanedBot} expectedBotList := []*model.Bot{deletedBot2, orphanedBot}
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) { th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
@@ -824,9 +824,9 @@ func TestGetBots(t *testing.T) {
t.Run("get bots, page=0, perPage=10, only orphaned", func(t *testing.T) { t.Run("get bots, page=0, perPage=10, only orphaned", func(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadOthersBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
expectedBotList := []*model.Bot{orphanedBot} expectedBotList := []*model.Bot{orphanedBot}
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) { th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
@@ -843,10 +843,10 @@ func TestGetBots(t *testing.T) {
t.Run("get bots without permission", func(t *testing.T) { t.Run("get bots without permission", func(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageBots.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOthersBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
_, resp := th.Client.GetBots(0, 10, "") _, resp := th.Client.GetBots(0, 10, "")
CheckErrorMessage(t, resp, "api.context.permissions.app_error") CheckErrorMessage(t, resp, "api.context.permissions.app_error")
@@ -869,8 +869,8 @@ func TestDisableBot(t *testing.T) {
defer th.TearDown() defer th.TearDown()
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -893,9 +893,9 @@ func TestDisableBot(t *testing.T) {
defer th.TearDown() defer th.TearDown()
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -918,9 +918,9 @@ func TestDisableBot(t *testing.T) {
defer th.TearDown() defer th.TearDown()
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -967,8 +967,8 @@ func TestEnableBot(t *testing.T) {
defer th.TearDown() defer th.TearDown()
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -994,9 +994,9 @@ func TestEnableBot(t *testing.T) {
defer th.TearDown() defer th.TearDown()
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -1022,9 +1022,9 @@ func TestEnableBot(t *testing.T) {
defer th.TearDown() defer th.TearDown()
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_BOTS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageBots.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -1073,8 +1073,8 @@ func TestAssignBot(t *testing.T) {
t.Run("system admin and local mode assign bot", func(t *testing.T) { t.Run("system admin and local mode assign bot", func(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.SystemUserRoleId)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -1115,8 +1115,8 @@ func TestAssignBot(t *testing.T) {
t.Run("random user assign bot", func(t *testing.T) { t.Run("random user assign bot", func(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.SystemUserRoleId)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -1136,7 +1136,7 @@ func TestAssignBot(t *testing.T) {
CheckErrorMessage(t, resp, "store.sql_bot.get.missing.app_error") CheckErrorMessage(t, resp, "store.sql_bot.get.missing.app_error")
// With permissions to read we don't have permissions to modify // With permissions to read we don't have permissions to modify
th.AddPermissionToRole(model.PERMISSION_READ_OTHERS_BOTS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadOthersBots.Id, model.SystemUserRoleId)
_, resp = th.Client.AssignBot(createdBot.UserId, th.BasicUser2.Id) _, resp = th.Client.AssignBot(createdBot.UserId, th.BasicUser2.Id)
CheckErrorMessage(t, resp, "api.context.permissions.app_error") CheckErrorMessage(t, resp, "api.context.permissions.app_error")
@@ -1146,8 +1146,8 @@ func TestAssignBot(t *testing.T) {
t.Run("delegated user assign bot", func(t *testing.T) { t.Run("delegated user assign bot", func(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.SystemUserRoleId)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -1161,11 +1161,11 @@ func TestAssignBot(t *testing.T) {
defer th.App.PermanentDeleteBot(bot.UserId) defer th.App.PermanentDeleteBot(bot.UserId)
// Simulate custom role by just changing the system user role // Simulate custom role by just changing the system user role
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_OTHERS_BOTS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadOthersBots.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_BOTS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageBots.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_OTHERS_BOTS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOthersBots.Id, model.SystemUserRoleId)
th.LoginBasic2() th.LoginBasic2()
_, resp = th.Client.AssignBot(bot.UserId, th.BasicUser2.Id) _, resp = th.Client.AssignBot(bot.UserId, th.BasicUser2.Id)
@@ -1179,11 +1179,11 @@ func TestAssignBot(t *testing.T) {
t.Run("bot assigned to bot fails", func(t *testing.T) { t.Run("bot assigned to bot fails", func(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_OTHERS_BOTS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadOthersBots.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_BOTS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageBots.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_OTHERS_BOTS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOthersBots.Id, model.SystemUserRoleId)
bot := &model.Bot{ bot := &model.Bot{
Username: GenerateTestUsername(), Username: GenerateTestUsername(),
@@ -1215,9 +1215,9 @@ func TestSetBotIconImage(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_BOTS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageBots.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.SystemUserRoleId)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -1284,9 +1284,9 @@ func TestGetBotIconImage(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_BOTS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageBots.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.SystemUserRoleId)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -1346,9 +1346,9 @@ func TestDeleteBotIconImage(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_BOTS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageBots.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionReadBots.Id, model.SystemUserRoleId)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -1408,8 +1408,8 @@ func TestConvertBotToUser(t *testing.T) {
th := Setup(t).InitBasic() th := Setup(t).InitBasic()
defer th.TearDown() defer th.TearDown()
th.AddPermissionToRole(model.PERMISSION_CREATE_BOT.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateBot.Id, model.TeamUserRoleId)
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false) th.App.UpdateUserRoles(th.BasicUser.Id, model.TeamUserRoleId, false)
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.EnableBotAccountCreation = true *cfg.ServiceSettings.EnableBotAccountCreation = true
}) })
@@ -1460,7 +1460,7 @@ func TestConvertBotToUser(t *testing.T) {
CheckNoError(t, resp) CheckNoError(t, resp)
require.NotNil(t, user) require.NotNil(t, user)
require.Equal(t, bot.UserId, user.Id) require.Equal(t, bot.UserId, user.Id)
require.Contains(t, user.GetRoles(), model.SYSTEM_ADMIN_ROLE_ID) require.Contains(t, user.GetRoles(), model.SystemAdminRoleId)
bot, resp = client.GetBot(bot.UserId, "") bot, resp = client.GetBot(bot.UserId, "")
CheckNotFoundStatus(t, resp) CheckNotFoundStatus(t, resp)

Просмотреть файл

@@ -61,8 +61,8 @@ func uploadBrandImage(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec := c.MakeAuditRecord("uploadBrandImage", audit.Fail) auditRec := c.MakeAuditRecord("uploadBrandImage", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_EDIT_BRAND) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionEditBrand) {
c.SetPermissionError(model.PERMISSION_EDIT_BRAND) c.SetPermissionError(model.PermissionEditBrand)
return return
} }
@@ -82,8 +82,8 @@ func deleteBrandImage(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec := c.MakeAuditRecord("deleteBrandImage", audit.Fail) auditRec := c.MakeAuditRecord("deleteBrandImage", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_EDIT_BRAND) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionEditBrand) {
c.SetPermissionError(model.PERMISSION_EDIT_BRAND) c.SetPermissionError(model.PermissionEditBrand)
return return
} }

Просмотреть файл

@@ -89,13 +89,13 @@ func createChannel(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("channel", channel) auditRec.AddMeta("channel", channel)
if channel.Type == model.CHANNEL_OPEN && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PERMISSION_CREATE_PUBLIC_CHANNEL) { if channel.Type == model.ChannelTypeOpen && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PermissionCreatePublicChannel) {
c.SetPermissionError(model.PERMISSION_CREATE_PUBLIC_CHANNEL) c.SetPermissionError(model.PermissionCreatePublicChannel)
return return
} }
if channel.Type == model.CHANNEL_PRIVATE && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PERMISSION_CREATE_PRIVATE_CHANNEL) { if channel.Type == model.ChannelTypePrivate && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PermissionCreatePrivateChannel) {
c.SetPermissionError(model.PERMISSION_CREATE_PRIVATE_CHANNEL) c.SetPermissionError(model.PermissionCreatePrivateChannel)
return return
} }
@@ -145,19 +145,19 @@ func updateChannel(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("channel", oldChannel) auditRec.AddMeta("channel", oldChannel)
switch oldChannel.Type { switch oldChannel.Type {
case model.CHANNEL_OPEN: case model.ChannelTypeOpen:
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PERMISSION_MANAGE_PUBLIC_CHANNEL_PROPERTIES) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PermissionManagePublicChannelProperties) {
c.SetPermissionError(model.PERMISSION_MANAGE_PUBLIC_CHANNEL_PROPERTIES) c.SetPermissionError(model.PermissionManagePublicChannelProperties)
return return
} }
case model.CHANNEL_PRIVATE: case model.ChannelTypePrivate:
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PERMISSION_MANAGE_PRIVATE_CHANNEL_PROPERTIES) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PermissionManagePrivateChannelProperties) {
c.SetPermissionError(model.PERMISSION_MANAGE_PRIVATE_CHANNEL_PROPERTIES) c.SetPermissionError(model.PermissionManagePrivateChannelProperties)
return return
} }
case model.CHANNEL_GROUP, model.CHANNEL_DIRECT: case model.ChannelTypeGroup, model.ChannelTypeDirect:
// Modifying the header is not linked to any specific permission for group/dm channels, so just check for membership. // Modifying the header is not linked to any specific permission for group/dm channels, so just check for membership.
if _, errGet := c.App.GetChannelMember(context.Background(), channel.Id, c.AppContext.Session().UserId); errGet != nil { if _, errGet := c.App.GetChannelMember(context.Background(), channel.Id, c.AppContext.Session().UserId); errGet != nil {
c.Err = model.NewAppError("updateChannel", "api.channel.patch_update_channel.forbidden.app_error", nil, "", http.StatusForbidden) c.Err = model.NewAppError("updateChannel", "api.channel.patch_update_channel.forbidden.app_error", nil, "", http.StatusForbidden)
@@ -179,9 +179,9 @@ func updateChannel(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if oldChannel.Name == model.DEFAULT_CHANNEL { if oldChannel.Name == model.DefaultChannelName {
if channel.Name != "" && channel.Name != oldChannel.Name { if channel.Name != "" && channel.Name != oldChannel.Name {
c.Err = model.NewAppError("updateChannel", "api.channel.update_channel.tried.app_error", map[string]interface{}{"Channel": model.DEFAULT_CHANNEL}, "", http.StatusBadRequest) c.Err = model.NewAppError("updateChannel", "api.channel.update_channel.tried.app_error", map[string]interface{}{"Channel": model.DefaultChannelName}, "", http.StatusBadRequest)
return return
} }
} }
@@ -239,17 +239,17 @@ func convertChannelToPrivate(c *Context, w http.ResponseWriter, r *http.Request)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("channel", oldPublicChannel) auditRec.AddMeta("channel", oldPublicChannel)
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PERMISSION_CONVERT_PUBLIC_CHANNEL_TO_PRIVATE) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PermissionConvertPublicChannelToPrivate) {
c.SetPermissionError(model.PERMISSION_CONVERT_PUBLIC_CHANNEL_TO_PRIVATE) c.SetPermissionError(model.PermissionConvertPublicChannelToPrivate)
return return
} }
if oldPublicChannel.Type == model.CHANNEL_PRIVATE { if oldPublicChannel.Type == model.ChannelTypePrivate {
c.Err = model.NewAppError("convertChannelToPrivate", "api.channel.convert_channel_to_private.private_channel_error", nil, "", http.StatusBadRequest) c.Err = model.NewAppError("convertChannelToPrivate", "api.channel.convert_channel_to_private.private_channel_error", nil, "", http.StatusBadRequest)
return return
} }
if oldPublicChannel.Name == model.DEFAULT_CHANNEL { if oldPublicChannel.Name == model.DefaultChannelName {
c.Err = model.NewAppError("convertChannelToPrivate", "api.channel.convert_channel_to_private.default_channel_error", nil, "", http.StatusBadRequest) c.Err = model.NewAppError("convertChannelToPrivate", "api.channel.convert_channel_to_private.default_channel_error", nil, "", http.StatusBadRequest)
return return
} }
@@ -261,7 +261,7 @@ func convertChannelToPrivate(c *Context, w http.ResponseWriter, r *http.Request)
} }
auditRec.AddMeta("user", user) auditRec.AddMeta("user", user)
oldPublicChannel.Type = model.CHANNEL_PRIVATE oldPublicChannel.Type = model.ChannelTypePrivate
rchannel, err := c.App.UpdateChannelPrivacy(c.AppContext, oldPublicChannel, user) rchannel, err := c.App.UpdateChannelPrivacy(c.AppContext, oldPublicChannel, user)
if err != nil { if err != nil {
@@ -283,7 +283,7 @@ func updateChannelPrivacy(c *Context, w http.ResponseWriter, r *http.Request) {
props := model.StringInterfaceFromJson(r.Body) props := model.StringInterfaceFromJson(r.Body)
privacy, ok := props["privacy"].(string) privacy, ok := props["privacy"].(string)
if !ok || (privacy != model.CHANNEL_OPEN && privacy != model.CHANNEL_PRIVATE) { if !ok || (privacy != model.ChannelTypeOpen && privacy != model.ChannelTypePrivate) {
c.SetInvalidParam("privacy") c.SetInvalidParam("privacy")
return return
} }
@@ -299,17 +299,17 @@ func updateChannelPrivacy(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("channel", channel) auditRec.AddMeta("channel", channel)
auditRec.AddMeta("new_type", privacy) auditRec.AddMeta("new_type", privacy)
if privacy == model.CHANNEL_OPEN && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PERMISSION_CONVERT_PRIVATE_CHANNEL_TO_PUBLIC) { if privacy == model.ChannelTypeOpen && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PermissionConvertPrivateChannelToPublic) {
c.SetPermissionError(model.PERMISSION_CONVERT_PRIVATE_CHANNEL_TO_PUBLIC) c.SetPermissionError(model.PermissionConvertPrivateChannelToPublic)
return return
} }
if privacy == model.CHANNEL_PRIVATE && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PERMISSION_CONVERT_PUBLIC_CHANNEL_TO_PRIVATE) { if privacy == model.ChannelTypePrivate && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PermissionConvertPublicChannelToPrivate) {
c.SetPermissionError(model.PERMISSION_CONVERT_PUBLIC_CHANNEL_TO_PRIVATE) c.SetPermissionError(model.PermissionConvertPublicChannelToPrivate)
return return
} }
if channel.Name == model.DEFAULT_CHANNEL && privacy == model.CHANNEL_PRIVATE { if channel.Name == model.DefaultChannelName && privacy == model.ChannelTypePrivate {
c.Err = model.NewAppError("updateChannelPrivacy", "api.channel.update_channel_privacy.default_channel_error", nil, "", http.StatusBadRequest) c.Err = model.NewAppError("updateChannelPrivacy", "api.channel.update_channel_privacy.default_channel_error", nil, "", http.StatusBadRequest)
return return
} }
@@ -358,19 +358,19 @@ func patchChannel(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("channel", oldChannel) auditRec.AddMeta("channel", oldChannel)
switch oldChannel.Type { switch oldChannel.Type {
case model.CHANNEL_OPEN: case model.ChannelTypeOpen:
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PERMISSION_MANAGE_PUBLIC_CHANNEL_PROPERTIES) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PermissionManagePublicChannelProperties) {
c.SetPermissionError(model.PERMISSION_MANAGE_PUBLIC_CHANNEL_PROPERTIES) c.SetPermissionError(model.PermissionManagePublicChannelProperties)
return return
} }
case model.CHANNEL_PRIVATE: case model.ChannelTypePrivate:
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PERMISSION_MANAGE_PRIVATE_CHANNEL_PROPERTIES) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PermissionManagePrivateChannelProperties) {
c.SetPermissionError(model.PERMISSION_MANAGE_PRIVATE_CHANNEL_PROPERTIES) c.SetPermissionError(model.PermissionManagePrivateChannelProperties)
return return
} }
case model.CHANNEL_GROUP, model.CHANNEL_DIRECT: case model.ChannelTypeGroup, model.ChannelTypeDirect:
// Modifying the header is not linked to any specific permission for group/dm channels, so just check for membership. // Modifying the header is not linked to any specific permission for group/dm channels, so just check for membership.
if _, err = c.App.GetChannelMember(context.Background(), c.Params.ChannelId, c.AppContext.Session().UserId); err != nil { if _, err = c.App.GetChannelMember(context.Background(), c.Params.ChannelId, c.AppContext.Session().UserId); err != nil {
c.Err = model.NewAppError("patchChannel", "api.channel.patch_update_channel.forbidden.app_error", nil, "", http.StatusForbidden) c.Err = model.NewAppError("patchChannel", "api.channel.patch_update_channel.forbidden.app_error", nil, "", http.StatusForbidden)
@@ -418,8 +418,8 @@ func restoreChannel(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("channel", channel) auditRec.AddMeta("channel", channel)
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), teamId, model.PERMISSION_MANAGE_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), teamId, model.PermissionManageTeam) {
c.SetPermissionError(model.PERMISSION_MANAGE_TEAM) c.SetPermissionError(model.PermissionManageTeam)
return return
} }
@@ -457,13 +457,13 @@ func createDirectChannel(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec := c.MakeAuditRecord("createDirectChannel", audit.Fail) auditRec := c.MakeAuditRecord("createDirectChannel", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_CREATE_DIRECT_CHANNEL) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionCreateDirectChannel) {
c.SetPermissionError(model.PERMISSION_CREATE_DIRECT_CHANNEL) c.SetPermissionError(model.PermissionCreateDirectChannel)
return return
} }
if !allowed && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !allowed && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -481,7 +481,7 @@ func createDirectChannel(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if !canSee { if !canSee {
c.SetPermissionError(model.PERMISSION_VIEW_MEMBERS) c.SetPermissionError(model.PermissionViewMembers)
return return
} }
@@ -540,8 +540,8 @@ func createGroupChannel(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec := c.MakeAuditRecord("createGroupChannel", audit.Fail) auditRec := c.MakeAuditRecord("createGroupChannel", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_CREATE_GROUP_CHANNEL) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionCreateGroupChannel) {
c.SetPermissionError(model.PERMISSION_CREATE_GROUP_CHANNEL) c.SetPermissionError(model.PermissionCreateGroupChannel)
return return
} }
@@ -560,7 +560,7 @@ func createGroupChannel(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if !canSeeAll { if !canSeeAll {
c.SetPermissionError(model.PERMISSION_VIEW_MEMBERS) c.SetPermissionError(model.PermissionViewMembers)
return return
} }
@@ -589,14 +589,14 @@ func getChannel(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if channel.Type == model.CHANNEL_OPEN { if channel.Type == model.ChannelTypeOpen {
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PERMISSION_READ_PUBLIC_CHANNEL) && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PermissionReadPublicChannel) && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_PUBLIC_CHANNEL) c.SetPermissionError(model.PermissionReadPublicChannel)
return return
} }
} else { } else {
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
} }
@@ -617,12 +617,12 @@ func getChannelUnread(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
@@ -641,8 +641,8 @@ func getChannelStats(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
@@ -674,8 +674,8 @@ func getPinnedPosts(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
@@ -691,22 +691,22 @@ func getPinnedPosts(c *Context, w http.ResponseWriter, r *http.Request) {
clientPostList := c.App.PreparePostListForClient(posts) clientPostList := c.App.PreparePostListForClient(posts)
w.Header().Set(model.HEADER_ETAG_SERVER, clientPostList.Etag()) w.Header().Set(model.HeaderEtagServer, clientPostList.Etag())
w.Write([]byte(clientPostList.ToJson())) w.Write([]byte(clientPostList.ToJson()))
} }
func getAllChannels(c *Context, w http.ResponseWriter, r *http.Request) { func getAllChannels(c *Context, w http.ResponseWriter, r *http.Request) {
permissions := []*model.Permission{ permissions := []*model.Permission{
model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_GROUPS, model.PermissionSysconsoleReadUserManagementGroups,
model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_CHANNELS, model.PermissionSysconsoleReadUserManagementChannels,
} }
if !c.App.SessionHasPermissionToAny(*c.AppContext.Session(), permissions) { if !c.App.SessionHasPermissionToAny(*c.AppContext.Session(), permissions) {
c.SetPermissionError(permissions...) c.SetPermissionError(permissions...)
return return
} }
// Only system managers may use the ExcludePolicyConstrained parameter // Only system managers may use the ExcludePolicyConstrained parameter
if c.Params.ExcludePolicyConstrained && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) { if c.Params.ExcludePolicyConstrained && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadComplianceDataRetentionPolicy) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) c.SetPermissionError(model.PermissionSysconsoleReadComplianceDataRetentionPolicy)
return return
} }
@@ -716,7 +716,7 @@ func getAllChannels(c *Context, w http.ResponseWriter, r *http.Request) {
IncludeDeleted: c.Params.IncludeDeleted, IncludeDeleted: c.Params.IncludeDeleted,
ExcludePolicyConstrained: c.Params.ExcludePolicyConstrained, ExcludePolicyConstrained: c.Params.ExcludePolicyConstrained,
} }
if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) { if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadComplianceDataRetentionPolicy) {
opts.IncludePolicyID = true opts.IncludePolicyID = true
} }
@@ -751,8 +751,8 @@ func getPublicChannelsForTeam(c *Context, w http.ResponseWriter, r *http.Request
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_LIST_TEAM_CHANNELS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionListTeamChannels) {
c.SetPermissionError(model.PERMISSION_LIST_TEAM_CHANNELS) c.SetPermissionError(model.PermissionListTeamChannels)
return return
} }
@@ -798,8 +798,8 @@ func getPrivateChannelsForTeam(c *Context, w http.ResponseWriter, r *http.Reques
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -837,8 +837,8 @@ func getPublicChannelsByIdsForTeam(c *Context, w http.ResponseWriter, r *http.Re
} }
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_VIEW_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionViewTeam) {
c.SetPermissionError(model.PERMISSION_VIEW_TEAM) c.SetPermissionError(model.PermissionViewTeam)
return return
} }
@@ -864,12 +864,12 @@ func getChannelsForTeamForUser(c *Context, w http.ResponseWriter, r *http.Reques
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_VIEW_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionViewTeam) {
c.SetPermissionError(model.PERMISSION_VIEW_TEAM) c.SetPermissionError(model.PermissionViewTeam)
return return
} }
@@ -899,7 +899,7 @@ func getChannelsForTeamForUser(c *Context, w http.ResponseWriter, r *http.Reques
return return
} }
w.Header().Set(model.HEADER_ETAG_SERVER, channels.Etag()) w.Header().Set(model.HeaderEtagServer, channels.Etag())
w.Write([]byte(channels.ToJson())) w.Write([]byte(channels.ToJson()))
} }
@@ -909,8 +909,8 @@ func autocompleteChannelsForTeam(c *Context, w http.ResponseWriter, r *http.Requ
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_LIST_TEAM_CHANNELS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionListTeamChannels) {
c.SetPermissionError(model.PERMISSION_LIST_TEAM_CHANNELS) c.SetPermissionError(model.PermissionListTeamChannels)
return return
} }
@@ -958,7 +958,7 @@ func searchChannelsForTeam(c *Context, w http.ResponseWriter, r *http.Request) {
var channels *model.ChannelList var channels *model.ChannelList
var err *model.AppError var err *model.AppError
if c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_LIST_TEAM_CHANNELS) { if c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionListTeamChannels) {
channels, err = c.App.SearchChannels(c.Params.TeamId, props.Term) channels, err = c.App.SearchChannels(c.Params.TeamId, props.Term)
} else { } else {
// If the user is not a team member, return a 404 // If the user is not a team member, return a 404
@@ -994,7 +994,7 @@ func searchArchivedChannelsForTeam(c *Context, w http.ResponseWriter, r *http.Re
var channels *model.ChannelList var channels *model.ChannelList
var err *model.AppError var err *model.AppError
if c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_LIST_TEAM_CHANNELS) { if c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionListTeamChannels) {
channels, err = c.App.SearchArchivedChannels(c.Params.TeamId, props.Term, c.AppContext.Session().UserId) channels, err = c.App.SearchArchivedChannels(c.Params.TeamId, props.Term, c.AppContext.Session().UserId)
} else { } else {
// If the user is not a team member, return a 404 // If the user is not a team member, return a 404
@@ -1023,13 +1023,13 @@ func searchAllChannels(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
// Only system managers may use the ExcludePolicyConstrained field // Only system managers may use the ExcludePolicyConstrained field
if props.ExcludePolicyConstrained && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) { if props.ExcludePolicyConstrained && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadComplianceDataRetentionPolicy) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) c.SetPermissionError(model.PermissionSysconsoleReadComplianceDataRetentionPolicy)
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_CHANNELS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadUserManagementChannels) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_CHANNELS) c.SetPermissionError(model.PermissionSysconsoleReadUserManagementChannels)
return return
} }
includeDeleted, _ := strconv.ParseBool(r.URL.Query().Get("include_deleted")) includeDeleted, _ := strconv.ParseBool(r.URL.Query().Get("include_deleted"))
@@ -1049,7 +1049,7 @@ func searchAllChannels(c *Context, w http.ResponseWriter, r *http.Request) {
Page: props.Page, Page: props.Page,
PerPage: props.PerPage, PerPage: props.PerPage,
} }
if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) { if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadComplianceDataRetentionPolicy) {
opts.IncludePolicyID = true opts.IncludePolicyID = true
} }
@@ -1087,18 +1087,18 @@ func deleteChannel(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("channeld", channel) auditRec.AddMeta("channeld", channel)
if channel.Type == model.CHANNEL_DIRECT || channel.Type == model.CHANNEL_GROUP { if channel.Type == model.ChannelTypeDirect || channel.Type == model.ChannelTypeGroup {
c.Err = model.NewAppError("deleteChannel", "api.channel.delete_channel.type.invalid", nil, "", http.StatusBadRequest) c.Err = model.NewAppError("deleteChannel", "api.channel.delete_channel.type.invalid", nil, "", http.StatusBadRequest)
return return
} }
if channel.Type == model.CHANNEL_OPEN && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PERMISSION_DELETE_PUBLIC_CHANNEL) { if channel.Type == model.ChannelTypeOpen && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PermissionDeletePublicChannel) {
c.SetPermissionError(model.PERMISSION_DELETE_PUBLIC_CHANNEL) c.SetPermissionError(model.PermissionDeletePublicChannel)
return return
} }
if channel.Type == model.CHANNEL_PRIVATE && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PERMISSION_DELETE_PRIVATE_CHANNEL) { if channel.Type == model.ChannelTypePrivate && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PermissionDeletePrivateChannel) {
c.SetPermissionError(model.PERMISSION_DELETE_PRIVATE_CHANNEL) c.SetPermissionError(model.PermissionDeletePrivateChannel)
return return
} }
@@ -1135,13 +1135,13 @@ func getChannelByName(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if channel.Type == model.CHANNEL_OPEN { if channel.Type == model.ChannelTypeOpen {
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PERMISSION_READ_PUBLIC_CHANNEL) && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PermissionReadPublicChannel) && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_PUBLIC_CHANNEL) c.SetPermissionError(model.PermissionReadPublicChannel)
return return
} }
} else { } else {
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PermissionReadChannel) {
c.Err = model.NewAppError("getChannelByName", "app.channel.get_by_name.missing.app_error", nil, "teamId="+channel.TeamId+", "+"name="+channel.Name+"", http.StatusNotFound) c.Err = model.NewAppError("getChannelByName", "app.channel.get_by_name.missing.app_error", nil, "teamId="+channel.TeamId+", "+"name="+channel.Name+"", http.StatusNotFound)
return return
} }
@@ -1169,12 +1169,12 @@ func getChannelByNameForTeamName(c *Context, w http.ResponseWriter, r *http.Requ
return return
} }
teamOk := c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PERMISSION_READ_PUBLIC_CHANNEL) teamOk := c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PermissionReadPublicChannel)
channelOk := c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PERMISSION_READ_CHANNEL) channelOk := c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PermissionReadChannel)
if channel.Type == model.CHANNEL_OPEN { if channel.Type == model.ChannelTypeOpen {
if !teamOk && !channelOk { if !teamOk && !channelOk {
c.SetPermissionError(model.PERMISSION_READ_PUBLIC_CHANNEL) c.SetPermissionError(model.PermissionReadPublicChannel)
return return
} }
} else if !channelOk { } else if !channelOk {
@@ -1197,8 +1197,8 @@ func getChannelMembers(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
@@ -1217,8 +1217,8 @@ func getChannelMembersTimezones(c *Context, w http.ResponseWriter, r *http.Reque
return return
} }
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
@@ -1243,8 +1243,8 @@ func getChannelMembersByIds(c *Context, w http.ResponseWriter, r *http.Request)
return return
} }
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
@@ -1263,8 +1263,8 @@ func getChannelMember(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
@@ -1283,13 +1283,13 @@ func getChannelMembersForUser(c *Context, w http.ResponseWriter, r *http.Request
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_VIEW_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionViewTeam) {
c.SetPermissionError(model.PERMISSION_VIEW_TEAM) c.SetPermissionError(model.PermissionViewTeam)
return return
} }
if c.AppContext.Session().UserId != c.Params.UserId && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_MANAGE_SYSTEM) { if c.AppContext.Session().UserId != c.Params.UserId && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -1309,7 +1309,7 @@ func viewChannel(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -1367,8 +1367,8 @@ func updateChannelMemberRoles(c *Context, w http.ResponseWriter, r *http.Request
auditRec.AddMeta("channel_id", c.Params.ChannelId) auditRec.AddMeta("channel_id", c.Params.ChannelId)
auditRec.AddMeta("roles", newRoles) auditRec.AddMeta("roles", newRoles)
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PERMISSION_MANAGE_CHANNEL_ROLES) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PermissionManageChannelRoles) {
c.SetPermissionError(model.PERMISSION_MANAGE_CHANNEL_ROLES) c.SetPermissionError(model.PermissionManageChannelRoles)
return return
} }
@@ -1399,8 +1399,8 @@ func updateChannelMemberSchemeRoles(c *Context, w http.ResponseWriter, r *http.R
auditRec.AddMeta("channel_id", c.Params.ChannelId) auditRec.AddMeta("channel_id", c.Params.ChannelId)
auditRec.AddMeta("roles", schemeRoles) auditRec.AddMeta("roles", schemeRoles)
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PERMISSION_MANAGE_CHANNEL_ROLES) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PermissionManageChannelRoles) {
c.SetPermissionError(model.PERMISSION_MANAGE_CHANNEL_ROLES) c.SetPermissionError(model.PermissionManageChannelRoles)
return return
} }
@@ -1432,7 +1432,7 @@ func updateChannelMemberNotifyProps(c *Context, w http.ResponseWriter, r *http.R
auditRec.AddMeta("props", props) auditRec.AddMeta("props", props)
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -1493,7 +1493,7 @@ func addChannelMember(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("channel", channel) auditRec.AddMeta("channel", channel)
if channel.Type == model.CHANNEL_DIRECT || channel.Type == model.CHANNEL_GROUP { if channel.Type == model.ChannelTypeDirect || channel.Type == model.ChannelTypeGroup {
c.Err = model.NewAppError("addUserToChannel", "api.channel.add_user_to_channel.type.app_error", nil, "", http.StatusBadRequest) c.Err = model.NewAppError("addUserToChannel", "api.channel.add_user_to_channel.type.app_error", nil, "", http.StatusBadRequest)
return return
} }
@@ -1510,33 +1510,33 @@ func addChannelMember(c *Context, w http.ResponseWriter, r *http.Request) {
isSelfAdd := member.UserId == c.AppContext.Session().UserId isSelfAdd := member.UserId == c.AppContext.Session().UserId
if channel.Type == model.CHANNEL_OPEN { if channel.Type == model.ChannelTypeOpen {
if isSelfAdd && isNewMembership { if isSelfAdd && isNewMembership {
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PERMISSION_JOIN_PUBLIC_CHANNELS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PermissionJoinPublicChannels) {
c.SetPermissionError(model.PERMISSION_JOIN_PUBLIC_CHANNELS) c.SetPermissionError(model.PermissionJoinPublicChannels)
return return
} }
} else if isSelfAdd && !isNewMembership { } else if isSelfAdd && !isNewMembership {
// nothing to do, since already in the channel // nothing to do, since already in the channel
} else if !isSelfAdd { } else if !isSelfAdd {
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PERMISSION_MANAGE_PUBLIC_CHANNEL_MEMBERS) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PermissionManagePublicChannelMembers) {
c.SetPermissionError(model.PERMISSION_MANAGE_PUBLIC_CHANNEL_MEMBERS) c.SetPermissionError(model.PermissionManagePublicChannelMembers)
return return
} }
} }
} }
if channel.Type == model.CHANNEL_PRIVATE { if channel.Type == model.ChannelTypePrivate {
if isSelfAdd && isNewMembership { if isSelfAdd && isNewMembership {
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PERMISSION_MANAGE_PRIVATE_CHANNEL_MEMBERS) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PermissionManagePrivateChannelMembers) {
c.SetPermissionError(model.PERMISSION_MANAGE_PRIVATE_CHANNEL_MEMBERS) c.SetPermissionError(model.PermissionManagePrivateChannelMembers)
return return
} }
} else if isSelfAdd && !isNewMembership { } else if isSelfAdd && !isNewMembership {
// nothing to do, since already in the channel // nothing to do, since already in the channel
} else if !isSelfAdd { } else if !isSelfAdd {
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PERMISSION_MANAGE_PRIVATE_CHANNEL_MEMBERS) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PermissionManagePrivateChannelMembers) {
c.SetPermissionError(model.PERMISSION_MANAGE_PRIVATE_CHANNEL_MEMBERS) c.SetPermissionError(model.PermissionManagePrivateChannelMembers)
return return
} }
} }
@@ -1598,7 +1598,7 @@ func removeChannelMember(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("channel", channel) auditRec.AddMeta("channel", channel)
auditRec.AddMeta("remove_user_id", user.Id) auditRec.AddMeta("remove_user_id", user.Id)
if !(channel.Type == model.CHANNEL_OPEN || channel.Type == model.CHANNEL_PRIVATE) { if !(channel.Type == model.ChannelTypeOpen || channel.Type == model.ChannelTypePrivate) {
c.Err = model.NewAppError("removeChannelMember", "api.channel.remove_channel_member.type.app_error", nil, "", http.StatusBadRequest) c.Err = model.NewAppError("removeChannelMember", "api.channel.remove_channel_member.type.app_error", nil, "", http.StatusBadRequest)
return return
} }
@@ -1609,13 +1609,13 @@ func removeChannelMember(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if c.Params.UserId != c.AppContext.Session().UserId { if c.Params.UserId != c.AppContext.Session().UserId {
if channel.Type == model.CHANNEL_OPEN && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PERMISSION_MANAGE_PUBLIC_CHANNEL_MEMBERS) { if channel.Type == model.ChannelTypeOpen && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PermissionManagePublicChannelMembers) {
c.SetPermissionError(model.PERMISSION_MANAGE_PUBLIC_CHANNEL_MEMBERS) c.SetPermissionError(model.PermissionManagePublicChannelMembers)
return return
} }
if channel.Type == model.CHANNEL_PRIVATE && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PERMISSION_MANAGE_PRIVATE_CHANNEL_MEMBERS) { if channel.Type == model.ChannelTypePrivate && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PermissionManagePrivateChannelMembers) {
c.SetPermissionError(model.PERMISSION_MANAGE_PRIVATE_CHANNEL_MEMBERS) c.SetPermissionError(model.PermissionManagePrivateChannelMembers)
return return
} }
} }
@@ -1652,8 +1652,8 @@ func updateChannelScheme(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -1663,7 +1663,7 @@ func updateChannelScheme(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if scheme.Scope != model.SCHEME_SCOPE_CHANNEL { if scheme.Scope != model.SchemeScopeChannel {
c.Err = model.NewAppError("Api4.UpdateChannelScheme", "api.channel.update_channel_scheme.scheme_scope.error", nil, "", http.StatusBadRequest) c.Err = model.NewAppError("Api4.UpdateChannelScheme", "api.channel.update_channel_scheme.scheme_scope.error", nil, "", http.StatusBadRequest)
return return
} }
@@ -1712,8 +1712,8 @@ func channelMembersMinusGroupMembers(c *Context, w http.ResponseWriter, r *http.
groupIDs = append(groupIDs, gid) groupIDs = append(groupIDs, gid)
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_CHANNELS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadUserManagementChannels) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_CHANNELS) c.SetPermissionError(model.PermissionSysconsoleReadUserManagementChannels)
return return
} }
@@ -1751,8 +1751,8 @@ func channelMemberCountsByGroup(c *Context, w http.ResponseWriter, r *http.Reque
return return
} }
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
@@ -1784,8 +1784,8 @@ func getChannelModerations(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_CHANNELS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadUserManagementChannels) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_CHANNELS) c.SetPermissionError(model.PermissionSysconsoleReadUserManagementChannels)
return return
} }
@@ -1824,8 +1824,8 @@ func patchChannelModerations(c *Context, w http.ResponseWriter, r *http.Request)
auditRec := c.MakeAuditRecord("patchChannelModerations", audit.Fail) auditRec := c.MakeAuditRecord("patchChannelModerations", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_CHANNELS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteUserManagementChannels) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_CHANNELS) c.SetPermissionError(model.PermissionSysconsoleWriteUserManagementChannels)
return return
} }
@@ -1892,13 +1892,13 @@ func moveChannel(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("team_id", team.Id) auditRec.AddMeta("team_id", team.Id)
auditRec.AddMeta("team_name", team.Name) auditRec.AddMeta("team_name", team.Name)
if channel.Type == model.CHANNEL_DIRECT || channel.Type == model.CHANNEL_GROUP { if channel.Type == model.ChannelTypeDirect || channel.Type == model.ChannelTypeGroup {
c.Err = model.NewAppError("moveChannel", "api.channel.move_channel.type.invalid", nil, "", http.StatusForbidden) c.Err = model.NewAppError("moveChannel", "api.channel.move_channel.type.invalid", nil, "", http.StatusForbidden)
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }

Просмотреть файл

@@ -18,7 +18,7 @@ func getCategoriesForTeamForUser(c *Context, w http.ResponseWriter, r *http.Requ
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -38,7 +38,7 @@ func createCategoryForTeamForUser(c *Context, w http.ResponseWriter, r *http.Req
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -73,7 +73,7 @@ func getCategoryOrderForTeamForUser(c *Context, w http.ResponseWriter, r *http.R
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -93,7 +93,7 @@ func updateCategoryOrderForTeamForUser(c *Context, w http.ResponseWriter, r *htt
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -126,7 +126,7 @@ func getCategoryForTeamForUser(c *Context, w http.ResponseWriter, r *http.Reques
} }
if !c.App.SessionHasPermissionToCategory(*c.AppContext.Session(), c.Params.UserId, c.Params.TeamId, c.Params.CategoryId) { if !c.App.SessionHasPermissionToCategory(*c.AppContext.Session(), c.Params.UserId, c.Params.TeamId, c.Params.CategoryId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -146,7 +146,7 @@ func updateCategoriesForTeamForUser(c *Context, w http.ResponseWriter, r *http.R
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -234,7 +234,7 @@ func updateCategoryForTeamForUser(c *Context, w http.ResponseWriter, r *http.Req
} }
if !c.App.SessionHasPermissionToCategory(*c.AppContext.Session(), c.Params.UserId, c.Params.TeamId, c.Params.CategoryId) { if !c.App.SessionHasPermissionToCategory(*c.AppContext.Session(), c.Params.UserId, c.Params.TeamId, c.Params.CategoryId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -271,7 +271,7 @@ func deleteCategoryForTeamForUser(c *Context, w http.ResponseWriter, r *http.Req
} }
if !c.App.SessionHasPermissionToCategory(*c.AppContext.Session(), c.Params.UserId, c.Params.TeamId, c.Params.CategoryId) { if !c.App.SessionHasPermissionToCategory(*c.AppContext.Session(), c.Params.UserId, c.Params.TeamId, c.Params.CategoryId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }

Просмотреть файл

@@ -51,7 +51,7 @@ func TestCreateCategoryForTeamForUser(t *testing.T) {
// Have another user create a channel that user isn't a part of // Have another user create a channel that user isn't a part of
channel, resp := th.SystemAdminClient.CreateChannel(&model.Channel{ channel, resp := th.SystemAdminClient.CreateChannel(&model.Channel{
TeamId: th.BasicTeam.Id, TeamId: th.BasicTeam.Id,
Type: model.CHANNEL_OPEN, Type: model.ChannelTypeOpen,
Name: "testchannel", Name: "testchannel",
}) })
require.Nil(t, resp.Error) require.Nil(t, resp.Error)
@@ -235,7 +235,7 @@ func TestUpdateCategoryForTeamForUser(t *testing.T) {
// Have another user create a channel that user isn't a part of // Have another user create a channel that user isn't a part of
channel, resp := th.SystemAdminClient.CreateChannel(&model.Channel{ channel, resp := th.SystemAdminClient.CreateChannel(&model.Channel{
TeamId: th.BasicTeam.Id, TeamId: th.BasicTeam.Id,
Type: model.CHANNEL_OPEN, Type: model.ChannelTypeOpen,
Name: "testchannel", Name: "testchannel",
}) })
require.Nil(t, resp.Error) require.Nil(t, resp.Error)
@@ -381,7 +381,7 @@ func TestUpdateCategoriesForTeamForUser(t *testing.T) {
// Have another user create a channel that user isn't a part of // Have another user create a channel that user isn't a part of
channel, resp := th.SystemAdminClient.CreateChannel(&model.Channel{ channel, resp := th.SystemAdminClient.CreateChannel(&model.Channel{
TeamId: th.BasicTeam.Id, TeamId: th.BasicTeam.Id,
Type: model.CHANNEL_OPEN, Type: model.ChannelTypeOpen,
Name: "testchannel", Name: "testchannel",
}) })
require.Nil(t, resp.Error) require.Nil(t, resp.Error)

Просмотреть файл

@@ -68,7 +68,7 @@ func localUpdateChannelPrivacy(c *Context, w http.ResponseWriter, r *http.Reques
props := model.StringInterfaceFromJson(r.Body) props := model.StringInterfaceFromJson(r.Body)
privacy, ok := props["privacy"].(string) privacy, ok := props["privacy"].(string)
if !ok || (privacy != model.CHANNEL_OPEN && privacy != model.CHANNEL_PRIVATE) { if !ok || (privacy != model.ChannelTypeOpen && privacy != model.ChannelTypePrivate) {
c.SetInvalidParam("privacy") c.SetInvalidParam("privacy")
return return
} }
@@ -84,7 +84,7 @@ func localUpdateChannelPrivacy(c *Context, w http.ResponseWriter, r *http.Reques
auditRec.AddMeta("channel", channel) auditRec.AddMeta("channel", channel)
auditRec.AddMeta("new_type", privacy) auditRec.AddMeta("new_type", privacy)
if channel.Name == model.DEFAULT_CHANNEL && privacy == model.CHANNEL_PRIVATE { if channel.Name == model.DefaultChannelName && privacy == model.ChannelTypePrivate {
c.Err = model.NewAppError("updateChannelPrivacy", "api.channel.update_channel_privacy.default_channel_error", nil, "", http.StatusBadRequest) c.Err = model.NewAppError("updateChannelPrivacy", "api.channel.update_channel_privacy.default_channel_error", nil, "", http.StatusBadRequest)
return return
} }
@@ -176,7 +176,7 @@ func localAddChannelMember(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("channel", channel) auditRec.AddMeta("channel", channel)
if channel.Type == model.CHANNEL_DIRECT || channel.Type == model.CHANNEL_GROUP { if channel.Type == model.ChannelTypeDirect || channel.Type == model.ChannelTypeGroup {
c.Err = model.NewAppError("localAddChannelMember", "api.channel.add_user_to_channel.type.app_error", nil, "", http.StatusBadRequest) c.Err = model.NewAppError("localAddChannelMember", "api.channel.add_user_to_channel.type.app_error", nil, "", http.StatusBadRequest)
return return
} }
@@ -231,7 +231,7 @@ func localRemoveChannelMember(c *Context, w http.ResponseWriter, r *http.Request
return return
} }
if !(channel.Type == model.CHANNEL_OPEN || channel.Type == model.CHANNEL_PRIVATE) { if !(channel.Type == model.ChannelTypeOpen || channel.Type == model.ChannelTypePrivate) {
c.Err = model.NewAppError("removeChannelMember", "api.channel.remove_channel_member.type.app_error", nil, "", http.StatusBadRequest) c.Err = model.NewAppError("removeChannelMember", "api.channel.remove_channel_member.type.app_error", nil, "", http.StatusBadRequest)
return return
} }
@@ -338,7 +338,7 @@ func localMoveChannel(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("team_id", team.Id) auditRec.AddMeta("team_id", team.Id)
auditRec.AddMeta("team_name", team.Name) auditRec.AddMeta("team_name", team.Name)
if channel.Type == model.CHANNEL_DIRECT || channel.Type == model.CHANNEL_GROUP { if channel.Type == model.ChannelTypeDirect || channel.Type == model.ChannelTypeGroup {
c.Err = model.NewAppError("moveChannel", "api.channel.move_channel.type.invalid", nil, "", http.StatusForbidden) c.Err = model.NewAppError("moveChannel", "api.channel.move_channel.type.invalid", nil, "", http.StatusForbidden)
return return
} }
@@ -386,7 +386,7 @@ func localDeleteChannel(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("channeld", channel) auditRec.AddMeta("channeld", channel)
if channel.Type == model.CHANNEL_DIRECT || channel.Type == model.CHANNEL_GROUP { if channel.Type == model.ChannelTypeDirect || channel.Type == model.ChannelTypeGroup {
c.Err = model.NewAppError("localDeleteChannel", "api.channel.delete_channel.type.invalid", nil, "", http.StatusBadRequest) c.Err = model.NewAppError("localDeleteChannel", "api.channel.delete_channel.type.invalid", nil, "", http.StatusBadRequest)
return return
} }

Просмотреть файл

@@ -30,8 +30,8 @@ func TestCreateChannel(t *testing.T) {
Client := th.Client Client := th.Client
team := th.BasicTeam team := th.BasicTeam
channel := &model.Channel{DisplayName: "Test API Name", Name: GenerateTestChannelName(), Type: model.CHANNEL_OPEN, TeamId: team.Id} channel := &model.Channel{DisplayName: "Test API Name", Name: GenerateTestChannelName(), Type: model.ChannelTypeOpen, TeamId: team.Id}
private := &model.Channel{DisplayName: "Test API Name", Name: GenerateTestChannelName(), Type: model.CHANNEL_PRIVATE, TeamId: team.Id} private := &model.Channel{DisplayName: "Test API Name", Name: GenerateTestChannelName(), Type: model.ChannelTypePrivate, TeamId: team.Id}
rchannel, resp := Client.CreateChannel(channel) rchannel, resp := Client.CreateChannel(channel)
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -45,14 +45,14 @@ func TestCreateChannel(t *testing.T) {
CheckNoError(t, resp) CheckNoError(t, resp)
require.Equal(t, private.Name, rprivate.Name, "names did not match") require.Equal(t, private.Name, rprivate.Name, "names did not match")
require.Equal(t, model.CHANNEL_PRIVATE, rprivate.Type, "wrong channel type") require.Equal(t, model.ChannelTypePrivate, rprivate.Type, "wrong channel type")
require.Equal(t, th.BasicUser.Id, rprivate.CreatorId, "wrong creator id") require.Equal(t, th.BasicUser.Id, rprivate.CreatorId, "wrong creator id")
_, resp = Client.CreateChannel(channel) _, resp = Client.CreateChannel(channel)
CheckErrorMessage(t, resp, "store.sql_channel.save_channel.exists.app_error") CheckErrorMessage(t, resp, "store.sql_channel.save_channel.exists.app_error")
CheckBadRequestStatus(t, resp) CheckBadRequestStatus(t, resp)
direct := &model.Channel{DisplayName: "Test API Name", Name: GenerateTestChannelName(), Type: model.CHANNEL_DIRECT, TeamId: team.Id} direct := &model.Channel{DisplayName: "Test API Name", Name: GenerateTestChannelName(), Type: model.ChannelTypeDirect, TeamId: team.Id}
_, resp = Client.CreateChannel(direct) _, resp = Client.CreateChannel(direct)
CheckErrorMessage(t, resp, "api.channel.create_channel.direct_channel.app_error") CheckErrorMessage(t, resp, "api.channel.create_channel.direct_channel.app_error")
CheckBadRequestStatus(t, resp) CheckBadRequestStatus(t, resp)
@@ -76,8 +76,8 @@ func TestCreateChannel(t *testing.T) {
th.RestoreDefaultRolePermissions(defaultRolePermissions) th.RestoreDefaultRolePermissions(defaultRolePermissions)
}() }()
th.AddPermissionToRole(model.PERMISSION_CREATE_PUBLIC_CHANNEL.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreatePublicChannel.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_CREATE_PRIVATE_CHANNEL.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreatePrivateChannel.Id, model.TeamUserRoleId)
th.LoginBasic() th.LoginBasic()
@@ -89,10 +89,10 @@ func TestCreateChannel(t *testing.T) {
_, resp = Client.CreateChannel(private) _, resp = Client.CreateChannel(private)
CheckNoError(t, resp) CheckNoError(t, resp)
th.AddPermissionToRole(model.PERMISSION_CREATE_PUBLIC_CHANNEL.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionCreatePublicChannel.Id, model.TeamAdminRoleId)
th.AddPermissionToRole(model.PERMISSION_CREATE_PRIVATE_CHANNEL.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionCreatePrivateChannel.Id, model.TeamAdminRoleId)
th.RemovePermissionFromRole(model.PERMISSION_CREATE_PUBLIC_CHANNEL.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionCreatePublicChannel.Id, model.TeamUserRoleId)
th.RemovePermissionFromRole(model.PERMISSION_CREATE_PRIVATE_CHANNEL.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionCreatePrivateChannel.Id, model.TeamUserRoleId)
_, resp = Client.CreateChannel(channel) _, resp = Client.CreateChannel(channel)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
@@ -126,7 +126,7 @@ func TestCreateChannel(t *testing.T) {
require.Equal(t, http.StatusBadRequest, r.StatusCode, "Expected 400 Bad Request") require.Equal(t, http.StatusBadRequest, r.StatusCode, "Expected 400 Bad Request")
// Test GroupConstrained flag // Test GroupConstrained flag
groupConstrainedChannel := &model.Channel{DisplayName: "Test API Name", Name: GenerateTestChannelName(), Type: model.CHANNEL_OPEN, TeamId: team.Id, GroupConstrained: model.NewBool(true)} groupConstrainedChannel := &model.Channel{DisplayName: "Test API Name", Name: GenerateTestChannelName(), Type: model.ChannelTypeOpen, TeamId: team.Id, GroupConstrained: model.NewBool(true)}
rchannel, resp = Client.CreateChannel(groupConstrainedChannel) rchannel, resp = Client.CreateChannel(groupConstrainedChannel)
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -139,8 +139,8 @@ func TestUpdateChannel(t *testing.T) {
Client := th.Client Client := th.Client
team := th.BasicTeam team := th.BasicTeam
channel := &model.Channel{DisplayName: "Test API Name", Name: GenerateTestChannelName(), Type: model.CHANNEL_OPEN, TeamId: team.Id} channel := &model.Channel{DisplayName: "Test API Name", Name: GenerateTestChannelName(), Type: model.ChannelTypeOpen, TeamId: team.Id}
private := &model.Channel{DisplayName: "Test API Name", Name: GenerateTestChannelName(), Type: model.CHANNEL_PRIVATE, TeamId: team.Id} private := &model.Channel{DisplayName: "Test API Name", Name: GenerateTestChannelName(), Type: model.ChannelTypePrivate, TeamId: team.Id}
channel, _ = Client.CreateChannel(channel) channel, _ = Client.CreateChannel(channel)
private, _ = Client.CreateChannel(private) private, _ = Client.CreateChannel(private)
@@ -179,18 +179,18 @@ func TestUpdateChannel(t *testing.T) {
// Test that changing the type fails and returns error // Test that changing the type fails and returns error
private.Type = model.CHANNEL_OPEN private.Type = model.ChannelTypeOpen
newPrivateChannel, resp = Client.UpdateChannel(private) newPrivateChannel, resp = Client.UpdateChannel(private)
CheckBadRequestStatus(t, resp) CheckBadRequestStatus(t, resp)
// Test that keeping the same type succeeds // Test that keeping the same type succeeds
private.Type = model.CHANNEL_PRIVATE private.Type = model.ChannelTypePrivate
newPrivateChannel, resp = Client.UpdateChannel(private) newPrivateChannel, resp = Client.UpdateChannel(private)
CheckNoError(t, resp) CheckNoError(t, resp)
//Non existing channel //Non existing channel
channel1 := &model.Channel{DisplayName: "Test API Name for apiv4", Name: GenerateTestChannelName(), Type: model.CHANNEL_OPEN, TeamId: team.Id} channel1 := &model.Channel{DisplayName: "Test API Name for apiv4", Name: GenerateTestChannelName(), Type: model.ChannelTypeOpen, TeamId: team.Id}
_, resp = Client.UpdateChannel(channel1) _, resp = Client.UpdateChannel(channel1)
CheckNotFoundStatus(t, resp) CheckNotFoundStatus(t, resp)
@@ -335,7 +335,7 @@ func TestChannelUnicodeNames(t *testing.T) {
channel := &model.Channel{ channel := &model.Channel{
Name: "\u206cenglish\u206dchannel", Name: "\u206cenglish\u206dchannel",
DisplayName: "The \u206cEnglish\u206d Channel", DisplayName: "The \u206cEnglish\u206d Channel",
Type: model.CHANNEL_OPEN, Type: model.ChannelTypeOpen,
TeamId: team.Id} TeamId: team.Id}
rchannel, resp := Client.CreateChannel(channel) rchannel, resp := Client.CreateChannel(channel)
@@ -350,7 +350,7 @@ func TestChannelUnicodeNames(t *testing.T) {
channel := &model.Channel{ channel := &model.Channel{
DisplayName: "Test API Name", DisplayName: "Test API Name",
Name: GenerateTestChannelName(), Name: GenerateTestChannelName(),
Type: model.CHANNEL_OPEN, Type: model.ChannelTypeOpen,
TeamId: team.Id, TeamId: team.Id,
} }
channel, _ = Client.CreateChannel(channel) channel, _ = Client.CreateChannel(channel)
@@ -425,7 +425,7 @@ func TestCreateDirectChannel(t *testing.T) {
// Normal client should not be allowed to create a direct channel if users are // Normal client should not be allowed to create a direct channel if users are
// restricted to messaging members of their own team // restricted to messaging members of their own team
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.TeamSettings.RestrictDirectMessage = model.DIRECT_MESSAGE_TEAM *cfg.TeamSettings.RestrictDirectMessage = model.DirectMessageTeam
}) })
user4 := th.CreateUser() user4 := th.CreateUser()
_, resp = th.Client.CreateDirectChannel(user1.Id, user4.Id) _, resp = th.Client.CreateDirectChannel(user1.Id, user4.Id)
@@ -516,7 +516,7 @@ func TestCreateGroupChannel(t *testing.T) {
CheckCreatedStatus(t, resp) CheckCreatedStatus(t, resp)
require.NotNil(t, rgc, "should have created a group channel") require.NotNil(t, rgc, "should have created a group channel")
require.Equal(t, model.CHANNEL_GROUP, rgc.Type, "should have created a channel of group type") require.Equal(t, model.ChannelTypeGroup, rgc.Type, "should have created a channel of group type")
m, _ := th.App.GetChannelMembersPage(rgc.Id, 0, 10) m, _ := th.App.GetChannelMembersPage(rgc.Id, 0, 10)
require.Len(t, *m, 3, "should have 3 channel members") require.Len(t, *m, 3, "should have 3 channel members")
@@ -769,7 +769,7 @@ func TestGetPrivateChannelsForTeam(t *testing.T) {
require.Len(t, channels, 2, "wrong number of private channels") require.Len(t, channels, 2, "wrong number of private channels")
for _, c := range channels { for _, c := range channels {
// check all channels included are private // check all channels included are private
require.Equal(t, model.CHANNEL_PRIVATE, c.Type, "should include private channels only") require.Equal(t, model.ChannelTypePrivate, c.Type, "should include private channels only")
} }
channels, resp = c.GetPrivateChannelsForTeam(team.Id, 0, 1, "") channels, resp = c.GetPrivateChannelsForTeam(team.Id, 0, 1, "")
@@ -803,7 +803,7 @@ func TestGetPublicChannelsForTeam(t *testing.T) {
for i, c := range channels { for i, c := range channels {
// check all channels included are open // check all channels included are open
require.Equal(t, model.CHANNEL_OPEN, c.Type, "should include open channel only") require.Equal(t, model.ChannelTypeOpen, c.Type, "should include open channel only")
// only check the created 2 public channels // only check the created 2 public channels
require.False(t, i < 2 && !(c.DisplayName == publicChannel1.DisplayName || c.DisplayName == publicChannel2.DisplayName), "should match public channel display name") require.False(t, i < 2 && !(c.DisplayName == publicChannel1.DisplayName || c.DisplayName == publicChannel2.DisplayName), "should match public channel display name")
@@ -815,7 +815,7 @@ func TestGetPublicChannelsForTeam(t *testing.T) {
require.Len(t, channels, 4, "incorrect length of team public channels") require.Len(t, channels, 4, "incorrect length of team public channels")
for _, c := range channels { for _, c := range channels {
require.Equal(t, model.CHANNEL_OPEN, c.Type, "should not include private channel") require.Equal(t, model.ChannelTypeOpen, c.Type, "should not include private channel")
require.NotEqual(t, privateChannel.DisplayName, c.DisplayName, "should not match private channel display name") require.NotEqual(t, privateChannel.DisplayName, c.DisplayName, "should not match private channel display name")
} }
@@ -952,7 +952,7 @@ func TestGetChannelsForTeamForUser(t *testing.T) {
testChannel := &model.Channel{ testChannel := &model.Channel{
DisplayName: "dn_" + model.NewId(), DisplayName: "dn_" + model.NewId(),
Name: GenerateTestChannelName(), Name: GenerateTestChannelName(),
Type: model.CHANNEL_OPEN, Type: model.ChannelTypeOpen,
TeamId: th.BasicTeam.Id, TeamId: th.BasicTeam.Id,
CreatorId: th.BasicUser.Id, CreatorId: th.BasicUser.Id,
} }
@@ -1139,7 +1139,7 @@ func TestSearchChannels(t *testing.T) {
found := false found := false
for _, c := range channels { for _, c := range channels {
require.Equal(t, model.CHANNEL_OPEN, c.Type, "should only return public channels") require.Equal(t, model.ChannelTypeOpen, c.Type, "should only return public channels")
if c.Id == th.BasicChannel.Id { if c.Id == th.BasicChannel.Id {
found = true found = true
@@ -1180,7 +1180,7 @@ func TestSearchChannels(t *testing.T) {
}() }()
// Remove list channels permission from the user // Remove list channels permission from the user
th.RemovePermissionFromRole(model.PERMISSION_LIST_TEAM_CHANNELS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionListTeamChannels.Id, model.TeamUserRoleId)
t.Run("Search for a BasicChannel, which the user is a member of", func(t *testing.T) { t.Run("Search for a BasicChannel, which the user is a member of", func(t *testing.T) {
search.Term = th.BasicChannel.Name search.Term = th.BasicChannel.Name
@@ -1223,7 +1223,7 @@ func TestSearchArchivedChannels(t *testing.T) {
found := false found := false
for _, c := range channels { for _, c := range channels {
require.Equal(t, model.CHANNEL_OPEN, c.Type) require.Equal(t, model.ChannelTypeOpen, c.Type)
if c.Id == th.BasicChannel.Id { if c.Id == th.BasicChannel.Id {
found = true found = true
@@ -1268,7 +1268,7 @@ func TestSearchArchivedChannels(t *testing.T) {
}() }()
// Remove list channels permission from the user // Remove list channels permission from the user
th.RemovePermissionFromRole(model.PERMISSION_LIST_TEAM_CHANNELS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionListTeamChannels.Id, model.TeamUserRoleId)
t.Run("Search for a BasicDeletedChannel, which the user is a member of", func(t *testing.T) { t.Run("Search for a BasicDeletedChannel, which the user is a member of", func(t *testing.T) {
search.Term = th.BasicDeletedChannel.Name search.Term = th.BasicDeletedChannel.Name
@@ -1305,7 +1305,7 @@ func TestSearchAllChannels(t *testing.T) {
openChannel, chanErr := th.SystemAdminClient.CreateChannel(&model.Channel{ openChannel, chanErr := th.SystemAdminClient.CreateChannel(&model.Channel{
DisplayName: "SearchAllChannels-FOOBARDISPLAYNAME", DisplayName: "SearchAllChannels-FOOBARDISPLAYNAME",
Name: "whatever", Name: "whatever",
Type: model.CHANNEL_OPEN, Type: model.ChannelTypeOpen,
TeamId: th.BasicTeam.Id, TeamId: th.BasicTeam.Id,
}) })
CheckNoError(t, chanErr) CheckNoError(t, chanErr)
@@ -1313,7 +1313,7 @@ func TestSearchAllChannels(t *testing.T) {
privateChannel, privErr := th.SystemAdminClient.CreateChannel(&model.Channel{ privateChannel, privErr := th.SystemAdminClient.CreateChannel(&model.Channel{
DisplayName: "SearchAllChannels-private1", DisplayName: "SearchAllChannels-private1",
Name: "private1", Name: "private1",
Type: model.CHANNEL_PRIVATE, Type: model.ChannelTypePrivate,
TeamId: th.BasicTeam.Id, TeamId: th.BasicTeam.Id,
}) })
CheckNoError(t, privErr) CheckNoError(t, privErr)
@@ -1322,7 +1322,7 @@ func TestSearchAllChannels(t *testing.T) {
groupConstrainedChannel, groupErr := th.SystemAdminClient.CreateChannel(&model.Channel{ groupConstrainedChannel, groupErr := th.SystemAdminClient.CreateChannel(&model.Channel{
DisplayName: "SearchAllChannels-groupConstrained-1", DisplayName: "SearchAllChannels-groupConstrained-1",
Name: "groupconstrained1", Name: "groupconstrained1",
Type: model.CHANNEL_PRIVATE, Type: model.ChannelTypePrivate,
GroupConstrained: model.NewBool(true), GroupConstrained: model.NewBool(true),
TeamId: team.Id, TeamId: team.Id,
}) })
@@ -1613,7 +1613,7 @@ func TestDeleteChannel(t *testing.T) {
CheckNoError(t, resp) CheckNoError(t, resp)
// default channel cannot be deleted. // default channel cannot be deleted.
defaultChannel, _ := th.App.GetChannelByName(model.DEFAULT_CHANNEL, team.Id, false) defaultChannel, _ := th.App.GetChannelByName(model.DefaultChannelName, team.Id, false)
pass, resp = client.DeleteChannel(defaultChannel.Id) pass, resp = client.DeleteChannel(defaultChannel.Id)
CheckBadRequestStatus(t, resp) CheckBadRequestStatus(t, resp)
require.False(t, pass, "should have failed") require.False(t, pass, "should have failed")
@@ -1623,7 +1623,7 @@ func TestDeleteChannel(t *testing.T) {
sdPublicChannel := &model.Channel{ sdPublicChannel := &model.Channel{
DisplayName: "dn_" + model.NewId(), DisplayName: "dn_" + model.NewId(),
Name: GenerateTestChannelName(), Name: GenerateTestChannelName(),
Type: model.CHANNEL_OPEN, Type: model.ChannelTypeOpen,
TeamId: sdTeam.Id, TeamId: sdTeam.Id,
} }
sdPublicChannel, resp = c.CreateChannel(sdPublicChannel) sdPublicChannel, resp = c.CreateChannel(sdPublicChannel)
@@ -1634,7 +1634,7 @@ func TestDeleteChannel(t *testing.T) {
sdPrivateChannel := &model.Channel{ sdPrivateChannel := &model.Channel{
DisplayName: "dn_" + model.NewId(), DisplayName: "dn_" + model.NewId(),
Name: GenerateTestChannelName(), Name: GenerateTestChannelName(),
Type: model.CHANNEL_PRIVATE, Type: model.ChannelTypePrivate,
TeamId: sdTeam.Id, TeamId: sdTeam.Id,
} }
sdPrivateChannel, resp = c.CreateChannel(sdPrivateChannel) sdPrivateChannel, resp = c.CreateChannel(sdPrivateChannel)
@@ -1678,12 +1678,12 @@ func TestDeleteChannel2(t *testing.T) {
th.RestoreDefaultRolePermissions(defaultRolePermissions) th.RestoreDefaultRolePermissions(defaultRolePermissions)
}() }()
th.AddPermissionToRole(model.PERMISSION_DELETE_PUBLIC_CHANNEL.Id, model.CHANNEL_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionDeletePublicChannel.Id, model.ChannelUserRoleId)
th.AddPermissionToRole(model.PERMISSION_DELETE_PRIVATE_CHANNEL.Id, model.CHANNEL_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionDeletePrivateChannel.Id, model.ChannelUserRoleId)
// channels created by SystemAdmin // channels created by SystemAdmin
publicChannel6 := th.CreateChannelWithClient(th.SystemAdminClient, model.CHANNEL_OPEN) publicChannel6 := th.CreateChannelWithClient(th.SystemAdminClient, model.ChannelTypeOpen)
privateChannel7 := th.CreateChannelWithClient(th.SystemAdminClient, model.CHANNEL_PRIVATE) privateChannel7 := th.CreateChannelWithClient(th.SystemAdminClient, model.ChannelTypePrivate)
th.App.AddUserToChannel(user, publicChannel6, false) th.App.AddUserToChannel(user, publicChannel6, false)
th.App.AddUserToChannel(user, privateChannel7, false) th.App.AddUserToChannel(user, privateChannel7, false)
th.App.AddUserToChannel(user, privateChannel7, false) th.App.AddUserToChannel(user, privateChannel7, false)
@@ -1696,14 +1696,14 @@ func TestDeleteChannel2(t *testing.T) {
CheckNoError(t, resp) CheckNoError(t, resp)
// Restrict permissions to Channel Admins // Restrict permissions to Channel Admins
th.RemovePermissionFromRole(model.PERMISSION_DELETE_PUBLIC_CHANNEL.Id, model.CHANNEL_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionDeletePublicChannel.Id, model.ChannelUserRoleId)
th.RemovePermissionFromRole(model.PERMISSION_DELETE_PRIVATE_CHANNEL.Id, model.CHANNEL_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionDeletePrivateChannel.Id, model.ChannelUserRoleId)
th.AddPermissionToRole(model.PERMISSION_DELETE_PUBLIC_CHANNEL.Id, model.CHANNEL_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionDeletePublicChannel.Id, model.ChannelAdminRoleId)
th.AddPermissionToRole(model.PERMISSION_DELETE_PRIVATE_CHANNEL.Id, model.CHANNEL_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionDeletePrivateChannel.Id, model.ChannelAdminRoleId)
// channels created by SystemAdmin // channels created by SystemAdmin
publicChannel6 = th.CreateChannelWithClient(th.SystemAdminClient, model.CHANNEL_OPEN) publicChannel6 = th.CreateChannelWithClient(th.SystemAdminClient, model.ChannelTypeOpen)
privateChannel7 = th.CreateChannelWithClient(th.SystemAdminClient, model.CHANNEL_PRIVATE) privateChannel7 = th.CreateChannelWithClient(th.SystemAdminClient, model.ChannelTypePrivate)
th.App.AddUserToChannel(user, publicChannel6, false) th.App.AddUserToChannel(user, publicChannel6, false)
th.App.AddUserToChannel(user, privateChannel7, false) th.App.AddUserToChannel(user, privateChannel7, false)
th.App.AddUserToChannel(user, privateChannel7, false) th.App.AddUserToChannel(user, privateChannel7, false)
@@ -1727,16 +1727,16 @@ func TestDeleteChannel2(t *testing.T) {
CheckNoError(t, resp) CheckNoError(t, resp)
// Make sure team admins don't have permission to delete channels. // Make sure team admins don't have permission to delete channels.
th.RemovePermissionFromRole(model.PERMISSION_DELETE_PUBLIC_CHANNEL.Id, model.CHANNEL_ADMIN_ROLE_ID) th.RemovePermissionFromRole(model.PermissionDeletePublicChannel.Id, model.ChannelAdminRoleId)
th.RemovePermissionFromRole(model.PERMISSION_DELETE_PRIVATE_CHANNEL.Id, model.CHANNEL_ADMIN_ROLE_ID) th.RemovePermissionFromRole(model.PermissionDeletePrivateChannel.Id, model.ChannelAdminRoleId)
// last member of a public channel should have required permission to delete // last member of a public channel should have required permission to delete
publicChannel6 = th.CreateChannelWithClient(th.Client, model.CHANNEL_OPEN) publicChannel6 = th.CreateChannelWithClient(th.Client, model.ChannelTypeOpen)
_, resp = Client.DeleteChannel(publicChannel6.Id) _, resp = Client.DeleteChannel(publicChannel6.Id)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
// last member of a private channel should not be able to delete it if they don't have required permissions // last member of a private channel should not be able to delete it if they don't have required permissions
privateChannel7 = th.CreateChannelWithClient(th.Client, model.CHANNEL_PRIVATE) privateChannel7 = th.CreateChannelWithClient(th.Client, model.ChannelTypePrivate)
_, resp = Client.DeleteChannel(privateChannel7.Id) _, resp = Client.DeleteChannel(privateChannel7.Id)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
} }
@@ -1785,7 +1785,7 @@ func TestConvertChannelToPrivate(t *testing.T) {
defer th.TearDown() defer th.TearDown()
Client := th.Client Client := th.Client
defaultChannel, _ := th.App.GetChannelByName(model.DEFAULT_CHANNEL, th.BasicTeam.Id, false) defaultChannel, _ := th.App.GetChannelByName(model.DefaultChannelName, th.BasicTeam.Id, false)
_, resp := Client.ConvertChannelToPrivate(defaultChannel.Id) _, resp := Client.ConvertChannelToPrivate(defaultChannel.Id)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
@@ -1798,16 +1798,16 @@ func TestConvertChannelToPrivate(t *testing.T) {
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
th.LoginTeamAdmin() th.LoginTeamAdmin()
th.RemovePermissionFromRole(model.PERMISSION_CONVERT_PUBLIC_CHANNEL_TO_PRIVATE.Id, model.TEAM_ADMIN_ROLE_ID) th.RemovePermissionFromRole(model.PermissionConvertPublicChannelToPrivate.Id, model.TeamAdminRoleId)
_, resp = Client.ConvertChannelToPrivate(publicChannel.Id) _, resp = Client.ConvertChannelToPrivate(publicChannel.Id)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
th.AddPermissionToRole(model.PERMISSION_CONVERT_PUBLIC_CHANNEL_TO_PRIVATE.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionConvertPublicChannelToPrivate.Id, model.TeamAdminRoleId)
rchannel, resp := Client.ConvertChannelToPrivate(publicChannel.Id) rchannel, resp := Client.ConvertChannelToPrivate(publicChannel.Id)
CheckOKStatus(t, resp) CheckOKStatus(t, resp)
require.Equal(t, model.CHANNEL_PRIVATE, rchannel.Type, "channel should be converted from public to private") require.Equal(t, model.ChannelTypePrivate, rchannel.Type, "channel should be converted from public to private")
rchannel, resp = th.SystemAdminClient.ConvertChannelToPrivate(privateChannel.Id) rchannel, resp = th.SystemAdminClient.ConvertChannelToPrivate(privateChannel.Id)
CheckBadRequestStatus(t, resp) CheckBadRequestStatus(t, resp)
@@ -1824,14 +1824,14 @@ func TestConvertChannelToPrivate(t *testing.T) {
publicChannel2 := th.CreatePublicChannel() publicChannel2 := th.CreatePublicChannel()
rchannel, resp = th.SystemAdminClient.ConvertChannelToPrivate(publicChannel2.Id) rchannel, resp = th.SystemAdminClient.ConvertChannelToPrivate(publicChannel2.Id)
CheckOKStatus(t, resp) CheckOKStatus(t, resp)
require.Equal(t, model.CHANNEL_PRIVATE, rchannel.Type, "channel should be converted from public to private") require.Equal(t, model.ChannelTypePrivate, rchannel.Type, "channel should be converted from public to private")
timeout := time.After(10 * time.Second) timeout := time.After(10 * time.Second)
for { for {
select { select {
case resp := <-WebSocketClient.EventChannel: case resp := <-WebSocketClient.EventChannel:
if resp.EventType() == model.WEBSOCKET_EVENT_CHANNEL_CONVERTED && resp.GetData()["channel_id"].(string) == publicChannel2.Id { if resp.EventType() == model.WebsocketEventChannelConverted && resp.GetData()["channel_id"].(string) == publicChannel2.Id {
return return
} }
case <-timeout: case <-timeout:
@@ -1845,7 +1845,7 @@ func TestUpdateChannelPrivacy(t *testing.T) {
th := Setup(t).InitBasic() th := Setup(t).InitBasic()
defer th.TearDown() defer th.TearDown()
defaultChannel, _ := th.App.GetChannelByName(model.DEFAULT_CHANNEL, th.BasicTeam.Id, false) defaultChannel, _ := th.App.GetChannelByName(model.DefaultChannelName, th.BasicTeam.Id, false)
type testTable []struct { type testTable []struct {
name string name string
@@ -1858,9 +1858,9 @@ func TestUpdateChannelPrivacy(t *testing.T) {
publicChannel := th.CreatePublicChannel() publicChannel := th.CreatePublicChannel()
tt := testTable{ tt := testTable{
{"Updating default channel should fail with forbidden status if not logged in", defaultChannel, model.CHANNEL_OPEN}, {"Updating default channel should fail with forbidden status if not logged in", defaultChannel, model.ChannelTypeOpen},
{"Updating private channel should fail with forbidden status if not logged in", privateChannel, model.CHANNEL_PRIVATE}, {"Updating private channel should fail with forbidden status if not logged in", privateChannel, model.ChannelTypePrivate},
{"Updating public channel should fail with forbidden status if not logged in", publicChannel, model.CHANNEL_OPEN}, {"Updating public channel should fail with forbidden status if not logged in", publicChannel, model.ChannelTypeOpen},
} }
for _, tc := range tt { for _, tc := range tt {
@@ -1876,7 +1876,7 @@ func TestUpdateChannelPrivacy(t *testing.T) {
publicChannel := th.CreatePublicChannel() publicChannel := th.CreatePublicChannel()
tt := testTable{ tt := testTable{
{"Converting default channel to private should fail", defaultChannel, model.CHANNEL_PRIVATE}, {"Converting default channel to private should fail", defaultChannel, model.ChannelTypePrivate},
{"Updating privacy to an invalid setting should fail", publicChannel, "invalid"}, {"Updating privacy to an invalid setting should fail", publicChannel, "invalid"},
} }
@@ -1888,11 +1888,11 @@ func TestUpdateChannelPrivacy(t *testing.T) {
} }
tt = testTable{ tt = testTable{
{"Default channel should stay public", defaultChannel, model.CHANNEL_OPEN}, {"Default channel should stay public", defaultChannel, model.ChannelTypeOpen},
{"Public channel should stay public", publicChannel, model.CHANNEL_OPEN}, {"Public channel should stay public", publicChannel, model.ChannelTypeOpen},
{"Private channel should stay private", privateChannel, model.CHANNEL_PRIVATE}, {"Private channel should stay private", privateChannel, model.ChannelTypePrivate},
{"Public channel should convert to private", publicChannel, model.CHANNEL_PRIVATE}, {"Public channel should convert to private", publicChannel, model.ChannelTypePrivate},
{"Private channel should convert to public", privateChannel, model.CHANNEL_OPEN}, {"Private channel should convert to public", privateChannel, model.ChannelTypeOpen},
} }
for _, tc := range tt { for _, tc := range tt {
@@ -1913,20 +1913,20 @@ func TestUpdateChannelPrivacy(t *testing.T) {
th.LoginTeamAdmin() th.LoginTeamAdmin()
th.RemovePermissionFromRole(model.PERMISSION_CONVERT_PUBLIC_CHANNEL_TO_PRIVATE.Id, model.TEAM_ADMIN_ROLE_ID) th.RemovePermissionFromRole(model.PermissionConvertPublicChannelToPrivate.Id, model.TeamAdminRoleId)
th.RemovePermissionFromRole(model.PERMISSION_CONVERT_PRIVATE_CHANNEL_TO_PUBLIC.Id, model.TEAM_ADMIN_ROLE_ID) th.RemovePermissionFromRole(model.PermissionConvertPrivateChannelToPublic.Id, model.TeamAdminRoleId)
_, resp := th.Client.UpdateChannelPrivacy(publicChannel.Id, model.CHANNEL_PRIVATE) _, resp := th.Client.UpdateChannelPrivacy(publicChannel.Id, model.ChannelTypePrivate)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
_, resp = th.Client.UpdateChannelPrivacy(privateChannel.Id, model.CHANNEL_OPEN) _, resp = th.Client.UpdateChannelPrivacy(privateChannel.Id, model.ChannelTypeOpen)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
th.AddPermissionToRole(model.PERMISSION_CONVERT_PUBLIC_CHANNEL_TO_PRIVATE.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionConvertPublicChannelToPrivate.Id, model.TeamAdminRoleId)
th.AddPermissionToRole(model.PERMISSION_CONVERT_PRIVATE_CHANNEL_TO_PUBLIC.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionConvertPrivateChannelToPublic.Id, model.TeamAdminRoleId)
_, resp = th.Client.UpdateChannelPrivacy(privateChannel.Id, model.CHANNEL_OPEN) _, resp = th.Client.UpdateChannelPrivacy(privateChannel.Id, model.ChannelTypeOpen)
CheckNoError(t, resp) CheckNoError(t, resp)
_, resp = th.Client.UpdateChannelPrivacy(publicChannel.Id, model.CHANNEL_PRIVATE) _, resp = th.Client.UpdateChannelPrivacy(publicChannel.Id, model.ChannelTypePrivate)
CheckNoError(t, resp) CheckNoError(t, resp)
}) })
} }
@@ -2501,8 +2501,8 @@ func TestUpdateChannelMemberSchemeRoles(t *testing.T) {
for waiting { for waiting {
select { select {
case event := <-WebSocketClient.EventChannel: case event := <-WebSocketClient.EventChannel:
if event.Event == model.WEBSOCKET_EVENT_CHANNEL_MEMBER_UPDATED { if event.Event == model.WebsocketEventChannelMemberUpdated {
require.Equal(t, model.WEBSOCKET_EVENT_CHANNEL_MEMBER_UPDATED, event.Event) require.Equal(t, model.WebsocketEventChannelMemberUpdated, event.Event)
waiting = false waiting = false
} }
case <-timeout: case <-timeout:
@@ -2608,8 +2608,8 @@ func TestUpdateChannelNotifyProps(t *testing.T) {
Client := th.Client Client := th.Client
props := map[string]string{} props := map[string]string{}
props[model.DESKTOP_NOTIFY_PROP] = model.CHANNEL_NOTIFY_MENTION props[model.DesktopNotifyProp] = model.ChannelNotifyMention
props[model.MARK_UNREAD_NOTIFY_PROP] = model.CHANNEL_MARK_UNREAD_MENTION props[model.MarkUnreadNotifyProp] = model.ChannelMarkUnreadMention
pass, resp := Client.UpdateChannelNotifyProps(th.BasicChannel.Id, th.BasicUser.Id, props) pass, resp := Client.UpdateChannelNotifyProps(th.BasicChannel.Id, th.BasicUser.Id, props)
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -2617,8 +2617,8 @@ func TestUpdateChannelNotifyProps(t *testing.T) {
member, err := th.App.GetChannelMember(context.Background(), th.BasicChannel.Id, th.BasicUser.Id) member, err := th.App.GetChannelMember(context.Background(), th.BasicChannel.Id, th.BasicUser.Id)
require.Nil(t, err) require.Nil(t, err)
require.Equal(t, model.CHANNEL_NOTIFY_MENTION, member.NotifyProps[model.DESKTOP_NOTIFY_PROP], "bad update") require.Equal(t, model.ChannelNotifyMention, member.NotifyProps[model.DesktopNotifyProp], "bad update")
require.Equal(t, model.CHANNEL_MARK_UNREAD_MENTION, member.NotifyProps[model.MARK_UNREAD_NOTIFY_PROP], "bad update") require.Equal(t, model.ChannelMarkUnreadMention, member.NotifyProps[model.MarkUnreadNotifyProp], "bad update")
_, resp = Client.UpdateChannelNotifyProps("junk", th.BasicUser.Id, props) _, resp = Client.UpdateChannelNotifyProps("junk", th.BasicUser.Id, props)
CheckBadRequestStatus(t, resp) CheckBadRequestStatus(t, resp)
@@ -2749,7 +2749,7 @@ func TestAddChannelMember(t *testing.T) {
th.RestoreDefaultRolePermissions(defaultRolePermissions) th.RestoreDefaultRolePermissions(defaultRolePermissions)
}() }()
th.AddPermissionToRole(model.PERMISSION_MANAGE_PRIVATE_CHANNEL_MEMBERS.Id, model.CHANNEL_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManagePrivateChannelMembers.Id, model.ChannelUserRoleId)
// Check that a regular channel user can add other users. // Check that a regular channel user can add other users.
Client.Login(user2.Username, user2.Password) Client.Login(user2.Username, user2.Password)
@@ -2764,8 +2764,8 @@ func TestAddChannelMember(t *testing.T) {
Client.Logout() Client.Logout()
// Restrict the permission for adding users to Channel Admins // Restrict the permission for adding users to Channel Admins
th.AddPermissionToRole(model.PERMISSION_MANAGE_PRIVATE_CHANNEL_MEMBERS.Id, model.CHANNEL_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionManagePrivateChannelMembers.Id, model.ChannelAdminRoleId)
th.RemovePermissionFromRole(model.PERMISSION_MANAGE_PRIVATE_CHANNEL_MEMBERS.Id, model.CHANNEL_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionManagePrivateChannelMembers.Id, model.ChannelUserRoleId)
Client.Login(user2.Username, user2.Password) Client.Login(user2.Username, user2.Password)
privateChannel = th.CreatePrivateChannel() privateChannel = th.CreatePrivateChannel()
@@ -2837,31 +2837,31 @@ func TestAddChannelMemberAddMyself(t *testing.T) {
ExpectedError string ExpectedError string
}{ }{
{ {
"Add myself to a public channel with JOIN_PUBLIC_CHANNEL permission", "Add myself to a public channel with JoinPublicChannel permission",
notMemberPublicChannel1, notMemberPublicChannel1,
true, true,
"", "",
}, },
{ {
"Try to add myself to a private channel with the JOIN_PUBLIC_CHANNEL permission", "Try to add myself to a private channel with the JoinPublicChannel permission",
notMemberPrivateChannel, notMemberPrivateChannel,
true, true,
"api.context.permissions.app_error", "api.context.permissions.app_error",
}, },
{ {
"Try to add myself to a public channel without the JOIN_PUBLIC_CHANNEL permission", "Try to add myself to a public channel without the JoinPublicChannel permission",
notMemberPublicChannel2, notMemberPublicChannel2,
false, false,
"api.context.permissions.app_error", "api.context.permissions.app_error",
}, },
{ {
"Add myself a public channel where I'm already a member, not having JOIN_PUBLIC_CHANNEL or MANAGE MEMBERS permission", "Add myself a public channel where I'm already a member, not having JoinPublicChannel or ManageMembers permission",
memberPublicChannel, memberPublicChannel,
false, false,
"", "",
}, },
{ {
"Add myself a private channel where I'm already a member, not having JOIN_PUBLIC_CHANNEL or MANAGE MEMBERS permission", "Add myself a private channel where I'm already a member, not having JoinPublicChannel or ManageMembers permission",
memberPrivateChannel, memberPrivateChannel,
false, false,
"", "",
@@ -2878,7 +2878,7 @@ func TestAddChannelMemberAddMyself(t *testing.T) {
}() }()
if !tc.WithJoinPublicPermission { if !tc.WithJoinPublicPermission {
th.RemovePermissionFromRole(model.PERMISSION_JOIN_PUBLIC_CHANNELS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionJoinPublicChannels.Id, model.TeamUserRoleId)
} }
_, resp := Client.AddChannelMember(tc.Channel.Id, user.Id) _, resp := Client.AddChannelMember(tc.Channel.Id, user.Id)
@@ -2930,7 +2930,7 @@ func TestRemoveChannelMember(t *testing.T) {
_, err = th.App.AddUserToChannel(th.SystemAdminUser, th.BasicChannel2, false) _, err = th.App.AddUserToChannel(th.SystemAdminUser, th.BasicChannel2, false)
require.Nil(t, err) require.Nil(t, err)
props := map[string]string{} props := map[string]string{}
props[model.DESKTOP_NOTIFY_PROP] = model.CHANNEL_NOTIFY_ALL props[model.DesktopNotifyProp] = model.ChannelNotifyAll
_, resp = th.SystemAdminClient.UpdateChannelNotifyProps(th.BasicChannel.Id, th.SystemAdminUser.Id, props) _, resp = th.SystemAdminClient.UpdateChannelNotifyProps(th.BasicChannel.Id, th.SystemAdminUser.Id, props)
_, resp = th.SystemAdminClient.UpdateChannelNotifyProps(th.BasicChannel2.Id, th.SystemAdminUser.Id, props) _, resp = th.SystemAdminClient.UpdateChannelNotifyProps(th.BasicChannel2.Id, th.SystemAdminUser.Id, props)
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -2944,7 +2944,7 @@ func TestRemoveChannelMember(t *testing.T) {
}) })
wsr := <-wsClient.EventChannel wsr := <-wsClient.EventChannel
require.Equal(t, model.WEBSOCKET_EVENT_HELLO, wsr.EventType()) require.Equal(t, model.WebsocketEventHello, wsr.EventType())
// requirePost listens for websocket events and tries to find the post matching // requirePost listens for websocket events and tries to find the post matching
// the expected post's channel and message. // the expected post's channel and message.
@@ -3036,11 +3036,11 @@ func TestRemoveChannelMember(t *testing.T) {
th.RestoreDefaultRolePermissions(defaultRolePermissions) th.RestoreDefaultRolePermissions(defaultRolePermissions)
}() }()
th.AddPermissionToRole(model.PERMISSION_MANAGE_PRIVATE_CHANNEL_MEMBERS.Id, model.CHANNEL_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManagePrivateChannelMembers.Id, model.ChannelUserRoleId)
th.TestForSystemAdminAndLocal(t, func(t *testing.T, client *model.Client4) { th.TestForSystemAdminAndLocal(t, func(t *testing.T, client *model.Client4) {
// Check that a regular channel user can remove other users. // Check that a regular channel user can remove other users.
privateChannel := th.CreateChannelWithClient(client, model.CHANNEL_PRIVATE) privateChannel := th.CreateChannelWithClient(client, model.ChannelTypePrivate)
_, resp = client.AddChannelMember(privateChannel.Id, user1.Id) _, resp = client.AddChannelMember(privateChannel.Id, user1.Id)
CheckNoError(t, resp) CheckNoError(t, resp)
_, resp = client.AddChannelMember(privateChannel.Id, user2.Id) _, resp = client.AddChannelMember(privateChannel.Id, user2.Id)
@@ -3051,10 +3051,10 @@ func TestRemoveChannelMember(t *testing.T) {
}) })
// Restrict the permission for adding users to Channel Admins // Restrict the permission for adding users to Channel Admins
th.AddPermissionToRole(model.PERMISSION_MANAGE_PRIVATE_CHANNEL_MEMBERS.Id, model.CHANNEL_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionManagePrivateChannelMembers.Id, model.ChannelAdminRoleId)
th.RemovePermissionFromRole(model.PERMISSION_MANAGE_PRIVATE_CHANNEL_MEMBERS.Id, model.CHANNEL_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionManagePrivateChannelMembers.Id, model.ChannelUserRoleId)
privateChannel := th.CreateChannelWithClient(th.SystemAdminClient, model.CHANNEL_PRIVATE) privateChannel := th.CreateChannelWithClient(th.SystemAdminClient, model.ChannelTypePrivate)
_, resp = th.SystemAdminClient.AddChannelMember(privateChannel.Id, user1.Id) _, resp = th.SystemAdminClient.AddChannelMember(privateChannel.Id, user1.Id)
CheckNoError(t, resp) CheckNoError(t, resp)
_, resp = th.SystemAdminClient.AddChannelMember(privateChannel.Id, user2.Id) _, resp = th.SystemAdminClient.AddChannelMember(privateChannel.Id, user2.Id)
@@ -3122,13 +3122,13 @@ func TestAutocompleteChannels(t *testing.T) {
ptown, _ := th.Client.CreateChannel(&model.Channel{ ptown, _ := th.Client.CreateChannel(&model.Channel{
DisplayName: "Town", DisplayName: "Town",
Name: "town", Name: "town",
Type: model.CHANNEL_PRIVATE, Type: model.ChannelTypePrivate,
TeamId: th.BasicTeam.Id, TeamId: th.BasicTeam.Id,
}) })
tower, _ := th.Client.CreateChannel(&model.Channel{ tower, _ := th.Client.CreateChannel(&model.Channel{
DisplayName: "Tower", DisplayName: "Tower",
Name: "tower", Name: "tower",
Type: model.CHANNEL_OPEN, Type: model.ChannelTypeOpen,
TeamId: th.BasicTeam.Id, TeamId: th.BasicTeam.Id,
}) })
utils.EnableDebugLogForTest() utils.EnableDebugLogForTest()
@@ -3204,7 +3204,7 @@ func TestAutocompleteChannelsForSearch(t *testing.T) {
ptown, _ := th.SystemAdminClient.CreateChannel(&model.Channel{ ptown, _ := th.SystemAdminClient.CreateChannel(&model.Channel{
DisplayName: "Town", DisplayName: "Town",
Name: "town", Name: "town",
Type: model.CHANNEL_PRIVATE, Type: model.ChannelTypePrivate,
TeamId: th.BasicTeam.Id, TeamId: th.BasicTeam.Id,
}) })
defer func() { defer func() {
@@ -3213,7 +3213,7 @@ func TestAutocompleteChannelsForSearch(t *testing.T) {
mypriv, _ := th.Client.CreateChannel(&model.Channel{ mypriv, _ := th.Client.CreateChannel(&model.Channel{
DisplayName: "My private town", DisplayName: "My private town",
Name: "townpriv", Name: "townpriv",
Type: model.CHANNEL_PRIVATE, Type: model.ChannelTypePrivate,
TeamId: th.BasicTeam.Id, TeamId: th.BasicTeam.Id,
}) })
defer func() { defer func() {
@@ -3334,7 +3334,7 @@ func TestAutocompleteChannelsForSearchGuestUsers(t *testing.T) {
town, _ := th.SystemAdminClient.CreateChannel(&model.Channel{ town, _ := th.SystemAdminClient.CreateChannel(&model.Channel{
DisplayName: "Town", DisplayName: "Town",
Name: "town", Name: "town",
Type: model.CHANNEL_OPEN, Type: model.ChannelTypeOpen,
TeamId: th.BasicTeam.Id, TeamId: th.BasicTeam.Id,
}) })
defer func() { defer func() {
@@ -3346,7 +3346,7 @@ func TestAutocompleteChannelsForSearchGuestUsers(t *testing.T) {
mypriv, _ := th.SystemAdminClient.CreateChannel(&model.Channel{ mypriv, _ := th.SystemAdminClient.CreateChannel(&model.Channel{
DisplayName: "My private town", DisplayName: "My private town",
Name: "townpriv", Name: "townpriv",
Type: model.CHANNEL_PRIVATE, Type: model.ChannelTypePrivate,
TeamId: th.BasicTeam.Id, TeamId: th.BasicTeam.Id,
}) })
defer func() { defer func() {
@@ -3446,14 +3446,14 @@ func TestUpdateChannelScheme(t *testing.T) {
InviteId: "inviteid0", InviteId: "inviteid0",
Name: "z-z-" + model.NewId() + "a", Name: "z-z-" + model.NewId() + "a",
Email: "success+" + model.NewId() + "@simulator.amazonses.com", Email: "success+" + model.NewId() + "@simulator.amazonses.com",
Type: model.TEAM_OPEN, Type: model.TeamOpen,
}) })
CheckNoError(t, resp) CheckNoError(t, resp)
channel, resp := th.SystemAdminClient.CreateChannel(&model.Channel{ channel, resp := th.SystemAdminClient.CreateChannel(&model.Channel{
DisplayName: "Name", DisplayName: "Name",
Name: "z-z-" + model.NewId() + "a", Name: "z-z-" + model.NewId() + "a",
Type: model.CHANNEL_OPEN, Type: model.ChannelTypeOpen,
TeamId: team.Id, TeamId: team.Id,
}) })
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -3462,7 +3462,7 @@ func TestUpdateChannelScheme(t *testing.T) {
DisplayName: "DisplayName", DisplayName: "DisplayName",
Name: model.NewId(), Name: model.NewId(),
Description: "Some description", Description: "Some description",
Scope: model.SCHEME_SCOPE_CHANNEL, Scope: model.SchemeScopeChannel,
}) })
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -3470,7 +3470,7 @@ func TestUpdateChannelScheme(t *testing.T) {
DisplayName: "DisplayName", DisplayName: "DisplayName",
Name: model.NewId(), Name: model.NewId(),
Description: "Some description", Description: "Some description",
Scope: model.SCHEME_SCOPE_TEAM, Scope: model.SchemeScopeTeam,
}) })
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -3689,13 +3689,13 @@ func TestGetChannelModerations(t *testing.T) {
_, err := th.App.UpdateTeamScheme(team) _, err := th.App.UpdateTeamScheme(team)
require.Nil(t, err) require.Nil(t, err)
th.RemovePermissionFromRole(model.PERMISSION_CREATE_POST.Id, scheme.DefaultChannelGuestRole) th.RemovePermissionFromRole(model.PermissionCreatePost.Id, scheme.DefaultChannelGuestRole)
defer th.AddPermissionToRole(model.PERMISSION_CREATE_POST.Id, scheme.DefaultChannelGuestRole) defer th.AddPermissionToRole(model.PermissionCreatePost.Id, scheme.DefaultChannelGuestRole)
moderations, res := th.SystemAdminClient.GetChannelModerations(channel.Id, "") moderations, res := th.SystemAdminClient.GetChannelModerations(channel.Id, "")
require.Nil(t, res.Error) require.Nil(t, res.Error)
for _, moderation := range moderations { for _, moderation := range moderations {
if moderation.Name == model.PERMISSION_CREATE_POST.Id { if moderation.Name == model.PermissionCreatePost.Id {
require.Equal(t, moderation.Roles.Members.Value, true) require.Equal(t, moderation.Roles.Members.Value, true)
require.Equal(t, moderation.Roles.Members.Enabled, true) require.Equal(t, moderation.Roles.Members.Enabled, true)
require.Equal(t, moderation.Roles.Guests.Value, false) require.Equal(t, moderation.Roles.Guests.Value, false)
@@ -3710,13 +3710,13 @@ func TestGetChannelModerations(t *testing.T) {
_, err := th.App.UpdateChannelScheme(channel) _, err := th.App.UpdateChannelScheme(channel)
require.Nil(t, err) require.Nil(t, err)
th.RemovePermissionFromRole(model.PERMISSION_CREATE_POST.Id, scheme.DefaultChannelGuestRole) th.RemovePermissionFromRole(model.PermissionCreatePost.Id, scheme.DefaultChannelGuestRole)
defer th.AddPermissionToRole(model.PERMISSION_CREATE_POST.Id, scheme.DefaultChannelGuestRole) defer th.AddPermissionToRole(model.PermissionCreatePost.Id, scheme.DefaultChannelGuestRole)
moderations, res := th.SystemAdminClient.GetChannelModerations(channel.Id, "") moderations, res := th.SystemAdminClient.GetChannelModerations(channel.Id, "")
require.Nil(t, res.Error) require.Nil(t, res.Error)
for _, moderation := range moderations { for _, moderation := range moderations {
if moderation.Name == model.PERMISSION_CREATE_POST.Id { if moderation.Name == model.PermissionCreatePost.Id {
require.Equal(t, moderation.Roles.Members.Value, true) require.Equal(t, moderation.Roles.Members.Value, true)
require.Equal(t, moderation.Roles.Members.Enabled, true) require.Equal(t, moderation.Roles.Members.Enabled, true)
require.Equal(t, moderation.Roles.Guests.Value, false) require.Equal(t, moderation.Roles.Guests.Value, false)
@@ -3734,16 +3734,16 @@ func TestGetChannelModerations(t *testing.T) {
channel.SchemeId = &scheme.Id channel.SchemeId = &scheme.Id
th.App.UpdateChannelScheme(channel) th.App.UpdateChannelScheme(channel)
th.RemovePermissionFromRole(model.PERMISSION_CREATE_POST.Id, scheme.DefaultChannelGuestRole) th.RemovePermissionFromRole(model.PermissionCreatePost.Id, scheme.DefaultChannelGuestRole)
th.RemovePermissionFromRole(model.PERMISSION_CREATE_POST.Id, teamScheme.DefaultChannelGuestRole) th.RemovePermissionFromRole(model.PermissionCreatePost.Id, teamScheme.DefaultChannelGuestRole)
defer th.AddPermissionToRole(model.PERMISSION_CREATE_POST.Id, scheme.DefaultChannelGuestRole) defer th.AddPermissionToRole(model.PermissionCreatePost.Id, scheme.DefaultChannelGuestRole)
defer th.AddPermissionToRole(model.PERMISSION_CREATE_POST.Id, teamScheme.DefaultChannelGuestRole) defer th.AddPermissionToRole(model.PermissionCreatePost.Id, teamScheme.DefaultChannelGuestRole)
moderations, res := th.SystemAdminClient.GetChannelModerations(channel.Id, "") moderations, res := th.SystemAdminClient.GetChannelModerations(channel.Id, "")
require.Nil(t, res.Error) require.Nil(t, res.Error)
for _, moderation := range moderations { for _, moderation := range moderations {
if moderation.Name == model.PERMISSION_CREATE_POST.Id { if moderation.Name == model.PermissionCreatePost.Id {
require.Equal(t, moderation.Roles.Members.Value, true) require.Equal(t, moderation.Roles.Members.Value, true)
require.Equal(t, moderation.Roles.Members.Enabled, true) require.Equal(t, moderation.Roles.Members.Enabled, true)
require.Equal(t, moderation.Roles.Guests.Value, false) require.Equal(t, moderation.Roles.Guests.Value, false)
@@ -3758,8 +3758,8 @@ func TestGetChannelModerations(t *testing.T) {
_, err := th.App.UpdateTeamScheme(team) _, err := th.App.UpdateTeamScheme(team)
require.Nil(t, err) require.Nil(t, err)
th.RemovePermissionFromRole(model.PERMISSION_MANAGE_PUBLIC_CHANNEL_MEMBERS.Id, scheme.DefaultChannelUserRole) th.RemovePermissionFromRole(model.PermissionManagePublicChannelMembers.Id, scheme.DefaultChannelUserRole)
defer th.AddPermissionToRole(model.PERMISSION_CREATE_POST.Id, scheme.DefaultChannelUserRole) defer th.AddPermissionToRole(model.PermissionCreatePost.Id, scheme.DefaultChannelUserRole)
// public channel does not have the permission // public channel does not have the permission
moderations, res := th.SystemAdminClient.GetChannelModerations(channel.Id, "") moderations, res := th.SystemAdminClient.GetChannelModerations(channel.Id, "")
@@ -4237,7 +4237,7 @@ func TestViewChannelWithoutCollapsedThreads(t *testing.T) {
defer os.Unsetenv("MM_FEATUREFLAGS_COLLAPSEDTHREADS") defer os.Unsetenv("MM_FEATUREFLAGS_COLLAPSEDTHREADS")
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.ThreadAutoFollow = true *cfg.ServiceSettings.ThreadAutoFollow = true
*cfg.ServiceSettings.CollapsedThreads = model.COLLAPSED_THREADS_DEFAULT_ON *cfg.ServiceSettings.CollapsedThreads = model.CollapsedThreadsDefaultOn
}) })
Client := th.Client Client := th.Client

Просмотреть файл

@@ -51,8 +51,8 @@ func getSubscription(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_BILLING) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadBilling) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_BILLING) c.SetPermissionError(model.PermissionSysconsoleReadBilling)
return return
} }
@@ -77,8 +77,8 @@ func changeSubscription(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_BILLING) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteBilling) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_BILLING) c.SetPermissionError(model.PermissionSysconsoleWriteBilling)
return return
} }
@@ -133,8 +133,8 @@ func getCloudProducts(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_BILLING) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadBilling) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_BILLING) c.SetPermissionError(model.PermissionSysconsoleReadBilling)
return return
} }
@@ -159,8 +159,8 @@ func getCloudCustomer(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_BILLING) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadBilling) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_BILLING) c.SetPermissionError(model.PermissionSysconsoleReadBilling)
return return
} }
@@ -185,8 +185,8 @@ func updateCloudCustomer(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_BILLING) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteBilling) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_BILLING) c.SetPermissionError(model.PermissionSysconsoleWriteBilling)
return return
} }
@@ -223,8 +223,8 @@ func updateCloudCustomerAddress(c *Context, w http.ResponseWriter, r *http.Reque
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_BILLING) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteBilling) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_BILLING) c.SetPermissionError(model.PermissionSysconsoleWriteBilling)
return return
} }
@@ -261,8 +261,8 @@ func createCustomerPayment(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_BILLING) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteBilling) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_BILLING) c.SetPermissionError(model.PermissionSysconsoleWriteBilling)
return return
} }
@@ -292,8 +292,8 @@ func confirmCustomerPayment(c *Context, w http.ResponseWriter, r *http.Request)
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_BILLING) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteBilling) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_BILLING) c.SetPermissionError(model.PermissionSysconsoleWriteBilling)
return return
} }
@@ -329,8 +329,8 @@ func getInvoicesForSubscription(c *Context, w http.ResponseWriter, r *http.Reque
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_BILLING) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadBilling) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_BILLING) c.SetPermissionError(model.PermissionSysconsoleReadBilling)
return return
} }
@@ -360,8 +360,8 @@ func getSubscriptionInvoicePDF(c *Context, w http.ResponseWriter, r *http.Reques
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_BILLING) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadBilling) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_BILLING) c.SetPermissionError(model.PermissionSysconsoleReadBilling)
return return
} }

Просмотреть файл

@@ -14,8 +14,8 @@ func (api *API) InitCluster() {
} }
func getClusterStatus(c *Context, w http.ResponseWriter, r *http.Request) { func getClusterStatus(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_HIGH_AVAILABILITY) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadEnvironmentHighAvailability) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_HIGH_AVAILABILITY) c.SetPermissionError(model.PermissionSysconsoleReadEnvironmentHighAvailability)
return return
} }

Просмотреть файл

@@ -38,8 +38,8 @@ func createCommand(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
c.LogAudit("attempt") c.LogAudit("attempt")
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), cmd.TeamId, model.PERMISSION_MANAGE_SLASH_COMMANDS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), cmd.TeamId, model.PermissionManageSlashCommands) {
c.SetPermissionError(model.PERMISSION_MANAGE_SLASH_COMMANDS) c.SetPermissionError(model.PermissionManageSlashCommands)
return return
} }
@@ -88,7 +88,7 @@ func updateCommand(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), oldCmd.TeamId, model.PERMISSION_MANAGE_SLASH_COMMANDS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), oldCmd.TeamId, model.PermissionManageSlashCommands) {
c.LogAudit("fail - inappropriate permissions") c.LogAudit("fail - inappropriate permissions")
// here we return Not_found instead of a permissions error so we don't leak the existence of // here we return Not_found instead of a permissions error so we don't leak the existence of
// a command to someone without permissions for the team it belongs to. // a command to someone without permissions for the team it belongs to.
@@ -96,9 +96,9 @@ func updateCommand(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if c.AppContext.Session().UserId != oldCmd.CreatorId && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), oldCmd.TeamId, model.PERMISSION_MANAGE_OTHERS_SLASH_COMMANDS) { if c.AppContext.Session().UserId != oldCmd.CreatorId && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), oldCmd.TeamId, model.PermissionManageOthersSlashCommands) {
c.LogAudit("fail - inappropriate permissions") c.LogAudit("fail - inappropriate permissions")
c.SetPermissionError(model.PERMISSION_MANAGE_OTHERS_SLASH_COMMANDS) c.SetPermissionError(model.PermissionManageOthersSlashCommands)
return return
} }
@@ -137,9 +137,9 @@ func moveCommand(c *Context, w http.ResponseWriter, r *http.Request) {
} }
auditRec.AddMeta("team", newTeam) auditRec.AddMeta("team", newTeam)
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), newTeam.Id, model.PERMISSION_MANAGE_SLASH_COMMANDS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), newTeam.Id, model.PermissionManageSlashCommands) {
c.LogAudit("fail - inappropriate permissions") c.LogAudit("fail - inappropriate permissions")
c.SetPermissionError(model.PERMISSION_MANAGE_SLASH_COMMANDS) c.SetPermissionError(model.PermissionManageSlashCommands)
return return
} }
@@ -150,7 +150,7 @@ func moveCommand(c *Context, w http.ResponseWriter, r *http.Request) {
} }
auditRec.AddMeta("command", cmd) auditRec.AddMeta("command", cmd)
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), cmd.TeamId, model.PERMISSION_MANAGE_SLASH_COMMANDS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), cmd.TeamId, model.PermissionManageSlashCommands) {
c.LogAudit("fail - inappropriate permissions") c.LogAudit("fail - inappropriate permissions")
// here we return Not_found instead of a permissions error so we don't leak the existence of // here we return Not_found instead of a permissions error so we don't leak the existence of
// a command to someone without permissions for the team it belongs to. // a command to someone without permissions for the team it belongs to.
@@ -186,7 +186,7 @@ func deleteCommand(c *Context, w http.ResponseWriter, r *http.Request) {
} }
auditRec.AddMeta("command", cmd) auditRec.AddMeta("command", cmd)
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), cmd.TeamId, model.PERMISSION_MANAGE_SLASH_COMMANDS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), cmd.TeamId, model.PermissionManageSlashCommands) {
c.LogAudit("fail - inappropriate permissions") c.LogAudit("fail - inappropriate permissions")
// here we return Not_found instead of a permissions error so we don't leak the existence of // here we return Not_found instead of a permissions error so we don't leak the existence of
// a command to someone without permissions for the team it belongs to. // a command to someone without permissions for the team it belongs to.
@@ -194,9 +194,9 @@ func deleteCommand(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if c.AppContext.Session().UserId != cmd.CreatorId && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), cmd.TeamId, model.PERMISSION_MANAGE_OTHERS_SLASH_COMMANDS) { if c.AppContext.Session().UserId != cmd.CreatorId && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), cmd.TeamId, model.PermissionManageOthersSlashCommands) {
c.LogAudit("fail - inappropriate permissions") c.LogAudit("fail - inappropriate permissions")
c.SetPermissionError(model.PERMISSION_MANAGE_OTHERS_SLASH_COMMANDS) c.SetPermissionError(model.PermissionManageOthersSlashCommands)
return return
} }
@@ -221,16 +221,16 @@ func listCommands(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), teamId, model.PERMISSION_VIEW_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), teamId, model.PermissionViewTeam) {
c.SetPermissionError(model.PERMISSION_VIEW_TEAM) c.SetPermissionError(model.PermissionViewTeam)
return return
} }
var commands []*model.Command var commands []*model.Command
var err *model.AppError var err *model.AppError
if customOnly { if customOnly {
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), teamId, model.PERMISSION_MANAGE_SLASH_COMMANDS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), teamId, model.PermissionManageSlashCommands) {
c.SetPermissionError(model.PERMISSION_MANAGE_SLASH_COMMANDS) c.SetPermissionError(model.PermissionManageSlashCommands)
return return
} }
commands, err = c.App.ListTeamCommands(teamId) commands, err = c.App.ListTeamCommands(teamId)
@@ -240,7 +240,7 @@ func listCommands(c *Context, w http.ResponseWriter, r *http.Request) {
} }
} else { } else {
//User with no permission should see only system commands //User with no permission should see only system commands
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), teamId, model.PERMISSION_MANAGE_SLASH_COMMANDS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), teamId, model.PermissionManageSlashCommands) {
commands, err = c.App.ListAutocompleteCommands(teamId, c.AppContext.T) commands, err = c.App.ListAutocompleteCommands(teamId, c.AppContext.T)
if err != nil { if err != nil {
c.Err = err c.Err = err
@@ -273,13 +273,13 @@ func getCommand(c *Context, w http.ResponseWriter, r *http.Request) {
// check for permissions to view this command; must have perms to view team and // check for permissions to view this command; must have perms to view team and
// PERMISSION_MANAGE_SLASH_COMMANDS for the team the command belongs to. // PERMISSION_MANAGE_SLASH_COMMANDS for the team the command belongs to.
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), cmd.TeamId, model.PERMISSION_VIEW_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), cmd.TeamId, model.PermissionViewTeam) {
// here we return Not_found instead of a permissions error so we don't leak the existence of // here we return Not_found instead of a permissions error so we don't leak the existence of
// a command to someone without permissions for the team it belongs to. // a command to someone without permissions for the team it belongs to.
c.SetCommandNotFoundError() c.SetCommandNotFoundError()
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), cmd.TeamId, model.PERMISSION_MANAGE_SLASH_COMMANDS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), cmd.TeamId, model.PermissionManageSlashCommands) {
// again, return not_found to ensure id existence does not leak. // again, return not_found to ensure id existence does not leak.
c.SetCommandNotFoundError() c.SetCommandNotFoundError()
return return
@@ -304,8 +304,8 @@ func executeCommand(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("commandargs", commandArgs) auditRec.AddMeta("commandargs", commandArgs)
// checks that user is a member of the specified channel, and that they have permission to use slash commands in it // checks that user is a member of the specified channel, and that they have permission to use slash commands in it
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), commandArgs.ChannelId, model.PERMISSION_USE_SLASH_COMMANDS) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), commandArgs.ChannelId, model.PermissionUseSlashCommands) {
c.SetPermissionError(model.PERMISSION_USE_SLASH_COMMANDS) c.SetPermissionError(model.PermissionUseSlashCommands)
return return
} }
@@ -315,7 +315,7 @@ func executeCommand(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if channel.Type != model.CHANNEL_DIRECT && channel.Type != model.CHANNEL_GROUP { if channel.Type != model.ChannelTypeDirect && channel.Type != model.ChannelTypeGroup {
// if this isn't a DM or GM, the team id is implicitly taken from the channel so that slash commands created on // if this isn't a DM or GM, the team id is implicitly taken from the channel so that slash commands created on
// some other team can't be run against this one // some other team can't be run against this one
commandArgs.TeamId = channel.TeamId commandArgs.TeamId = channel.TeamId
@@ -323,8 +323,8 @@ func executeCommand(c *Context, w http.ResponseWriter, r *http.Request) {
// if the slash command was used in a DM or GM, ensure that the user is a member of the specified team, so that // if the slash command was used in a DM or GM, ensure that the user is a member of the specified team, so that
// they can't just execute slash commands against arbitrary teams // they can't just execute slash commands against arbitrary teams
if c.AppContext.Session().GetTeamByTeamId(commandArgs.TeamId) == nil { if c.AppContext.Session().GetTeamByTeamId(commandArgs.TeamId) == nil {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_USE_SLASH_COMMANDS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionUseSlashCommands) {
c.SetPermissionError(model.PERMISSION_USE_SLASH_COMMANDS) c.SetPermissionError(model.PermissionUseSlashCommands)
return return
} }
} }
@@ -353,8 +353,8 @@ func listAutocompleteCommands(c *Context, w http.ResponseWriter, r *http.Request
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_VIEW_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionViewTeam) {
c.SetPermissionError(model.PERMISSION_VIEW_TEAM) c.SetPermissionError(model.PermissionViewTeam)
return return
} }
@@ -372,14 +372,14 @@ func listCommandAutocompleteSuggestions(c *Context, w http.ResponseWriter, r *ht
if c.Err != nil { if c.Err != nil {
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_VIEW_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionViewTeam) {
c.SetPermissionError(model.PERMISSION_VIEW_TEAM) c.SetPermissionError(model.PermissionViewTeam)
return return
} }
roleId := model.SYSTEM_USER_ROLE_ID roleId := model.SystemUserRoleId
if c.IsSystemAdmin() { if c.IsSystemAdmin() {
roleId = model.SYSTEM_ADMIN_ROLE_ID roleId = model.SystemAdminRoleId
} }
query := r.URL.Query() query := r.URL.Query()
@@ -431,7 +431,7 @@ func regenCommandToken(c *Context, w http.ResponseWriter, r *http.Request) {
} }
auditRec.AddMeta("command", cmd) auditRec.AddMeta("command", cmd)
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), cmd.TeamId, model.PERMISSION_MANAGE_SLASH_COMMANDS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), cmd.TeamId, model.PermissionManageSlashCommands) {
c.LogAudit("fail - inappropriate permissions") c.LogAudit("fail - inappropriate permissions")
// here we return Not_found instead of a permissions error so we don't leak the existence of // here we return Not_found instead of a permissions error so we don't leak the existence of
// a command to someone without permissions for the team it belongs to. // a command to someone without permissions for the team it belongs to.
@@ -439,9 +439,9 @@ func regenCommandToken(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if c.AppContext.Session().UserId != cmd.CreatorId && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), cmd.TeamId, model.PERMISSION_MANAGE_OTHERS_SLASH_COMMANDS) { if c.AppContext.Session().UserId != cmd.CreatorId && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), cmd.TeamId, model.PermissionManageOthersSlashCommands) {
c.LogAudit("fail - inappropriate permissions") c.LogAudit("fail - inappropriate permissions")
c.SetPermissionError(model.PERMISSION_MANAGE_OTHERS_SLASH_COMMANDS) c.SetPermissionError(model.PermissionManageOthersSlashCommands)
return return
} }

Просмотреть файл

@@ -25,7 +25,7 @@ func TestHelpCommand(t *testing.T) {
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.SupportSettings.HelpLink = "" }) th.App.UpdateConfig(func(cfg *model.Config) { *cfg.SupportSettings.HelpLink = "" })
rs1, _ := Client.ExecuteCommand(channel.Id, "/help ") rs1, _ := Client.ExecuteCommand(channel.Id, "/help ")
assert.Equal(t, rs1.GotoLocation, model.SUPPORT_SETTINGS_DEFAULT_HELP_LINK, "failed to default help link") assert.Equal(t, rs1.GotoLocation, model.SupportSettingsDefaultHelpLink, "failed to default help link")
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.SupportSettings.HelpLink = "https://docs.mattermost.com/guides/user.html" *cfg.SupportSettings.HelpLink = "https://docs.mattermost.com/guides/user.html"

Просмотреть файл

@@ -32,7 +32,7 @@ func TestCreateCommand(t *testing.T) {
CreatorId: th.BasicUser.Id, CreatorId: th.BasicUser.Id,
TeamId: th.BasicTeam.Id, TeamId: th.BasicTeam.Id,
URL: "http://nowhere.com", URL: "http://nowhere.com",
Method: model.COMMAND_METHOD_POST, Method: model.CommandMethodPost,
Trigger: "trigger"} Trigger: "trigger"}
_, resp := Client.CreateCommand(newCmd) _, resp := Client.CreateCommand(newCmd)
@@ -90,7 +90,7 @@ func TestUpdateCommand(t *testing.T) {
CreatorId: user.Id, CreatorId: user.Id,
TeamId: team.Id, TeamId: team.Id,
URL: "http://nowhere.com", URL: "http://nowhere.com",
Method: model.COMMAND_METHOD_POST, Method: model.CommandMethodPost,
Trigger: "trigger1", Trigger: "trigger1",
} }
@@ -100,7 +100,7 @@ func TestUpdateCommand(t *testing.T) {
CreatorId: GenerateTestId(), CreatorId: GenerateTestId(),
TeamId: team.Id, TeamId: team.Id,
URL: "http://nowhere.com/change", URL: "http://nowhere.com/change",
Method: model.COMMAND_METHOD_GET, Method: model.CommandMethodGet,
Trigger: "trigger2", Trigger: "trigger2",
Id: cmd1.Id, Id: cmd1.Id,
Token: "tokenchange", Token: "tokenchange",
@@ -165,7 +165,7 @@ func TestMoveCommand(t *testing.T) {
CreatorId: user.Id, CreatorId: user.Id,
TeamId: team.Id, TeamId: team.Id,
URL: "http://nowhere.com", URL: "http://nowhere.com",
Method: model.COMMAND_METHOD_POST, Method: model.CommandMethodPost,
Trigger: "trigger1", Trigger: "trigger1",
} }
@@ -192,7 +192,7 @@ func TestMoveCommand(t *testing.T) {
CreatorId: user.Id, CreatorId: user.Id,
TeamId: team.Id, TeamId: team.Id,
URL: "http://nowhere.com", URL: "http://nowhere.com",
Method: model.COMMAND_METHOD_POST, Method: model.CommandMethodPost,
Trigger: "trigger2", Trigger: "trigger2",
} }
@@ -222,7 +222,7 @@ func TestDeleteCommand(t *testing.T) {
CreatorId: user.Id, CreatorId: user.Id,
TeamId: team.Id, TeamId: team.Id,
URL: "http://nowhere.com", URL: "http://nowhere.com",
Method: model.COMMAND_METHOD_POST, Method: model.CommandMethodPost,
Trigger: "trigger1", Trigger: "trigger1",
} }
@@ -250,7 +250,7 @@ func TestDeleteCommand(t *testing.T) {
CreatorId: user.Id, CreatorId: user.Id,
TeamId: team.Id, TeamId: team.Id,
URL: "http://nowhere.com", URL: "http://nowhere.com",
Method: model.COMMAND_METHOD_POST, Method: model.CommandMethodPost,
Trigger: "trigger2", Trigger: "trigger2",
} }
@@ -279,7 +279,7 @@ func TestListCommands(t *testing.T) {
CreatorId: th.BasicUser.Id, CreatorId: th.BasicUser.Id,
TeamId: th.BasicTeam.Id, TeamId: th.BasicTeam.Id,
URL: "http://nowhere.com", URL: "http://nowhere.com",
Method: model.COMMAND_METHOD_POST, Method: model.CommandMethodPost,
Trigger: "custom_command"} Trigger: "custom_command"}
_, resp := th.SystemAdminClient.CreateCommand(newCmd) _, resp := th.SystemAdminClient.CreateCommand(newCmd)
@@ -363,7 +363,7 @@ func TestListAutocompleteCommands(t *testing.T) {
CreatorId: th.BasicUser.Id, CreatorId: th.BasicUser.Id,
TeamId: th.BasicTeam.Id, TeamId: th.BasicTeam.Id,
URL: "http://nowhere.com", URL: "http://nowhere.com",
Method: model.COMMAND_METHOD_POST, Method: model.CommandMethodPost,
Trigger: "custom_command"} Trigger: "custom_command"}
_, resp := th.SystemAdminClient.CreateCommand(newCmd) _, resp := th.SystemAdminClient.CreateCommand(newCmd)
@@ -430,7 +430,7 @@ func TestListCommandAutocompleteSuggestions(t *testing.T) {
CreatorId: th.BasicUser.Id, CreatorId: th.BasicUser.Id,
TeamId: th.BasicTeam.Id, TeamId: th.BasicTeam.Id,
URL: "http://nowhere.com", URL: "http://nowhere.com",
Method: model.COMMAND_METHOD_POST, Method: model.CommandMethodPost,
Trigger: "custom_command"} Trigger: "custom_command"}
_, resp := th.SystemAdminClient.CreateCommand(newCmd) _, resp := th.SystemAdminClient.CreateCommand(newCmd)
@@ -525,7 +525,7 @@ func TestGetCommand(t *testing.T) {
CreatorId: th.BasicUser.Id, CreatorId: th.BasicUser.Id,
TeamId: th.BasicTeam.Id, TeamId: th.BasicTeam.Id,
URL: "http://nowhere.com", URL: "http://nowhere.com",
Method: model.COMMAND_METHOD_POST, Method: model.CommandMethodPost,
Trigger: "roger"} Trigger: "roger"}
newCmd, resp := th.SystemAdminClient.CreateCommand(newCmd) newCmd, resp := th.SystemAdminClient.CreateCommand(newCmd)
@@ -585,7 +585,7 @@ func TestRegenToken(t *testing.T) {
CreatorId: th.BasicUser.Id, CreatorId: th.BasicUser.Id,
TeamId: th.BasicTeam.Id, TeamId: th.BasicTeam.Id,
URL: "http://nowhere.com", URL: "http://nowhere.com",
Method: model.COMMAND_METHOD_POST, Method: model.CommandMethodPost,
Trigger: "trigger"} Trigger: "trigger"}
createdCmd, resp := th.SystemAdminClient.CreateCommand(newCmd) createdCmd, resp := th.SystemAdminClient.CreateCommand(newCmd)
@@ -629,7 +629,7 @@ func TestExecuteInvalidCommand(t *testing.T) {
CreatorId: th.BasicUser.Id, CreatorId: th.BasicUser.Id,
TeamId: th.BasicTeam.Id, TeamId: th.BasicTeam.Id,
URL: ts.URL, URL: ts.URL,
Method: model.COMMAND_METHOD_GET, Method: model.CommandMethodGet,
Trigger: "getcommand", Trigger: "getcommand",
} }
@@ -683,7 +683,7 @@ func TestExecuteGetCommand(t *testing.T) {
token := model.NewId() token := model.NewId()
expectedCommandResponse := &model.CommandResponse{ expectedCommandResponse := &model.CommandResponse{
Text: "test get command response", Text: "test get command response",
ResponseType: model.COMMAND_RESPONSE_TYPE_IN_CHANNEL, ResponseType: model.CommandResponseTypeInChannel,
Type: "custom_test", Type: "custom_test",
Props: map[string]interface{}{"someprop": "somevalue"}, Props: map[string]interface{}{"someprop": "somevalue"},
} }
@@ -707,7 +707,7 @@ func TestExecuteGetCommand(t *testing.T) {
CreatorId: th.BasicUser.Id, CreatorId: th.BasicUser.Id,
TeamId: th.BasicTeam.Id, TeamId: th.BasicTeam.Id,
URL: ts.URL + "/?cmd=ourCommand", URL: ts.URL + "/?cmd=ourCommand",
Method: model.COMMAND_METHOD_GET, Method: model.CommandMethodGet,
Trigger: "getcommand", Trigger: "getcommand",
Token: token, Token: token,
} }
@@ -743,7 +743,7 @@ func TestExecutePostCommand(t *testing.T) {
token := model.NewId() token := model.NewId()
expectedCommandResponse := &model.CommandResponse{ expectedCommandResponse := &model.CommandResponse{
Text: "test post command response", Text: "test post command response",
ResponseType: model.COMMAND_RESPONSE_TYPE_IN_CHANNEL, ResponseType: model.CommandResponseTypeInChannel,
Type: "custom_test", Type: "custom_test",
Props: map[string]interface{}{"someprop": "somevalue"}, Props: map[string]interface{}{"someprop": "somevalue"},
} }
@@ -765,7 +765,7 @@ func TestExecutePostCommand(t *testing.T) {
CreatorId: th.BasicUser.Id, CreatorId: th.BasicUser.Id,
TeamId: th.BasicTeam.Id, TeamId: th.BasicTeam.Id,
URL: ts.URL, URL: ts.URL,
Method: model.COMMAND_METHOD_POST, Method: model.CommandMethodPost,
Trigger: "postcommand", Trigger: "postcommand",
Token: token, Token: token,
} }
@@ -802,7 +802,7 @@ func TestExecuteCommandAgainstChannelOnAnotherTeam(t *testing.T) {
expectedCommandResponse := &model.CommandResponse{ expectedCommandResponse := &model.CommandResponse{
Text: "test post command response", Text: "test post command response",
ResponseType: model.COMMAND_RESPONSE_TYPE_IN_CHANNEL, ResponseType: model.CommandResponseTypeInChannel,
Type: "custom_test", Type: "custom_test",
Props: map[string]interface{}{"someprop": "somevalue"}, Props: map[string]interface{}{"someprop": "somevalue"},
} }
@@ -819,7 +819,7 @@ func TestExecuteCommandAgainstChannelOnAnotherTeam(t *testing.T) {
CreatorId: th.BasicUser.Id, CreatorId: th.BasicUser.Id,
TeamId: team2.Id, TeamId: team2.Id,
URL: ts.URL, URL: ts.URL,
Method: model.COMMAND_METHOD_POST, Method: model.CommandMethodPost,
Trigger: "postcommand", Trigger: "postcommand",
} }
_, err := th.App.CreateCommand(postCmd) _, err := th.App.CreateCommand(postCmd)
@@ -851,7 +851,7 @@ func TestExecuteCommandAgainstChannelUserIsNotIn(t *testing.T) {
expectedCommandResponse := &model.CommandResponse{ expectedCommandResponse := &model.CommandResponse{
Text: "test post command response", Text: "test post command response",
ResponseType: model.COMMAND_RESPONSE_TYPE_IN_CHANNEL, ResponseType: model.CommandResponseTypeInChannel,
Type: "custom_test", Type: "custom_test",
Props: map[string]interface{}{"someprop": "somevalue"}, Props: map[string]interface{}{"someprop": "somevalue"},
} }
@@ -868,14 +868,14 @@ func TestExecuteCommandAgainstChannelUserIsNotIn(t *testing.T) {
CreatorId: th.BasicUser.Id, CreatorId: th.BasicUser.Id,
TeamId: team2.Id, TeamId: team2.Id,
URL: ts.URL, URL: ts.URL,
Method: model.COMMAND_METHOD_POST, Method: model.CommandMethodPost,
Trigger: "postcommand", Trigger: "postcommand",
} }
_, err := th.App.CreateCommand(postCmd) _, err := th.App.CreateCommand(postCmd)
require.Nil(t, err, "failed to create post command") require.Nil(t, err, "failed to create post command")
// make a channel on that team, ensuring that our test user isn't in it // make a channel on that team, ensuring that our test user isn't in it
channel2 := th.CreateChannelWithClientAndTeam(client, model.CHANNEL_OPEN, team2.Id) channel2 := th.CreateChannelWithClientAndTeam(client, model.ChannelTypeOpen, team2.Id)
success, _ := client.RemoveUserFromChannel(channel2.Id, th.BasicUser.Id) success, _ := client.RemoveUserFromChannel(channel2.Id, th.BasicUser.Id)
require.True(t, success, "Failed to remove user from channel") require.True(t, success, "Failed to remove user from channel")
@@ -907,7 +907,7 @@ func TestExecuteCommandInDirectMessageChannel(t *testing.T) {
expectedCommandResponse := &model.CommandResponse{ expectedCommandResponse := &model.CommandResponse{
Text: "test post command response", Text: "test post command response",
ResponseType: model.COMMAND_RESPONSE_TYPE_IN_CHANNEL, ResponseType: model.CommandResponseTypeInChannel,
Type: "custom_test", Type: "custom_test",
Props: map[string]interface{}{"someprop": "somevalue"}, Props: map[string]interface{}{"someprop": "somevalue"},
} }
@@ -924,7 +924,7 @@ func TestExecuteCommandInDirectMessageChannel(t *testing.T) {
CreatorId: th.BasicUser.Id, CreatorId: th.BasicUser.Id,
TeamId: team2.Id, TeamId: team2.Id,
URL: ts.URL, URL: ts.URL,
Method: model.COMMAND_METHOD_POST, Method: model.CommandMethodPost,
Trigger: "postcommand", Trigger: "postcommand",
} }
_, err := th.App.CreateCommand(postCmd) _, err := th.App.CreateCommand(postCmd)
@@ -966,7 +966,7 @@ func TestExecuteCommandInTeamUserIsNotOn(t *testing.T) {
expectedCommandResponse := &model.CommandResponse{ expectedCommandResponse := &model.CommandResponse{
Text: "test post command response", Text: "test post command response",
ResponseType: model.COMMAND_RESPONSE_TYPE_IN_CHANNEL, ResponseType: model.CommandResponseTypeInChannel,
Type: "custom_test", Type: "custom_test",
Props: map[string]interface{}{"someprop": "somevalue"}, Props: map[string]interface{}{"someprop": "somevalue"},
} }
@@ -986,7 +986,7 @@ func TestExecuteCommandInTeamUserIsNotOn(t *testing.T) {
CreatorId: th.BasicUser.Id, CreatorId: th.BasicUser.Id,
TeamId: team2.Id, TeamId: team2.Id,
URL: ts.URL, URL: ts.URL,
Method: model.COMMAND_METHOD_POST, Method: model.CommandMethodPost,
Trigger: "postcommand", Trigger: "postcommand",
} }
_, err := th.App.CreateCommand(postCmd) _, err := th.App.CreateCommand(postCmd)

Просмотреть файл

@@ -101,14 +101,14 @@ func testJoinCommands(t *testing.T, alias string) {
team := th.BasicTeam team := th.BasicTeam
user2 := th.BasicUser2 user2 := th.BasicUser2
channel0 := &model.Channel{DisplayName: "00", Name: "00" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: team.Id} channel0 := &model.Channel{DisplayName: "00", Name: "00" + model.NewId() + "a", Type: model.ChannelTypeOpen, TeamId: team.Id}
channel0 = Client.Must(Client.CreateChannel(channel0)).(*model.Channel) channel0 = Client.Must(Client.CreateChannel(channel0)).(*model.Channel)
channel1 := &model.Channel{DisplayName: "AA", Name: "aa" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: team.Id} channel1 := &model.Channel{DisplayName: "AA", Name: "aa" + model.NewId() + "a", Type: model.ChannelTypeOpen, TeamId: team.Id}
channel1 = Client.Must(Client.CreateChannel(channel1)).(*model.Channel) channel1 = Client.Must(Client.CreateChannel(channel1)).(*model.Channel)
Client.Must(Client.RemoveUserFromChannel(channel1.Id, th.BasicUser.Id)) Client.Must(Client.RemoveUserFromChannel(channel1.Id, th.BasicUser.Id))
channel2 := &model.Channel{DisplayName: "BB", Name: "bb" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: team.Id} channel2 := &model.Channel{DisplayName: "BB", Name: "bb" + model.NewId() + "a", Type: model.ChannelTypeOpen, TeamId: team.Id}
channel2 = Client.Must(Client.CreateChannel(channel2)).(*model.Channel) channel2 = Client.Must(Client.CreateChannel(channel2)).(*model.Channel)
Client.Must(Client.RemoveUserFromChannel(channel2.Id, th.BasicUser.Id)) Client.Must(Client.RemoveUserFromChannel(channel2.Id, th.BasicUser.Id))
@@ -131,7 +131,7 @@ func testJoinCommands(t *testing.T, alias string) {
require.True(t, found, "did not join channel") require.True(t, found, "did not join channel")
// test case insensitively // test case insensitively
channel4 := &model.Channel{DisplayName: "BB", Name: "bb" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: team.Id} channel4 := &model.Channel{DisplayName: "BB", Name: "bb" + model.NewId() + "a", Type: model.ChannelTypeOpen, TeamId: team.Id}
channel4 = Client.Must(Client.CreateChannel(channel4)).(*model.Channel) channel4 = Client.Must(Client.CreateChannel(channel4)).(*model.Channel)
Client.Must(Client.RemoveUserFromChannel(channel4.Id, th.BasicUser.Id)) Client.Must(Client.RemoveUserFromChannel(channel4.Id, th.BasicUser.Id))
rs7 := Client.Must(Client.ExecuteCommand(channel0.Id, "/"+alias+" "+strings.ToUpper(channel4.Name))).(*model.CommandResponse) rs7 := Client.Must(Client.ExecuteCommand(channel0.Id, "/"+alias+" "+strings.ToUpper(channel4.Name))).(*model.CommandResponse)
@@ -250,11 +250,11 @@ func TestLeaveCommands(t *testing.T) {
team := th.BasicTeam team := th.BasicTeam
user2 := th.BasicUser2 user2 := th.BasicUser2
channel1 := &model.Channel{DisplayName: "AA", Name: "aa" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: team.Id} channel1 := &model.Channel{DisplayName: "AA", Name: "aa" + model.NewId() + "a", Type: model.ChannelTypeOpen, TeamId: team.Id}
channel1 = Client.Must(Client.CreateChannel(channel1)).(*model.Channel) channel1 = Client.Must(Client.CreateChannel(channel1)).(*model.Channel)
Client.Must(Client.AddChannelMember(channel1.Id, th.BasicUser.Id)) Client.Must(Client.AddChannelMember(channel1.Id, th.BasicUser.Id))
channel2 := &model.Channel{DisplayName: "BB", Name: "bb" + model.NewId() + "a", Type: model.CHANNEL_PRIVATE, TeamId: team.Id} channel2 := &model.Channel{DisplayName: "BB", Name: "bb" + model.NewId() + "a", Type: model.ChannelTypePrivate, TeamId: team.Id}
channel2 = Client.Must(Client.CreateChannel(channel2)).(*model.Channel) channel2 = Client.Must(Client.CreateChannel(channel2)).(*model.Channel)
Client.Must(Client.AddChannelMember(channel2.Id, th.BasicUser.Id)) Client.Must(Client.AddChannelMember(channel2.Id, th.BasicUser.Id))
Client.Must(Client.AddChannelMember(channel2.Id, user2.Id)) Client.Must(Client.AddChannelMember(channel2.Id, user2.Id))
@@ -262,10 +262,10 @@ func TestLeaveCommands(t *testing.T) {
channel3 := Client.Must(Client.CreateDirectChannel(th.BasicUser.Id, user2.Id)).(*model.Channel) channel3 := Client.Must(Client.CreateDirectChannel(th.BasicUser.Id, user2.Id)).(*model.Channel)
rs1 := Client.Must(Client.ExecuteCommand(channel1.Id, "/leave")).(*model.CommandResponse) rs1 := Client.Must(Client.ExecuteCommand(channel1.Id, "/leave")).(*model.CommandResponse)
require.True(t, strings.HasSuffix(rs1.GotoLocation, "/"+team.Name+"/channels/"+model.DEFAULT_CHANNEL), "failed to leave open channel 1") require.True(t, strings.HasSuffix(rs1.GotoLocation, "/"+team.Name+"/channels/"+model.DefaultChannelName), "failed to leave open channel 1")
rs2 := Client.Must(Client.ExecuteCommand(channel2.Id, "/leave")).(*model.CommandResponse) rs2 := Client.Must(Client.ExecuteCommand(channel2.Id, "/leave")).(*model.CommandResponse)
require.True(t, strings.HasSuffix(rs2.GotoLocation, "/"+team.Name+"/channels/"+model.DEFAULT_CHANNEL), "failed to leave private channel 1") require.True(t, strings.HasSuffix(rs2.GotoLocation, "/"+team.Name+"/channels/"+model.DefaultChannelName), "failed to leave private channel 1")
_, err := Client.ExecuteCommand(channel3.Id, "/leave") _, err := Client.ExecuteCommand(channel3.Id, "/leave")
require.NotNil(t, err, "should fail leaving direct channel") require.NotNil(t, err, "should fail leaving direct channel")
@@ -281,7 +281,7 @@ func TestLeaveCommands(t *testing.T) {
require.False(t, found, "did not leave right channels") require.False(t, found, "did not leave right channels")
for _, c := range cdata { for _, c := range cdata {
if c.Name == model.DEFAULT_CHANNEL { if c.Name == model.DefaultChannelName {
_, err := Client.RemoveUserFromChannel(c.Id, th.BasicUser.Id) _, err := Client.RemoveUserFromChannel(c.Id, th.BasicUser.Id)
require.NotNil(t, err, "should have errored on leaving default channel") require.NotNil(t, err, "should have errored on leaving default channel")
break break
@@ -314,7 +314,7 @@ func TestMeCommand(t *testing.T) {
require.Len(t, p1.Order, 2, "Command failed to send") require.Len(t, p1.Order, 2, "Command failed to send")
pt := p1.Posts[p1.Order[0]].Type pt := p1.Posts[p1.Order[0]].Type
require.Equal(t, model.POST_ME, pt, "invalid post type") require.Equal(t, model.PostTypeMe, pt, "invalid post type")
msg := p1.Posts[p1.Order[0]].Message msg := p1.Posts[p1.Order[0]].Message
want := "*hello*" want := "*hello*"

Просмотреть файл

@@ -30,8 +30,8 @@ func createComplianceReport(c *Context, w http.ResponseWriter, r *http.Request)
auditRec := c.MakeAuditRecord("createComplianceReport", audit.Fail) auditRec := c.MakeAuditRecord("createComplianceReport", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_CREATE_COMPLIANCE_EXPORT_JOB) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionCreateComplianceExportJob) {
c.SetPermissionError(model.PERMISSION_CREATE_COMPLIANCE_EXPORT_JOB) c.SetPermissionError(model.PermissionCreateComplianceExportJob)
return return
} }
@@ -53,8 +53,8 @@ func createComplianceReport(c *Context, w http.ResponseWriter, r *http.Request)
} }
func getComplianceReports(c *Context, w http.ResponseWriter, r *http.Request) { func getComplianceReports(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_READ_COMPLIANCE_EXPORT_JOB) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionReadComplianceExportJob) {
c.SetPermissionError(model.PERMISSION_READ_COMPLIANCE_EXPORT_JOB) c.SetPermissionError(model.PermissionReadComplianceExportJob)
return return
} }
@@ -80,8 +80,8 @@ func getComplianceReport(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec := c.MakeAuditRecord("getComplianceReport", audit.Fail) auditRec := c.MakeAuditRecord("getComplianceReport", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_READ_COMPLIANCE_EXPORT_JOB) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionReadComplianceExportJob) {
c.SetPermissionError(model.PERMISSION_READ_COMPLIANCE_EXPORT_JOB) c.SetPermissionError(model.PermissionReadComplianceExportJob)
return return
} }
@@ -108,8 +108,8 @@ func downloadComplianceReport(c *Context, w http.ResponseWriter, r *http.Request
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("compliance_id", c.Params.ReportId) auditRec.AddMeta("compliance_id", c.Params.ReportId)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_DOWNLOAD_COMPLIANCE_EXPORT_RESULT) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionDownloadComplianceExportResult) {
c.SetPermissionError(model.PERMISSION_DOWNLOAD_COMPLIANCE_EXPORT_RESULT) c.SetPermissionError(model.PermissionDownloadComplianceExportResult)
return return
} }

Просмотреть файл

@@ -78,8 +78,8 @@ func configReload(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec := c.MakeAuditRecord("configReload", audit.Fail) auditRec := c.MakeAuditRecord("configReload", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_RELOAD_CONFIG) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionReloadConfig) {
c.SetPermissionError(model.PERMISSION_RELOAD_CONFIG) c.SetPermissionError(model.PermissionReloadConfig)
return return
} }
@@ -307,7 +307,7 @@ func makeFilterConfigByPermission(accessType filterType) func(c *Context, struct
// If there are no access tag values and the role has manage_system, no need to continue // If there are no access tag values and the role has manage_system, no need to continue
// checking permissions. // checking permissions.
if len(tagPermissions) == 0 { if len(tagPermissions) == 0 {
if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
return true return true
} }
} }
@@ -355,7 +355,7 @@ func makeFilterConfigByPermission(accessType filterType) func(c *Context, struct
} }
// with manage_system, default to allow, otherwise default not-allow // with manage_system, default to allow, otherwise default not-allow
return c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) return c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem)
} }
} }
@@ -377,8 +377,8 @@ func migrateConfig(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("to", to) auditRec.AddMeta("to", to)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }

Просмотреть файл

@@ -34,26 +34,26 @@ func TestGetConfig(t *testing.T) {
require.NotEqual(t, "", cfg.TeamSettings.SiteName) require.NotEqual(t, "", cfg.TeamSettings.SiteName)
if *cfg.LdapSettings.BindPassword != model.FAKE_SETTING && *cfg.LdapSettings.BindPassword != "" { if *cfg.LdapSettings.BindPassword != model.FakeSetting && *cfg.LdapSettings.BindPassword != "" {
require.FailNow(t, "did not sanitize properly") require.FailNow(t, "did not sanitize properly")
} }
require.Equal(t, model.FAKE_SETTING, *cfg.FileSettings.PublicLinkSalt, "did not sanitize properly") require.Equal(t, model.FakeSetting, *cfg.FileSettings.PublicLinkSalt, "did not sanitize properly")
if *cfg.FileSettings.AmazonS3SecretAccessKey != model.FAKE_SETTING && *cfg.FileSettings.AmazonS3SecretAccessKey != "" { if *cfg.FileSettings.AmazonS3SecretAccessKey != model.FakeSetting && *cfg.FileSettings.AmazonS3SecretAccessKey != "" {
require.FailNow(t, "did not sanitize properly") require.FailNow(t, "did not sanitize properly")
} }
if *cfg.EmailSettings.SMTPPassword != model.FAKE_SETTING && *cfg.EmailSettings.SMTPPassword != "" { if *cfg.EmailSettings.SMTPPassword != model.FakeSetting && *cfg.EmailSettings.SMTPPassword != "" {
require.FailNow(t, "did not sanitize properly") require.FailNow(t, "did not sanitize properly")
} }
if *cfg.GitLabSettings.Secret != model.FAKE_SETTING && *cfg.GitLabSettings.Secret != "" { if *cfg.GitLabSettings.Secret != model.FakeSetting && *cfg.GitLabSettings.Secret != "" {
require.FailNow(t, "did not sanitize properly") require.FailNow(t, "did not sanitize properly")
} }
require.Equal(t, model.FAKE_SETTING, *cfg.SqlSettings.DataSource, "did not sanitize properly") require.Equal(t, model.FakeSetting, *cfg.SqlSettings.DataSource, "did not sanitize properly")
require.Equal(t, model.FAKE_SETTING, *cfg.SqlSettings.AtRestEncryptKey, "did not sanitize properly") require.Equal(t, model.FakeSetting, *cfg.SqlSettings.AtRestEncryptKey, "did not sanitize properly")
if !strings.Contains(strings.Join(cfg.SqlSettings.DataSourceReplicas, " "), model.FAKE_SETTING) && len(cfg.SqlSettings.DataSourceReplicas) != 0 { if !strings.Contains(strings.Join(cfg.SqlSettings.DataSourceReplicas, " "), model.FakeSetting) && len(cfg.SqlSettings.DataSourceReplicas) != 0 {
require.FailNow(t, "did not sanitize properly") require.FailNow(t, "did not sanitize properly")
} }
if !strings.Contains(strings.Join(cfg.SqlSettings.DataSourceSearchReplicas, " "), model.FAKE_SETTING) && len(cfg.SqlSettings.DataSourceSearchReplicas) != 0 { if !strings.Contains(strings.Join(cfg.SqlSettings.DataSourceSearchReplicas, " "), model.FakeSetting) && len(cfg.SqlSettings.DataSourceSearchReplicas) != 0 {
require.FailNow(t, "did not sanitize properly") require.FailNow(t, "did not sanitize properly")
} }
}) })
@@ -81,8 +81,8 @@ func TestGetConfigWithAccessTag(t *testing.T) {
th.Client.Login(th.BasicUser.Username, th.BasicUser.Password) th.Client.Login(th.BasicUser.Username, th.BasicUser.Password)
// add read sysconsole environment config // add read sysconsole environment config
th.AddPermissionToRole(model.PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_RATE_LIMITING.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionSysconsoleReadEnvironmentRateLimiting.Id, model.SystemUserRoleId)
defer th.RemovePermissionFromRole(model.PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_RATE_LIMITING.Id, model.SYSTEM_USER_ROLE_ID) defer th.RemovePermissionFromRole(model.PermissionSysconsoleReadEnvironmentRateLimiting.Id, model.SystemUserRoleId)
cfg, resp := th.Client.GetConfig() cfg, resp := th.Client.GetConfig()
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -112,8 +112,8 @@ func TestGetConfigAnyFlagsAccess(t *testing.T) {
}) })
// add read sysconsole environment config // add read sysconsole environment config
th.AddPermissionToRole(model.PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_RATE_LIMITING.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionSysconsoleReadEnvironmentRateLimiting.Id, model.SystemUserRoleId)
defer th.RemovePermissionFromRole(model.PERMISSION_SYSCONSOLE_READ_ENVIRONMENT_RATE_LIMITING.Id, model.SYSTEM_USER_ROLE_ID) defer th.RemovePermissionFromRole(model.PermissionSysconsoleReadEnvironmentRateLimiting.Id, model.SystemUserRoleId)
cfg, resp := th.Client.GetConfig() cfg, resp := th.Client.GetConfig()
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -258,7 +258,7 @@ func TestGetConfigWithoutManageSystemPermission(t *testing.T) {
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
// add any sysconsole read permission // add any sysconsole read permission
th.AddPermissionToRole(model.SysconsoleReadPermissions[0].Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.SysconsoleReadPermissions[0].Id, model.SystemUserRoleId)
_, resp = th.Client.GetConfig() _, resp = th.Client.GetConfig()
// should be readable now // should be readable now
@@ -272,8 +272,8 @@ func TestUpdateConfigWithoutManageSystemPermission(t *testing.T) {
th.Client.Login(th.BasicUser.Username, th.BasicUser.Password) th.Client.Login(th.BasicUser.Username, th.BasicUser.Password)
// add read sysconsole integrations config // add read sysconsole integrations config
th.AddPermissionToRole(model.PERMISSION_SYSCONSOLE_READ_INTEGRATIONS_INTEGRATION_MANAGEMENT.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionSysconsoleReadIntegrationsIntegrationManagement.Id, model.SystemUserRoleId)
defer th.RemovePermissionFromRole(model.PERMISSION_SYSCONSOLE_READ_INTEGRATIONS_INTEGRATION_MANAGEMENT.Id, model.SYSTEM_USER_ROLE_ID) defer th.RemovePermissionFromRole(model.PermissionSysconsoleReadIntegrationsIntegrationManagement.Id, model.SystemUserRoleId)
t.Run("sysconsole read permission does not provides config write access", func(t *testing.T) { t.Run("sysconsole read permission does not provides config write access", func(t *testing.T) {
// should be readable because has a sysconsole read permission // should be readable because has a sysconsole read permission
@@ -293,8 +293,8 @@ func TestUpdateConfigWithoutManageSystemPermission(t *testing.T) {
originalValue := *cfg.ServiceSettings.AllowCorsFrom originalValue := *cfg.ServiceSettings.AllowCorsFrom
// add the wrong write permission // add the wrong write permission
th.AddPermissionToRole(model.PERMISSION_SYSCONSOLE_WRITE_ABOUT_EDITION_AND_LICENSE.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionSysconsoleWriteAboutEditionAndLicense.Id, model.SystemUserRoleId)
defer th.RemovePermissionFromRole(model.PERMISSION_SYSCONSOLE_WRITE_ABOUT_EDITION_AND_LICENSE.Id, model.SYSTEM_USER_ROLE_ID) defer th.RemovePermissionFromRole(model.PermissionSysconsoleWriteAboutEditionAndLicense.Id, model.SystemUserRoleId)
// try update a config value allowed by sysconsole WRITE integrations // try update a config value allowed by sysconsole WRITE integrations
mockVal := model.NewId() mockVal := model.NewId()
@@ -313,10 +313,10 @@ func TestUpdateConfigWithoutManageSystemPermission(t *testing.T) {
cfg, resp := th.SystemAdminClient.GetConfig() cfg, resp := th.SystemAdminClient.GetConfig()
CheckNoError(t, resp) CheckNoError(t, resp)
th.AddPermissionToRole(model.PERMISSION_SYSCONSOLE_WRITE_INTEGRATIONS_CORS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionSysconsoleWriteIntegrationsCors.Id, model.SystemUserRoleId)
defer th.RemovePermissionFromRole(model.PERMISSION_SYSCONSOLE_WRITE_INTEGRATIONS_CORS.Id, model.SYSTEM_USER_ROLE_ID) defer th.RemovePermissionFromRole(model.PermissionSysconsoleWriteIntegrationsCors.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_SYSCONSOLE_READ_INTEGRATIONS_CORS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionSysconsoleReadIntegrationsCors.Id, model.SystemUserRoleId)
defer th.RemovePermissionFromRole(model.PERMISSION_SYSCONSOLE_READ_INTEGRATIONS_CORS.Id, model.SYSTEM_USER_ROLE_ID) defer th.RemovePermissionFromRole(model.PermissionSysconsoleReadIntegrationsCors.Id, model.SystemUserRoleId)
// try update a config value allowed by sysconsole WRITE integrations // try update a config value allowed by sysconsole WRITE integrations
mockVal := model.NewId() mockVal := model.NewId()
@@ -704,7 +704,7 @@ func TestPatchConfig(t *testing.T) {
updatedConfig, _ := client.PatchConfig(&config) updatedConfig, _ := client.PatchConfig(&config)
assert.Equal(t, model.FAKE_SETTING, *updatedConfig.SqlSettings.DataSource) assert.Equal(t, model.FakeSetting, *updatedConfig.SqlSettings.DataSource)
}) })
t.Run("not allowing to toggle enable uploads for plugin via api", func(t *testing.T) { t.Run("not allowing to toggle enable uploads for plugin via api", func(t *testing.T) {

Просмотреть файл

@@ -44,8 +44,8 @@ func getGlobalPolicy(c *Context, w http.ResponseWriter, r *http.Request) {
} }
func getPolicies(c *Context, w http.ResponseWriter, r *http.Request) { func getPolicies(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadComplianceDataRetentionPolicy) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) c.SetPermissionError(model.PermissionSysconsoleReadComplianceDataRetentionPolicy)
return return
} }
@@ -62,8 +62,8 @@ func getPolicies(c *Context, w http.ResponseWriter, r *http.Request) {
} }
func getPoliciesCount(c *Context, w http.ResponseWriter, r *http.Request) { func getPoliciesCount(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadComplianceDataRetentionPolicy) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) c.SetPermissionError(model.PermissionSysconsoleReadComplianceDataRetentionPolicy)
return return
} }
@@ -78,8 +78,8 @@ func getPoliciesCount(c *Context, w http.ResponseWriter, r *http.Request) {
} }
func getPolicy(c *Context, w http.ResponseWriter, r *http.Request) { func getPolicy(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadComplianceDataRetentionPolicy) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) c.SetPermissionError(model.PermissionSysconsoleReadComplianceDataRetentionPolicy)
return return
} }
@@ -102,8 +102,8 @@ func createPolicy(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("policy", policy) auditRec.AddMeta("policy", policy)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_COMPLIANCE_DATA_RETENTION_POLICY) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteComplianceDataRetentionPolicy) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_COMPLIANCE_DATA_RETENTION_POLICY) c.SetPermissionError(model.PermissionSysconsoleWriteComplianceDataRetentionPolicy)
return return
} }
@@ -131,8 +131,8 @@ func patchPolicy(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("patch", patch) auditRec.AddMeta("patch", patch)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_COMPLIANCE_DATA_RETENTION_POLICY) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteComplianceDataRetentionPolicy) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_COMPLIANCE_DATA_RETENTION_POLICY) c.SetPermissionError(model.PermissionSysconsoleWriteComplianceDataRetentionPolicy)
return return
} }
@@ -152,8 +152,8 @@ func deletePolicy(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec := c.MakeAuditRecord("deletePolicy", audit.Fail) auditRec := c.MakeAuditRecord("deletePolicy", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("policy_id", policyId) auditRec.AddMeta("policy_id", policyId)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_COMPLIANCE_DATA_RETENTION_POLICY) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteComplianceDataRetentionPolicy) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_COMPLIANCE_DATA_RETENTION_POLICY) c.SetPermissionError(model.PermissionSysconsoleWriteComplianceDataRetentionPolicy)
return return
} }
@@ -167,8 +167,8 @@ func deletePolicy(c *Context, w http.ResponseWriter, r *http.Request) {
} }
func getTeamsForPolicy(c *Context, w http.ResponseWriter, r *http.Request) { func getTeamsForPolicy(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadComplianceDataRetentionPolicy) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) c.SetPermissionError(model.PermissionSysconsoleReadComplianceDataRetentionPolicy)
return return
} }
@@ -194,8 +194,8 @@ func getTeamsForPolicy(c *Context, w http.ResponseWriter, r *http.Request) {
func searchTeamsInPolicy(c *Context, w http.ResponseWriter, r *http.Request) { func searchTeamsInPolicy(c *Context, w http.ResponseWriter, r *http.Request) {
c.RequirePolicyId() c.RequirePolicyId()
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadComplianceDataRetentionPolicy) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) c.SetPermissionError(model.PermissionSysconsoleReadComplianceDataRetentionPolicy)
return return
} }
@@ -231,8 +231,8 @@ func addTeamsToPolicy(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("policy_id", policyId) auditRec.AddMeta("policy_id", policyId)
auditRec.AddMeta("team_ids", teamIDs) auditRec.AddMeta("team_ids", teamIDs)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_COMPLIANCE_DATA_RETENTION_POLICY) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteComplianceDataRetentionPolicy) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_COMPLIANCE_DATA_RETENTION_POLICY) c.SetPermissionError(model.PermissionSysconsoleWriteComplianceDataRetentionPolicy)
return return
} }
@@ -260,8 +260,8 @@ func removeTeamsFromPolicy(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("policy_id", policyId) auditRec.AddMeta("policy_id", policyId)
auditRec.AddMeta("team_ids", teamIDs) auditRec.AddMeta("team_ids", teamIDs)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_COMPLIANCE_DATA_RETENTION_POLICY) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteComplianceDataRetentionPolicy) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_COMPLIANCE_DATA_RETENTION_POLICY) c.SetPermissionError(model.PermissionSysconsoleWriteComplianceDataRetentionPolicy)
return return
} }
@@ -276,8 +276,8 @@ func removeTeamsFromPolicy(c *Context, w http.ResponseWriter, r *http.Request) {
} }
func getChannelsForPolicy(c *Context, w http.ResponseWriter, r *http.Request) { func getChannelsForPolicy(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadComplianceDataRetentionPolicy) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) c.SetPermissionError(model.PermissionSysconsoleReadComplianceDataRetentionPolicy)
return return
} }
@@ -308,8 +308,8 @@ func searchChannelsInPolicy(c *Context, w http.ResponseWriter, r *http.Request)
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadComplianceDataRetentionPolicy) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) c.SetPermissionError(model.PermissionSysconsoleReadComplianceDataRetentionPolicy)
return return
} }
@@ -347,8 +347,8 @@ func addChannelsToPolicy(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("policy_id", policyId) auditRec.AddMeta("policy_id", policyId)
auditRec.AddMeta("channel_ids", channelIDs) auditRec.AddMeta("channel_ids", channelIDs)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_COMPLIANCE_DATA_RETENTION_POLICY) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteComplianceDataRetentionPolicy) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_COMPLIANCE_DATA_RETENTION_POLICY) c.SetPermissionError(model.PermissionSysconsoleWriteComplianceDataRetentionPolicy)
return return
} }
@@ -376,8 +376,8 @@ func removeChannelsFromPolicy(c *Context, w http.ResponseWriter, r *http.Request
auditRec.AddMeta("policy_id", policyId) auditRec.AddMeta("policy_id", policyId)
auditRec.AddMeta("channel_ids", channelIDs) auditRec.AddMeta("channel_ids", channelIDs)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_COMPLIANCE_DATA_RETENTION_POLICY) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteComplianceDataRetentionPolicy) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_COMPLIANCE_DATA_RETENTION_POLICY) c.SetPermissionError(model.PermissionSysconsoleWriteComplianceDataRetentionPolicy)
return return
} }
@@ -400,8 +400,8 @@ func getTeamPoliciesForUser(c *Context, w http.ResponseWriter, r *http.Request)
limit := c.Params.PerPage limit := c.Params.PerPage
offset := c.Params.Page * limit offset := c.Params.Page * limit
if userID != c.AppContext.Session().UserId && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if userID != c.AppContext.Session().UserId && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -423,8 +423,8 @@ func getChannelPoliciesForUser(c *Context, w http.ResponseWriter, r *http.Reques
limit := c.Params.PerPage limit := c.Params.PerPage
offset := c.Params.Page * limit offset := c.Params.Page * limit
if userID != c.AppContext.Session().UserId && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if userID != c.AppContext.Session().UserId && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }

Просмотреть файл

@@ -23,8 +23,8 @@ func testElasticsearch(c *Context, w http.ResponseWriter, r *http.Request) {
// PERMISSION_TEST_ELASTICSEARCH is an ancillary permission of PERMISSION_SYSCONSOLE_WRITE_ENVIRONMENT_ELASTICSEARCH, // PERMISSION_TEST_ELASTICSEARCH is an ancillary permission of PERMISSION_SYSCONSOLE_WRITE_ENVIRONMENT_ELASTICSEARCH,
// which should prevent read-only managers from password sniffing // which should prevent read-only managers from password sniffing
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_TEST_ELASTICSEARCH) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionTestElasticsearch) {
c.SetPermissionError(model.PERMISSION_TEST_ELASTICSEARCH) c.SetPermissionError(model.PermissionTestElasticsearch)
return return
} }
@@ -45,8 +45,8 @@ func purgeElasticsearchIndexes(c *Context, w http.ResponseWriter, r *http.Reques
auditRec := c.MakeAuditRecord("purgeElasticsearchIndexes", audit.Fail) auditRec := c.MakeAuditRecord("purgeElasticsearchIndexes", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_PURGE_ELASTICSEARCH_INDEXES) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionPurgeElasticsearchIndexes) {
c.SetPermissionError(model.PERMISSION_PURGE_ELASTICSEARCH_INDEXES) c.SetPermissionError(model.PermissionPurgeElasticsearchIndexes)
return return
} }

Просмотреть файл

@@ -59,16 +59,16 @@ func createEmoji(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_CREATE_EMOJIS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionCreateEmojis) {
hasPermission := false hasPermission := false
for _, membership := range memberships { for _, membership := range memberships {
if c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), membership.TeamId, model.PERMISSION_CREATE_EMOJIS) { if c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), membership.TeamId, model.PermissionCreateEmojis) {
hasPermission = true hasPermission = true
break break
} }
} }
if !hasPermission { if !hasPermission {
c.SetPermissionError(model.PERMISSION_CREATE_EMOJIS) c.SetPermissionError(model.PermissionCreateEmojis)
return return
} }
} }
@@ -106,7 +106,7 @@ func getEmojiList(c *Context, w http.ResponseWriter, r *http.Request) {
} }
sort := r.URL.Query().Get("sort") sort := r.URL.Query().Get("sort")
if sort != "" && sort != model.EMOJI_SORT_BY_NAME { if sort != "" && sort != model.EmojiSortByName {
c.SetInvalidUrlParam("sort") c.SetInvalidUrlParam("sort")
return return
} }
@@ -145,32 +145,32 @@ func deleteEmoji(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_DELETE_EMOJIS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionDeleteEmojis) {
hasPermission := false hasPermission := false
for _, membership := range memberships { for _, membership := range memberships {
if c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), membership.TeamId, model.PERMISSION_DELETE_EMOJIS) { if c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), membership.TeamId, model.PermissionDeleteEmojis) {
hasPermission = true hasPermission = true
break break
} }
} }
if !hasPermission { if !hasPermission {
c.SetPermissionError(model.PERMISSION_DELETE_EMOJIS) c.SetPermissionError(model.PermissionDeleteEmojis)
return return
} }
} }
if c.AppContext.Session().UserId != emoji.CreatorId { if c.AppContext.Session().UserId != emoji.CreatorId {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_DELETE_OTHERS_EMOJIS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionDeleteOthersEmojis) {
hasPermission := false hasPermission := false
for _, membership := range memberships { for _, membership := range memberships {
if c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), membership.TeamId, model.PERMISSION_DELETE_OTHERS_EMOJIS) { if c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), membership.TeamId, model.PermissionDeleteOthersEmojis) {
hasPermission = true hasPermission = true
break break
} }
} }
if !hasPermission { if !hasPermission {
c.SetPermissionError(model.PERMISSION_DELETE_OTHERS_EMOJIS) c.SetPermissionError(model.PermissionDeleteOthersEmojis)
return return
} }
} }

Просмотреть файл

@@ -169,7 +169,7 @@ func TestCreateEmoji(t *testing.T) {
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
// try to create an emoji without permissions // try to create an emoji without permissions
th.RemovePermissionFromRole(model.PERMISSION_CREATE_EMOJIS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionCreateEmojis.Id, model.SystemUserRoleId)
emoji = &model.Emoji{ emoji = &model.Emoji{
CreatorId: th.BasicUser.Id, CreatorId: th.BasicUser.Id,
@@ -180,7 +180,7 @@ func TestCreateEmoji(t *testing.T) {
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
// create an emoji with permissions in one team // create an emoji with permissions in one team
th.AddPermissionToRole(model.PERMISSION_CREATE_EMOJIS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateEmojis.Id, model.TeamUserRoleId)
emoji = &model.Emoji{ emoji = &model.Emoji{
CreatorId: th.BasicUser.Id, CreatorId: th.BasicUser.Id,
@@ -254,7 +254,7 @@ func TestGetEmojiList(t *testing.T) {
require.Len(t, listEmoji, 1, "should only return 1") require.Len(t, listEmoji, 1, "should only return 1")
listEmoji, resp = Client.GetSortedEmojiList(0, 100, model.EMOJI_SORT_BY_NAME) listEmoji, resp = Client.GetSortedEmojiList(0, 100, model.EmojiSortByName)
CheckNoError(t, resp) CheckNoError(t, resp)
require.Greater(t, len(listEmoji), 0, "should return more than 0") require.Greater(t, len(listEmoji), 0, "should return more than 0")
@@ -320,10 +320,10 @@ func TestDeleteEmoji(t *testing.T) {
newEmoji, resp = Client.CreateEmoji(emoji, utils.CreateTestGif(t, 10, 10), "image.gif") newEmoji, resp = Client.CreateEmoji(emoji, utils.CreateTestGif(t, 10, 10), "image.gif")
CheckNoError(t, resp) CheckNoError(t, resp)
th.RemovePermissionFromRole(model.PERMISSION_DELETE_EMOJIS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionDeleteEmojis.Id, model.SystemUserRoleId)
_, resp = Client.DeleteEmoji(newEmoji.Id) _, resp = Client.DeleteEmoji(newEmoji.Id)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
th.AddPermissionToRole(model.PERMISSION_DELETE_EMOJIS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionDeleteEmojis.Id, model.SystemUserRoleId)
//Try to delete other user's custom emoji without DELETE_EMOJIS permissions //Try to delete other user's custom emoji without DELETE_EMOJIS permissions
emoji = &model.Emoji{ emoji = &model.Emoji{
@@ -334,8 +334,8 @@ func TestDeleteEmoji(t *testing.T) {
newEmoji, resp = Client.CreateEmoji(emoji, utils.CreateTestGif(t, 10, 10), "image.gif") newEmoji, resp = Client.CreateEmoji(emoji, utils.CreateTestGif(t, 10, 10), "image.gif")
CheckNoError(t, resp) CheckNoError(t, resp)
th.RemovePermissionFromRole(model.PERMISSION_DELETE_EMOJIS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionDeleteEmojis.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_DELETE_OTHERS_EMOJIS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionDeleteOthersEmojis.Id, model.SystemUserRoleId)
Client.Logout() Client.Logout()
th.LoginBasic2() th.LoginBasic2()
@@ -343,8 +343,8 @@ func TestDeleteEmoji(t *testing.T) {
_, resp = Client.DeleteEmoji(newEmoji.Id) _, resp = Client.DeleteEmoji(newEmoji.Id)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
th.RemovePermissionFromRole(model.PERMISSION_DELETE_OTHERS_EMOJIS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionDeleteOthersEmojis.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_DELETE_EMOJIS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionDeleteEmojis.Id, model.SystemUserRoleId)
Client.Logout() Client.Logout()
th.LoginBasic() th.LoginBasic()
@@ -376,8 +376,8 @@ func TestDeleteEmoji(t *testing.T) {
newEmoji, resp = Client.CreateEmoji(emoji, utils.CreateTestGif(t, 10, 10), "image.gif") newEmoji, resp = Client.CreateEmoji(emoji, utils.CreateTestGif(t, 10, 10), "image.gif")
CheckNoError(t, resp) CheckNoError(t, resp)
th.AddPermissionToRole(model.PERMISSION_DELETE_EMOJIS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionDeleteEmojis.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_DELETE_OTHERS_EMOJIS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionDeleteOthersEmojis.Id, model.SystemUserRoleId)
Client.Logout() Client.Logout()
th.LoginBasic2() th.LoginBasic2()
@@ -392,12 +392,12 @@ func TestDeleteEmoji(t *testing.T) {
newEmoji, resp = Client.CreateEmoji(emoji, utils.CreateTestGif(t, 10, 10), "image.gif") newEmoji, resp = Client.CreateEmoji(emoji, utils.CreateTestGif(t, 10, 10), "image.gif")
CheckNoError(t, resp) CheckNoError(t, resp)
th.RemovePermissionFromRole(model.PERMISSION_DELETE_EMOJIS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionDeleteEmojis.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_DELETE_EMOJIS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionDeleteEmojis.Id, model.TeamUserRoleId)
_, resp = Client.DeleteEmoji(newEmoji.Id) _, resp = Client.DeleteEmoji(newEmoji.Id)
CheckNoError(t, resp) CheckNoError(t, resp)
th.AddPermissionToRole(model.PERMISSION_DELETE_EMOJIS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionDeleteEmojis.Id, model.SystemUserRoleId)
th.RemovePermissionFromRole(model.PERMISSION_DELETE_EMOJIS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionDeleteEmojis.Id, model.TeamUserRoleId)
//Try to delete other user's custom emoji with permissions at team level //Try to delete other user's custom emoji with permissions at team level
emoji = &model.Emoji{ emoji = &model.Emoji{
@@ -408,11 +408,11 @@ func TestDeleteEmoji(t *testing.T) {
newEmoji, resp = Client.CreateEmoji(emoji, utils.CreateTestGif(t, 10, 10), "image.gif") newEmoji, resp = Client.CreateEmoji(emoji, utils.CreateTestGif(t, 10, 10), "image.gif")
CheckNoError(t, resp) CheckNoError(t, resp)
th.RemovePermissionFromRole(model.PERMISSION_DELETE_EMOJIS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionDeleteEmojis.Id, model.SystemUserRoleId)
th.RemovePermissionFromRole(model.PERMISSION_DELETE_OTHERS_EMOJIS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionDeleteOthersEmojis.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_DELETE_EMOJIS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionDeleteEmojis.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_DELETE_OTHERS_EMOJIS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionDeleteOthersEmojis.Id, model.TeamUserRoleId)
Client.Logout() Client.Logout()
th.LoginBasic2() th.LoginBasic2()

Просмотреть файл

@@ -21,7 +21,7 @@ func (api *API) InitExport() {
func listExports(c *Context, w http.ResponseWriter, r *http.Request) { func listExports(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.IsSystemAdmin() { if !c.IsSystemAdmin() {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -46,7 +46,7 @@ func deleteExport(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("export_name", c.Params.ExportName) auditRec.AddMeta("export_name", c.Params.ExportName)
if !c.IsSystemAdmin() { if !c.IsSystemAdmin() {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -61,7 +61,7 @@ func deleteExport(c *Context, w http.ResponseWriter, r *http.Request) {
func downloadExport(c *Context, w http.ResponseWriter, r *http.Request) { func downloadExport(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.IsSystemAdmin() { if !c.IsSystemAdmin() {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }

Просмотреть файл

@@ -162,8 +162,8 @@ func uploadFileSimple(c *Context, r *http.Request, timestamp time.Time) *model.F
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("channel_id", c.Params.ChannelId) auditRec.AddMeta("channel_id", c.Params.ChannelId)
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PERMISSION_UPLOAD_FILE) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PermissionUploadFile) {
c.SetPermissionError(model.PERMISSION_UPLOAD_FILE) c.SetPermissionError(model.PermissionUploadFile)
return nil return nil
} }
@@ -224,7 +224,7 @@ func uploadFileMultipart(c *Context, r *http.Request, asStream io.Reader, timest
} }
nFiles := 0 nFiles := 0
NEXT_PART: NextPart:
for { for {
part, err := mr.NextPart() part, err := mr.NextPart()
if err == io.EOF { if err == io.EOF {
@@ -285,7 +285,7 @@ NEXT_PART:
return nil return nil
} }
continue NEXT_PART continue NextPart
} }
// A file part. // A file part.
@@ -307,8 +307,8 @@ NEXT_PART:
if c.Err != nil { if c.Err != nil {
return nil return nil
} }
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PERMISSION_UPLOAD_FILE) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, model.PermissionUploadFile) {
c.SetPermissionError(model.PERMISSION_UPLOAD_FILE) c.SetPermissionError(model.PermissionUploadFile)
return nil return nil
} }
@@ -396,8 +396,8 @@ func uploadFileMultipartLegacy(c *Context, mr *multipart.Reader,
if c.Err != nil { if c.Err != nil {
return nil return nil
} }
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channelId, model.PERMISSION_UPLOAD_FILE) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channelId, model.PermissionUploadFile) {
c.SetPermissionError(model.PERMISSION_UPLOAD_FILE) c.SetPermissionError(model.PermissionUploadFile)
return nil return nil
} }
@@ -481,8 +481,8 @@ func getFile(c *Context, w http.ResponseWriter, r *http.Request) {
} }
auditRec.AddMeta("file", info) auditRec.AddMeta("file", info)
if info.CreatorId != c.AppContext.Session().UserId && !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), info.PostId, model.PERMISSION_READ_CHANNEL) { if info.CreatorId != c.AppContext.Session().UserId && !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), info.PostId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
@@ -512,8 +512,8 @@ func getFileThumbnail(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if info.CreatorId != c.AppContext.Session().UserId && !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), info.PostId, model.PERMISSION_READ_CHANNEL) { if info.CreatorId != c.AppContext.Session().UserId && !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), info.PostId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
@@ -554,8 +554,8 @@ func getFileLink(c *Context, w http.ResponseWriter, r *http.Request) {
} }
auditRec.AddMeta("file", info) auditRec.AddMeta("file", info)
if info.CreatorId != c.AppContext.Session().UserId && !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), info.PostId, model.PERMISSION_READ_CHANNEL) { if info.CreatorId != c.AppContext.Session().UserId && !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), info.PostId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
@@ -587,8 +587,8 @@ func getFilePreview(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if info.CreatorId != c.AppContext.Session().UserId && !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), info.PostId, model.PERMISSION_READ_CHANNEL) { if info.CreatorId != c.AppContext.Session().UserId && !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), info.PostId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
@@ -620,8 +620,8 @@ func getFileInfo(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if info.CreatorId != c.AppContext.Session().UserId && !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), info.PostId, model.PERMISSION_READ_CHANNEL) { if info.CreatorId != c.AppContext.Session().UserId && !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), info.PostId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
@@ -734,8 +734,8 @@ func searchFiles(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_VIEW_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionViewTeam) {
c.SetPermissionError(model.PERMISSION_VIEW_TEAM) c.SetPermissionError(model.PermissionViewTeam)
return return
} }

Просмотреть файл

@@ -68,7 +68,7 @@ func testDoUploadFileRequest(t testing.TB, c *model.Client4, url string, blob []
} }
req.Header.Set("Content-Type", contentType) req.Header.Set("Content-Type", contentType)
if c.AuthToken != "" { if c.AuthToken != "" {
req.Header.Set(model.HEADER_AUTH, c.AuthType+" "+c.AuthToken) req.Header.Set(model.HeaderAuth, c.AuthType+" "+c.AuthToken)
} }
resp, err := c.HttpClient.Do(req) resp, err := c.HttpClient.Do(req)

Просмотреть файл

@@ -88,8 +88,8 @@ func getGroup(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_GROUPS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadUserManagementGroups) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_GROUPS) c.SetPermissionError(model.PermissionSysconsoleReadUserManagementGroups)
return return
} }
@@ -128,8 +128,8 @@ func patchGroup(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_GROUPS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteUserManagementGroups) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_GROUPS) c.SetPermissionError(model.PermissionSysconsoleWriteUserManagementGroups)
return return
} }
@@ -145,7 +145,7 @@ func patchGroup(c *Context, w http.ResponseWriter, r *http.Request) {
tmp := strings.ReplaceAll(strings.ToLower(group.DisplayName), " ", "-") tmp := strings.ReplaceAll(strings.ToLower(group.DisplayName), " ", "-")
groupPatch.Name = &tmp groupPatch.Name = &tmp
} else { } else {
if *groupPatch.Name == model.USER_NOTIFY_ALL || *groupPatch.Name == model.CHANNEL_MENTIONS_NOTIFY_PROP || *groupPatch.Name == model.USER_NOTIFY_HERE { if *groupPatch.Name == model.UserNotifyAll || *groupPatch.Name == model.ChannelMentionsNotifyProp || *groupPatch.Name == model.UserNotifyHere {
c.Err = model.NewAppError("Api4.patchGroup", "api.ldap_groups.existing_reserved_name_error", nil, "", http.StatusNotImplemented) c.Err = model.NewAppError("Api4.patchGroup", "api.ldap_groups.existing_reserved_name_error", nil, "", http.StatusNotImplemented)
return return
} }
@@ -284,8 +284,8 @@ func getGroupSyncable(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -321,8 +321,8 @@ func getGroupSyncables(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_GROUPS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadUserManagementGroups) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_GROUPS) c.SetPermissionError(model.PermissionSysconsoleReadUserManagementGroups)
return return
} }
@@ -473,8 +473,8 @@ func unlinkGroupSyncable(c *Context, w http.ResponseWriter, r *http.Request) {
func verifyLinkUnlinkPermission(c *Context, syncableType model.GroupSyncableType, syncableID string) *model.AppError { func verifyLinkUnlinkPermission(c *Context, syncableType model.GroupSyncableType, syncableID string) *model.AppError {
switch syncableType { switch syncableType {
case model.GroupSyncableTypeTeam: case model.GroupSyncableTypeTeam:
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), syncableID, model.PERMISSION_MANAGE_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), syncableID, model.PermissionManageTeam) {
return c.App.MakePermissionError(c.AppContext.Session(), []*model.Permission{model.PERMISSION_MANAGE_TEAM}) return c.App.MakePermissionError(c.AppContext.Session(), []*model.Permission{model.PermissionManageTeam})
} }
case model.GroupSyncableTypeChannel: case model.GroupSyncableTypeChannel:
channel, err := c.App.GetChannel(syncableID) channel, err := c.App.GetChannel(syncableID)
@@ -483,10 +483,10 @@ func verifyLinkUnlinkPermission(c *Context, syncableType model.GroupSyncableType
} }
var permission *model.Permission var permission *model.Permission
if channel.Type == model.CHANNEL_PRIVATE { if channel.Type == model.ChannelTypePrivate {
permission = model.PERMISSION_MANAGE_PRIVATE_CHANNEL_MEMBERS permission = model.PermissionManagePrivateChannelMembers
} else { } else {
permission = model.PERMISSION_MANAGE_PUBLIC_CHANNEL_MEMBERS permission = model.PermissionManagePublicChannelMembers
} }
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), syncableID, permission) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), syncableID, permission) {
@@ -508,8 +508,8 @@ func getGroupMembers(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_GROUPS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadUserManagementGroups) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_GROUPS) c.SetPermissionError(model.PermissionSysconsoleReadUserManagementGroups)
return return
} }
@@ -545,8 +545,8 @@ func getGroupStats(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_GROUPS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadUserManagementGroups) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_GROUPS) c.SetPermissionError(model.PermissionSysconsoleReadUserManagementGroups)
return return
} }
@@ -575,8 +575,8 @@ func getGroupsByUserId(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if c.AppContext.Session().UserId != c.Params.UserId && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if c.AppContext.Session().UserId != c.Params.UserId && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -617,10 +617,10 @@ func getGroupsByChannel(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
var permission *model.Permission var permission *model.Permission
if channel.Type == model.CHANNEL_PRIVATE { if channel.Type == model.ChannelTypePrivate {
permission = model.PERMISSION_READ_PRIVATE_CHANNEL_GROUPS permission = model.PermissionReadPrivateChannelGroups
} else { } else {
permission = model.PERMISSION_READ_PUBLIC_CHANNEL_GROUPS permission = model.PermissionReadPublicChannelGroups
} }
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, permission) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), c.Params.ChannelId, permission) {
c.SetPermissionError(permission) c.SetPermissionError(permission)
@@ -779,10 +779,10 @@ func getGroups(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
var permission *model.Permission var permission *model.Permission
if channel.Type == model.CHANNEL_PRIVATE { if channel.Type == model.ChannelTypePrivate {
permission = model.PERMISSION_MANAGE_PRIVATE_CHANNEL_MEMBERS permission = model.PermissionManagePrivateChannelMembers
} else { } else {
permission = model.PERMISSION_MANAGE_PUBLIC_CHANNEL_MEMBERS permission = model.PermissionManagePublicChannelMembers
} }
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channelID, permission) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channelID, permission) {
c.SetPermissionError(permission) c.SetPermissionError(permission)

Просмотреть файл

@@ -691,7 +691,7 @@ func TestGetGroupsByChannel(t *testing.T) {
th.App.Srv().SetLicense(model.NewTestLicense("ldap")) th.App.Srv().SetLicense(model.NewTestLicense("ldap"))
privateChannel := th.CreateChannelWithClient(th.SystemAdminClient, model.CHANNEL_PRIVATE) privateChannel := th.CreateChannelWithClient(th.SystemAdminClient, model.ChannelTypePrivate)
_, _, response := th.Client.GetGroupsByChannel(privateChannel.Id, opts) _, _, response := th.Client.GetGroupsByChannel(privateChannel.Id, opts)
CheckForbiddenStatus(t, response) CheckForbiddenStatus(t, response)
@@ -980,7 +980,7 @@ func TestGetGroupsByUserId(t *testing.T) {
}) })
assert.Nil(t, err) assert.Nil(t, err)
user1, err := th.App.CreateUser(th.Context, &model.User{Email: th.GenerateTestEmail(), Nickname: "test user1", Password: "test-password-1", Username: "test-user-1", Roles: model.SYSTEM_USER_ROLE_ID}) user1, err := th.App.CreateUser(th.Context, &model.User{Email: th.GenerateTestEmail(), Nickname: "test user1", Password: "test-password-1", Username: "test-user-1", Roles: model.SystemUserRoleId})
assert.Nil(t, err) assert.Nil(t, err)
user1.Password = "test-password-1" user1.Password = "test-password-1"
_, err = th.App.UpsertGroupMember(group1.Id, user1.Id) _, err = th.App.UpsertGroupMember(group1.Id, user1.Id)
@@ -1064,7 +1064,7 @@ func TestGetGroupStats(t *testing.T) {
assert.Equal(t, stats.TotalMemberCount, int64(0)) assert.Equal(t, stats.TotalMemberCount, int64(0))
}) })
user1, err := th.App.CreateUser(th.Context, &model.User{Email: th.GenerateTestEmail(), Nickname: "test user1", Password: "test-password-1", Username: "test-user-1", Roles: model.SYSTEM_USER_ROLE_ID}) user1, err := th.App.CreateUser(th.Context, &model.User{Email: th.GenerateTestEmail(), Nickname: "test user1", Password: "test-password-1", Username: "test-user-1", Roles: model.SystemUserRoleId})
assert.Nil(t, err) assert.Nil(t, err)
_, err = th.App.UpsertGroupMember(group.Id, user1.Id) _, err = th.App.UpsertGroupMember(group.Id, user1.Id)
assert.Nil(t, err) assert.Nil(t, err)
@@ -1102,7 +1102,7 @@ func TestGetGroupsGroupConstrainedParentTeam(t *testing.T) {
channel := &model.Channel{ channel := &model.Channel{
DisplayName: "dn_" + id, DisplayName: "dn_" + id,
Name: "name" + id, Name: "name" + id,
Type: model.CHANNEL_PRIVATE, Type: model.ChannelTypePrivate,
TeamId: team.Id, TeamId: team.Id,
GroupConstrained: model.NewBool(true), GroupConstrained: model.NewBool(true),
} }

Просмотреть файл

@@ -23,7 +23,7 @@ func testAPIHandlerGzipMode(t *testing.T, name string, h http.Handler, token str
t.Run("Handler: "+name+" No Accept-Encoding", func(t *testing.T) { t.Run("Handler: "+name+" No Accept-Encoding", func(t *testing.T) {
resp := httptest.NewRecorder() resp := httptest.NewRecorder()
req := httptest.NewRequest("GET", "/api/v4/test", nil) req := httptest.NewRequest("GET", "/api/v4/test", nil)
req.Header.Set(model.HEADER_AUTH, "Bearer "+token) req.Header.Set(model.HeaderAuth, "Bearer "+token)
h.ServeHTTP(resp, req) h.ServeHTTP(resp, req)
assert.Equal(t, http.StatusOK, resp.Code) assert.Equal(t, http.StatusOK, resp.Code)
assert.Equal(t, "", resp.Header().Get("Content-Encoding")) assert.Equal(t, "", resp.Header().Get("Content-Encoding"))
@@ -33,7 +33,7 @@ func testAPIHandlerGzipMode(t *testing.T, name string, h http.Handler, token str
resp := httptest.NewRecorder() resp := httptest.NewRecorder()
req := httptest.NewRequest("GET", "/api/v4/test", nil) req := httptest.NewRequest("GET", "/api/v4/test", nil)
req.Header.Set("Accept-Encoding", "gzip") req.Header.Set("Accept-Encoding", "gzip")
req.Header.Set(model.HEADER_AUTH, "Bearer "+token) req.Header.Set(model.HeaderAuth, "Bearer "+token)
h.ServeHTTP(resp, req) h.ServeHTTP(resp, req)
assert.Equal(t, http.StatusOK, resp.Code) assert.Equal(t, http.StatusOK, resp.Code)
@@ -45,7 +45,7 @@ func testAPIHandlerNoGzipMode(t *testing.T, name string, h http.Handler, token s
t.Run("Handler: "+name+" No Accept-Encoding", func(t *testing.T) { t.Run("Handler: "+name+" No Accept-Encoding", func(t *testing.T) {
resp := httptest.NewRecorder() resp := httptest.NewRecorder()
req := httptest.NewRequest("GET", "/api/v4/test", nil) req := httptest.NewRequest("GET", "/api/v4/test", nil)
req.Header.Set(model.HEADER_AUTH, "Bearer "+token) req.Header.Set(model.HeaderAuth, "Bearer "+token)
h.ServeHTTP(resp, req) h.ServeHTTP(resp, req)
assert.Equal(t, http.StatusOK, resp.Code) assert.Equal(t, http.StatusOK, resp.Code)
@@ -56,7 +56,7 @@ func testAPIHandlerNoGzipMode(t *testing.T, name string, h http.Handler, token s
resp := httptest.NewRecorder() resp := httptest.NewRecorder()
req := httptest.NewRequest("GET", "/api/v4/test", nil) req := httptest.NewRequest("GET", "/api/v4/test", nil)
req.Header.Set("Accept-Encoding", "gzip") req.Header.Set("Accept-Encoding", "gzip")
req.Header.Set(model.HEADER_AUTH, "Bearer "+token) req.Header.Set(model.HeaderAuth, "Bearer "+token)
h.ServeHTTP(resp, req) h.ServeHTTP(resp, req)
assert.Equal(t, http.StatusOK, resp.Code) assert.Equal(t, http.StatusOK, resp.Code)

Просмотреть файл

@@ -35,7 +35,7 @@ func TestGetImage(t *testing.T) {
r, err := http.NewRequest("GET", th.Client.ApiUrl+"/image?url="+url.QueryEscape(imageURL), nil) r, err := http.NewRequest("GET", th.Client.ApiUrl+"/image?url="+url.QueryEscape(imageURL), nil)
require.NoError(t, err) require.NoError(t, err)
r.Header.Set(model.HEADER_AUTH, th.Client.AuthType+" "+th.Client.AuthToken) r.Header.Set(model.HeaderAuth, th.Client.AuthType+" "+th.Client.AuthToken)
resp, err := th.Client.HttpClient.Do(r) resp, err := th.Client.HttpClient.Do(r)
require.NoError(t, err) require.NoError(t, err)
@@ -56,7 +56,7 @@ func TestGetImage(t *testing.T) {
r, err := http.NewRequest("GET", th.Client.ApiUrl+"/image?url="+url.QueryEscape(imageURL), nil) r, err := http.NewRequest("GET", th.Client.ApiUrl+"/image?url="+url.QueryEscape(imageURL), nil)
require.NoError(t, err) require.NoError(t, err)
r.Header.Set(model.HEADER_AUTH, th.Client.AuthType+" "+th.Client.AuthToken) r.Header.Set(model.HeaderAuth, th.Client.AuthType+" "+th.Client.AuthToken)
resp, err := th.Client.HttpClient.Do(r) resp, err := th.Client.HttpClient.Do(r)
require.NoError(t, err) require.NoError(t, err)
@@ -83,7 +83,7 @@ func TestGetImage(t *testing.T) {
r, err := http.NewRequest("GET", th.Client.ApiUrl+"/image?url="+url.QueryEscape(imageServer.URL+"/image.png"), nil) r, err := http.NewRequest("GET", th.Client.ApiUrl+"/image?url="+url.QueryEscape(imageServer.URL+"/image.png"), nil)
require.NoError(t, err) require.NoError(t, err)
r.Header.Set(model.HEADER_AUTH, th.Client.AuthType+" "+th.Client.AuthToken) r.Header.Set(model.HeaderAuth, th.Client.AuthType+" "+th.Client.AuthToken)
resp, err := th.Client.HttpClient.Do(r) resp, err := th.Client.HttpClient.Do(r)
require.NoError(t, err) require.NoError(t, err)
@@ -96,7 +96,7 @@ func TestGetImage(t *testing.T) {
// local images should not be proxied, but forwarded // local images should not be proxied, but forwarded
r, err = http.NewRequest("GET", th.Client.ApiUrl+"/image?url=/plugins/test/image.png", nil) r, err = http.NewRequest("GET", th.Client.ApiUrl+"/image?url=/plugins/test/image.png", nil)
require.NoError(t, err) require.NoError(t, err)
r.Header.Set(model.HEADER_AUTH, th.Client.AuthType+" "+th.Client.AuthToken) r.Header.Set(model.HeaderAuth, th.Client.AuthType+" "+th.Client.AuthToken)
resp, err = th.Client.HttpClient.Do(r) resp, err = th.Client.HttpClient.Do(r)
require.NoError(t, err) require.NoError(t, err)
@@ -108,7 +108,7 @@ func TestGetImage(t *testing.T) {
}) })
r, err = http.NewRequest("GET", th.Client.ApiUrl+"/image?url="+strings.TrimPrefix(imageServer.URL, "http:")+"/image.png", nil) r, err = http.NewRequest("GET", th.Client.ApiUrl+"/image?url="+strings.TrimPrefix(imageServer.URL, "http:")+"/image.png", nil)
require.NoError(t, err) require.NoError(t, err)
r.Header.Set(model.HEADER_AUTH, th.Client.AuthType+" "+th.Client.AuthToken) r.Header.Set(model.HeaderAuth, th.Client.AuthType+" "+th.Client.AuthToken)
resp, err = th.Client.HttpClient.Do(r) resp, err = th.Client.HttpClient.Do(r)
require.NoError(t, err) require.NoError(t, err)
@@ -117,7 +117,7 @@ func TestGetImage(t *testing.T) {
// opaque URLs are not supported, should return an error // opaque URLs are not supported, should return an error
r, err = http.NewRequest("GET", th.Client.ApiUrl+"/image?url=mailto:test@example.com", nil) r, err = http.NewRequest("GET", th.Client.ApiUrl+"/image?url=mailto:test@example.com", nil)
require.NoError(t, err) require.NoError(t, err)
r.Header.Set(model.HEADER_AUTH, th.Client.AuthType+" "+th.Client.AuthToken) r.Header.Set(model.HeaderAuth, th.Client.AuthType+" "+th.Client.AuthToken)
resp, err = th.Client.HttpClient.Do(r) resp, err = th.Client.HttpClient.Do(r)
require.NoError(t, err) require.NoError(t, err)

Просмотреть файл

@@ -16,7 +16,7 @@ func (api *API) InitImport() {
func listImports(c *Context, w http.ResponseWriter, r *http.Request) { func listImports(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.IsSystemAdmin() { if !c.IsSystemAdmin() {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }

Просмотреть файл

@@ -41,13 +41,13 @@ func doPostAction(c *Context, w http.ResponseWriter, r *http.Request) {
c.Err = model.NewAppError("DoPostAction", "api.post.do_action.action_integration.app_error", nil, "err="+err.Error(), http.StatusBadRequest) c.Err = model.NewAppError("DoPostAction", "api.post.do_action.action_integration.app_error", nil, "err="+err.Error(), http.StatusBadRequest)
return return
} }
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), cookie.ChannelId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), cookie.ChannelId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
} else { } else {
if !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), c.Params.PostId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), c.Params.PostId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
} }
@@ -103,13 +103,13 @@ func submitDialog(c *Context, w http.ResponseWriter, r *http.Request) {
submit.UserId = c.AppContext.Session().UserId submit.UserId = c.AppContext.Session().UserId
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), submit.ChannelId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), submit.ChannelId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), submit.TeamId, model.PERMISSION_VIEW_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), submit.TeamId, model.PermissionViewTeam) {
c.SetPermissionError(model.PERMISSION_VIEW_TEAM) c.SetPermissionError(model.PermissionViewTeam)
return return
} }

Просмотреть файл

@@ -61,7 +61,7 @@ func TestPostActionCookies(t *testing.T) {
Action: model.PostAction{ Action: model.PostAction{
Id: model.NewId(), Id: model.NewId(),
Name: "Test-action", Name: "Test-action",
Type: model.POST_ACTION_TYPE_BUTTON, Type: model.PostActionTypeButton,
Integration: &model.PostActionIntegration{ Integration: &model.PostActionIntegration{
URL: server.URL, URL: server.URL,
Context: map[string]interface{}{ Context: map[string]interface{}{
@@ -76,7 +76,7 @@ func TestPostActionCookies(t *testing.T) {
Action: model.PostAction{ Action: model.PostAction{
Id: "someID", Id: "someID",
Name: "Test-action", Name: "Test-action",
Type: model.POST_ACTION_TYPE_BUTTON, Type: model.PostActionTypeButton,
Integration: &model.PostActionIntegration{ Integration: &model.PostActionIntegration{
URL: server.URL, URL: server.URL,
Context: map[string]interface{}{ Context: map[string]interface{}{
@@ -91,7 +91,7 @@ func TestPostActionCookies(t *testing.T) {
Action: model.PostAction{ Action: model.PostAction{
Id: "", Id: "",
Name: "Test-action", Name: "Test-action",
Type: model.POST_ACTION_TYPE_BUTTON, Type: model.PostActionTypeButton,
Integration: &model.PostActionIntegration{ Integration: &model.PostActionIntegration{
URL: server.URL, URL: server.URL,
Context: map[string]interface{}{ Context: map[string]interface{}{
@@ -106,7 +106,7 @@ func TestPostActionCookies(t *testing.T) {
t.Run(name, func(t *testing.T) { t.Run(name, func(t *testing.T) {
post := &model.Post{ post := &model.Post{
Id: model.NewId(), Id: model.NewId(),
Type: model.POST_EPHEMERAL, Type: model.PostTypeEphemeral,
UserId: th.BasicUser.Id, UserId: th.BasicUser.Id,
ChannelId: th.BasicChannel.Id, ChannelId: th.BasicChannel.Id,
CreateAt: model.GetMillis(), CreateAt: model.GetMillis(),

Просмотреть файл

@@ -71,10 +71,10 @@ func downloadJob(c *Context, w http.ResponseWriter, r *http.Request) {
// Currently, this endpoint only supports downloading the compliance report. // Currently, this endpoint only supports downloading the compliance report.
// If you need to download another job type, you will need to alter this section of the code to accommodate it. // If you need to download another job type, you will need to alter this section of the code to accommodate it.
if job.Type == model.JOB_TYPE_MESSAGE_EXPORT && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_DOWNLOAD_COMPLIANCE_EXPORT_RESULT) { if job.Type == model.JobTypeMessageExport && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionDownloadComplianceExportResult) {
c.SetPermissionError(model.PERMISSION_DOWNLOAD_COMPLIANCE_EXPORT_RESULT) c.SetPermissionError(model.PermissionDownloadComplianceExportResult)
return return
} else if job.Type != model.JOB_TYPE_MESSAGE_EXPORT { } else if job.Type != model.JobTypeMessageExport {
c.Err = model.NewAppError("unableToDownloadJob", "api.job.unable_to_download_job.incorrect_job_type", nil, "", http.StatusBadRequest) c.Err = model.NewAppError("unableToDownloadJob", "api.job.unable_to_download_job.incorrect_job_type", nil, "", http.StatusBadRequest)
return return
} }
@@ -141,7 +141,7 @@ func getJobs(c *Context, w http.ResponseWriter, r *http.Request) {
} }
var validJobTypes []string var validJobTypes []string
for _, jobType := range model.ALL_JOB_TYPES { for _, jobType := range model.AllJobTypes {
hasPermission, permissionRequired := c.App.SessionHasPermissionToReadJob(*c.AppContext.Session(), jobType) hasPermission, permissionRequired := c.App.SessionHasPermissionToReadJob(*c.AppContext.Session(), jobType)
if permissionRequired == nil { if permissionRequired == nil {
mlog.Warn("The job types of a job you are trying to retrieve does not contain permissions", mlog.String("jobType", jobType)) mlog.Warn("The job types of a job you are trying to retrieve does not contain permissions", mlog.String("jobType", jobType))

Просмотреть файл

@@ -19,7 +19,7 @@ func TestCreateJob(t *testing.T) {
defer th.TearDown() defer th.TearDown()
job := &model.Job{ job := &model.Job{
Type: model.JOB_TYPE_MESSAGE_EXPORT, Type: model.JobTypeMessageExport,
Data: map[string]string{ Data: map[string]string{
"thing": "stuff", "thing": "stuff",
}, },
@@ -40,7 +40,7 @@ func TestCreateJob(t *testing.T) {
_, resp = th.SystemAdminClient.CreateJob(job) _, resp = th.SystemAdminClient.CreateJob(job)
CheckBadRequestStatus(t, resp) CheckBadRequestStatus(t, resp)
job.Type = model.JOB_TYPE_ELASTICSEARCH_POST_INDEXING job.Type = model.JobTypeElasticsearchPostIndexing
_, resp = th.Client.CreateJob(job) _, resp = th.Client.CreateJob(job)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
} }
@@ -51,8 +51,8 @@ func TestGetJob(t *testing.T) {
job := &model.Job{ job := &model.Job{
Id: model.NewId(), Id: model.NewId(),
Status: model.JOB_STATUS_PENDING, Status: model.JobStatusPending,
Type: model.JOB_TYPE_MESSAGE_EXPORT, Type: model.JobTypeMessageExport,
} }
_, err := th.App.Srv().Store.Job().Save(job) _, err := th.App.Srv().Store.Job().Save(job)
require.NoError(t, err) require.NoError(t, err)
@@ -79,7 +79,7 @@ func TestGetJobs(t *testing.T) {
th := Setup(t) th := Setup(t)
defer th.TearDown() defer th.TearDown()
jobType := model.JOB_TYPE_DATA_RETENTION jobType := model.JobTypeDataRetention
t0 := model.GetMillis() t0 := model.GetMillis()
jobs := []*model.Job{ jobs := []*model.Job{
@@ -126,7 +126,7 @@ func TestGetJobsByType(t *testing.T) {
th := Setup(t) th := Setup(t)
defer th.TearDown() defer th.TearDown()
jobType := model.JOB_TYPE_DATA_RETENTION jobType := model.JobTypeDataRetention
jobs := []*model.Job{ jobs := []*model.Job{
{ {
@@ -179,7 +179,7 @@ func TestGetJobsByType(t *testing.T) {
_, resp = th.Client.GetJobsByType(jobType, 0, 60) _, resp = th.Client.GetJobsByType(jobType, 0, 60)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
_, resp = th.SystemManagerClient.GetJobsByType(model.JOB_TYPE_ELASTICSEARCH_POST_INDEXING, 0, 60) _, resp = th.SystemManagerClient.GetJobsByType(model.JobTypeElasticsearchPostIndexing, 0, 60)
require.Nil(t, resp.Error) require.Nil(t, resp.Error)
} }
@@ -189,11 +189,11 @@ func TestDownloadJob(t *testing.T) {
jobName := model.NewId() jobName := model.NewId()
job := &model.Job{ job := &model.Job{
Id: jobName, Id: jobName,
Type: model.JOB_TYPE_MESSAGE_EXPORT, Type: model.JobTypeMessageExport,
Data: map[string]string{ Data: map[string]string{
"export_type": "csv", "export_type": "csv",
}, },
Status: model.JOB_STATUS_SUCCESS, Status: model.JobStatusSuccess,
} }
// DownloadExportResults is not set to true so we should get a not implemented error status // DownloadExportResults is not set to true so we should get a not implemented error status
@@ -235,7 +235,7 @@ func TestDownloadJob(t *testing.T) {
CheckBadRequestStatus(t, resp) CheckBadRequestStatus(t, resp)
job.Data["is_downloadable"] = "true" job.Data["is_downloadable"] = "true"
updateStatus, err := th.App.Srv().Store.Job().UpdateOptimistically(job, model.JOB_STATUS_SUCCESS) updateStatus, err := th.App.Srv().Store.Job().UpdateOptimistically(job, model.JobStatusSuccess)
require.True(t, updateStatus) require.True(t, updateStatus)
require.NoError(t, err) require.NoError(t, err)
@@ -256,11 +256,11 @@ func TestDownloadJob(t *testing.T) {
jobName = model.NewId() jobName = model.NewId()
job = &model.Job{ job = &model.Job{
Id: jobName, Id: jobName,
Type: model.JOB_TYPE_CLOUD, Type: model.JobTypeCloud,
Data: map[string]string{ Data: map[string]string{
"export_type": "csv", "export_type": "csv",
}, },
Status: model.JOB_STATUS_SUCCESS, Status: model.JobStatusSuccess,
} }
_, err = th.App.Srv().Store.Job().Save(job) _, err = th.App.Srv().Store.Job().Save(job)
require.NoError(t, err) require.NoError(t, err)
@@ -275,22 +275,22 @@ func TestCancelJob(t *testing.T) {
th := Setup(t) th := Setup(t)
defer th.TearDown() defer th.TearDown()
jobType := model.JOB_TYPE_MESSAGE_EXPORT jobType := model.JobTypeMessageExport
jobs := []*model.Job{ jobs := []*model.Job{
{ {
Id: model.NewId(), Id: model.NewId(),
Type: jobType, Type: jobType,
Status: model.JOB_STATUS_PENDING, Status: model.JobStatusPending,
}, },
{ {
Id: model.NewId(), Id: model.NewId(),
Type: jobType, Type: jobType,
Status: model.JOB_STATUS_IN_PROGRESS, Status: model.JobStatusInProgress,
}, },
{ {
Id: model.NewId(), Id: model.NewId(),
Type: jobType, Type: jobType,
Status: model.JOB_STATUS_SUCCESS, Status: model.JobStatusSuccess,
}, },
} }

Просмотреть файл

@@ -56,8 +56,8 @@ func syncLdap(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec := c.MakeAuditRecord("syncLdap", audit.Fail) auditRec := c.MakeAuditRecord("syncLdap", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_CREATE_LDAP_SYNC_JOB) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionCreateLdapSyncJob) {
c.SetPermissionError(model.PERMISSION_CREATE_LDAP_SYNC_JOB) c.SetPermissionError(model.PermissionCreateLdapSyncJob)
return return
} }
@@ -73,8 +73,8 @@ func testLdap(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_TEST_LDAP) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionTestLdap) {
c.SetPermissionError(model.PERMISSION_TEST_LDAP) c.SetPermissionError(model.PermissionTestLdap)
return return
} }
@@ -87,8 +87,8 @@ func testLdap(c *Context, w http.ResponseWriter, r *http.Request) {
} }
func getLdapGroups(c *Context, w http.ResponseWriter, r *http.Request) { func getLdapGroups(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_GROUPS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadUserManagementGroups) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_GROUPS) c.SetPermissionError(model.PermissionSysconsoleReadUserManagementGroups)
return return
} }
@@ -144,8 +144,8 @@ func linkLdapGroup(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_GROUPS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteUserManagementGroups) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_GROUPS) c.SetPermissionError(model.PermissionSysconsoleWriteUserManagementGroups)
return return
} }
@@ -245,8 +245,8 @@ func unlinkLdapGroup(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("remote_id", c.Params.RemoteId) auditRec.AddMeta("remote_id", c.Params.RemoteId)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_GROUPS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteUserManagementGroups) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_GROUPS) c.SetPermissionError(model.PermissionSysconsoleWriteUserManagementGroups)
return return
} }
@@ -285,8 +285,8 @@ func migrateIdLdap(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec := c.MakeAuditRecord("idMigrateLdap", audit.Fail) auditRec := c.MakeAuditRecord("idMigrateLdap", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -325,8 +325,8 @@ func parseLdapCertificateRequest(r *http.Request, maxFileSize int64) (*multipart
} }
func addLdapPublicCertificate(c *Context, w http.ResponseWriter, r *http.Request) { func addLdapPublicCertificate(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_ADD_LDAP_PUBLIC_CERT) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionAddLdapPublicCert) {
c.SetPermissionError(model.PERMISSION_ADD_LDAP_PUBLIC_CERT) c.SetPermissionError(model.PermissionAddLdapPublicCert)
return return
} }
@@ -349,8 +349,8 @@ func addLdapPublicCertificate(c *Context, w http.ResponseWriter, r *http.Request
} }
func addLdapPrivateCertificate(c *Context, w http.ResponseWriter, r *http.Request) { func addLdapPrivateCertificate(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_ADD_LDAP_PRIVATE_CERT) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionAddLdapPrivateCert) {
c.SetPermissionError(model.PERMISSION_ADD_LDAP_PRIVATE_CERT) c.SetPermissionError(model.PermissionAddLdapPrivateCert)
return return
} }
@@ -373,8 +373,8 @@ func addLdapPrivateCertificate(c *Context, w http.ResponseWriter, r *http.Reques
} }
func removeLdapPublicCertificate(c *Context, w http.ResponseWriter, r *http.Request) { func removeLdapPublicCertificate(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_REMOVE_LDAP_PUBLIC_CERT) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionRemoveLdapPublicCert) {
c.SetPermissionError(model.PERMISSION_REMOVE_LDAP_PUBLIC_CERT) c.SetPermissionError(model.PermissionRemoveLdapPublicCert)
return return
} }
@@ -391,8 +391,8 @@ func removeLdapPublicCertificate(c *Context, w http.ResponseWriter, r *http.Requ
} }
func removeLdapPrivateCertificate(c *Context, w http.ResponseWriter, r *http.Request) { func removeLdapPrivateCertificate(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_REMOVE_LDAP_PRIVATE_CERT) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionRemoveLdapPrivateCert) {
c.SetPermissionError(model.PERMISSION_REMOVE_LDAP_PRIVATE_CERT) c.SetPermissionError(model.PermissionRemoveLdapPrivateCert)
return return
} }

Просмотреть файл

@@ -41,7 +41,7 @@ func getClientLicense(c *Context, w http.ResponseWriter, r *http.Request) {
var clientLicense map[string]string var clientLicense map[string]string
if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_READ_LICENSE_INFORMATION) { if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionReadLicenseInformation) {
clientLicense = c.App.Srv().ClientLicense() clientLicense = c.App.Srv().ClientLicense()
} else { } else {
clientLicense = c.App.Srv().GetSanitizedClientLicense() clientLicense = c.App.Srv().GetSanitizedClientLicense()
@@ -55,8 +55,8 @@ func addLicense(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
c.LogAudit("attempt") c.LogAudit("attempt")
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_LICENSE_INFORMATION) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageLicenseInformation) {
c.SetPermissionError(model.PERMISSION_MANAGE_LICENSE_INFORMATION) c.SetPermissionError(model.PermissionManageLicenseInformation)
return return
} }
@@ -120,9 +120,9 @@ func addLicense(c *Context, w http.ResponseWriter, r *http.Request) {
license, appErr = c.App.Srv().SaveLicense(licenseBytes) license, appErr = c.App.Srv().SaveLicense(licenseBytes)
if appErr != nil { if appErr != nil {
if appErr.Id == model.EXPIRED_LICENSE_ERROR { if appErr.Id == model.ExpiredLicenseError {
c.LogAudit("failed - expired or non-started license") c.LogAudit("failed - expired or non-started license")
} else if appErr.Id == model.INVALID_LICENSE_ERROR { } else if appErr.Id == model.InvalidLicenseError {
c.LogAudit("failed - invalid license") c.LogAudit("failed - invalid license")
} else { } else {
c.LogAudit("failed - unable to save license") c.LogAudit("failed - unable to save license")
@@ -142,8 +142,8 @@ func removeLicense(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
c.LogAudit("attempt") c.LogAudit("attempt")
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_LICENSE_INFORMATION) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageLicenseInformation) {
c.SetPermissionError(model.PERMISSION_MANAGE_LICENSE_INFORMATION) c.SetPermissionError(model.PermissionManageLicenseInformation)
return return
} }
@@ -168,8 +168,8 @@ func requestTrialLicense(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
c.LogAudit("attempt") c.LogAudit("attempt")
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_LICENSE_INFORMATION) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageLicenseInformation) {
c.SetPermissionError(model.PERMISSION_MANAGE_LICENSE_INFORMATION) c.SetPermissionError(model.PermissionManageLicenseInformation)
return return
} }
@@ -218,7 +218,7 @@ func requestTrialLicense(c *Context, w http.ResponseWriter, r *http.Request) {
trialLicenseRequest := &model.TrialLicenseRequest{ trialLicenseRequest := &model.TrialLicenseRequest{
ServerID: c.App.TelemetryId(), ServerID: c.App.TelemetryId(),
Name: currentUser.GetDisplayName(model.SHOW_FULLNAME), Name: currentUser.GetDisplayName(model.ShowFullName),
Email: currentUser.Email, Email: currentUser.Email,
SiteName: *c.App.Config().TeamSettings.SiteName, SiteName: *c.App.Config().TeamSettings.SiteName,
SiteURL: *c.App.Config().ServiceSettings.SiteURL, SiteURL: *c.App.Config().ServiceSettings.SiteURL,
@@ -248,8 +248,8 @@ func requestRenewalLink(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
c.LogAudit("attempt") c.LogAudit("attempt")
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_LICENSE_INFORMATION) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageLicenseInformation) {
c.SetPermissionError(model.PERMISSION_MANAGE_LICENSE_INFORMATION) c.SetPermissionError(model.PermissionManageLicenseInformation)
return return
} }
@@ -283,7 +283,7 @@ func getPrevTrialLicense(c *Context, w http.ResponseWriter, r *http.Request) {
var clientLicense map[string]string var clientLicense map[string]string
if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_READ_LICENSE_INFORMATION) { if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionReadLicenseInformation) {
clientLicense = utils.GetClientLicense(license) clientLicense = utils.GetClientLicense(license)
} else { } else {
clientLicense = utils.GetSanitizedClientLicense(utils.GetClientLicense(license)) clientLicense = utils.GetSanitizedClientLicense(utils.GetClientLicense(license))

Просмотреть файл

@@ -56,9 +56,9 @@ func localAddLicense(c *Context, w http.ResponseWriter, r *http.Request) {
license, appErr := c.App.Srv().SaveLicense(buf.Bytes()) license, appErr := c.App.Srv().SaveLicense(buf.Bytes())
if appErr != nil { if appErr != nil {
if appErr.Id == model.EXPIRED_LICENSE_ERROR { if appErr.Id == model.ExpiredLicenseError {
c.LogAudit("failed - expired or non-started license") c.LogAudit("failed - expired or non-started license")
} else if appErr.Id == model.INVALID_LICENSE_ERROR { } else if appErr.Id == model.InvalidLicenseError {
c.LogAudit("failed - invalid license") c.LogAudit("failed - invalid license")
} else { } else {
c.LogAudit("failed - unable to save license") c.LogAudit("failed - unable to save license")

Просмотреть файл

@@ -33,12 +33,12 @@ func createOAuthApp(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec := c.MakeAuditRecord("createOAuthApp", audit.Fail) auditRec := c.MakeAuditRecord("createOAuthApp", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_OAUTH) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageOAuth) {
c.SetPermissionError(model.PERMISSION_MANAGE_OAUTH) c.SetPermissionError(model.PermissionManageOAuth)
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
oauthApp.IsTrusted = false oauthApp.IsTrusted = false
} }
@@ -69,8 +69,8 @@ func updateOAuthApp(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("oauth_app_id", c.Params.AppId) auditRec.AddMeta("oauth_app_id", c.Params.AppId)
c.LogAudit("attempt") c.LogAudit("attempt")
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_OAUTH) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageOAuth) {
c.SetPermissionError(model.PERMISSION_MANAGE_OAUTH) c.SetPermissionError(model.PermissionManageOAuth)
return return
} }
@@ -86,49 +86,49 @@ func updateOAuthApp(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
oldOauthApp, err := c.App.GetOAuthApp(c.Params.AppId) oldOAuthApp, err := c.App.GetOAuthApp(c.Params.AppId)
if err != nil { if err != nil {
c.Err = err c.Err = err
return return
} }
auditRec.AddMeta("oauth_app", oldOauthApp) auditRec.AddMeta("oauth_app", oldOAuthApp)
if c.AppContext.Session().UserId != oldOauthApp.CreatorId && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM_WIDE_OAUTH) { if c.AppContext.Session().UserId != oldOAuthApp.CreatorId && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystemWideOAuth) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM_WIDE_OAUTH) c.SetPermissionError(model.PermissionManageSystemWideOAuth)
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
oauthApp.IsTrusted = oldOauthApp.IsTrusted oauthApp.IsTrusted = oldOAuthApp.IsTrusted
} }
updatedOauthApp, err := c.App.UpdateOauthApp(oldOauthApp, oauthApp) updatedOAuthApp, err := c.App.UpdateOAuthApp(oldOAuthApp, oauthApp)
if err != nil { if err != nil {
c.Err = err c.Err = err
return return
} }
auditRec.Success() auditRec.Success()
auditRec.AddMeta("update", updatedOauthApp) auditRec.AddMeta("update", updatedOAuthApp)
c.LogAudit("success") c.LogAudit("success")
w.Write([]byte(updatedOauthApp.ToJson())) w.Write([]byte(updatedOAuthApp.ToJson()))
} }
func getOAuthApps(c *Context, w http.ResponseWriter, r *http.Request) { func getOAuthApps(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_OAUTH) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageOAuth) {
c.Err = model.NewAppError("getOAuthApps", "api.command.admin_only.app_error", nil, "", http.StatusForbidden) c.Err = model.NewAppError("getOAuthApps", "api.command.admin_only.app_error", nil, "", http.StatusForbidden)
return return
} }
var apps []*model.OAuthApp var apps []*model.OAuthApp
var err *model.AppError var err *model.AppError
if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM_WIDE_OAUTH) { if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystemWideOAuth) {
apps, err = c.App.GetOAuthApps(c.Params.Page, c.Params.PerPage) apps, err = c.App.GetOAuthApps(c.Params.Page, c.Params.PerPage)
} else if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_OAUTH) { } else if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageOAuth) {
apps, err = c.App.GetOAuthAppsByCreator(c.AppContext.Session().UserId, c.Params.Page, c.Params.PerPage) apps, err = c.App.GetOAuthAppsByCreator(c.AppContext.Session().UserId, c.Params.Page, c.Params.PerPage)
} else { } else {
c.SetPermissionError(model.PERMISSION_MANAGE_OAUTH) c.SetPermissionError(model.PermissionManageOAuth)
return return
} }
@@ -146,8 +146,8 @@ func getOAuthApp(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_OAUTH) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageOAuth) {
c.SetPermissionError(model.PERMISSION_MANAGE_OAUTH) c.SetPermissionError(model.PermissionManageOAuth)
return return
} }
@@ -157,8 +157,8 @@ func getOAuthApp(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if oauthApp.CreatorId != c.AppContext.Session().UserId && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM_WIDE_OAUTH) { if oauthApp.CreatorId != c.AppContext.Session().UserId && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystemWideOAuth) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM_WIDE_OAUTH) c.SetPermissionError(model.PermissionManageSystemWideOAuth)
return return
} }
@@ -192,8 +192,8 @@ func deleteOAuthApp(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("oauth_app_id", c.Params.AppId) auditRec.AddMeta("oauth_app_id", c.Params.AppId)
c.LogAudit("attempt") c.LogAudit("attempt")
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_OAUTH) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageOAuth) {
c.SetPermissionError(model.PERMISSION_MANAGE_OAUTH) c.SetPermissionError(model.PermissionManageOAuth)
return return
} }
@@ -204,8 +204,8 @@ func deleteOAuthApp(c *Context, w http.ResponseWriter, r *http.Request) {
} }
auditRec.AddMeta("oauth_app", oauthApp) auditRec.AddMeta("oauth_app", oauthApp)
if c.AppContext.Session().UserId != oauthApp.CreatorId && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM_WIDE_OAUTH) { if c.AppContext.Session().UserId != oauthApp.CreatorId && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystemWideOAuth) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM_WIDE_OAUTH) c.SetPermissionError(model.PermissionManageSystemWideOAuth)
return return
} }
@@ -231,8 +231,8 @@ func regenerateOAuthAppSecret(c *Context, w http.ResponseWriter, r *http.Request
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("oauth_app_id", c.Params.AppId) auditRec.AddMeta("oauth_app_id", c.Params.AppId)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_OAUTH) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageOAuth) {
c.SetPermissionError(model.PERMISSION_MANAGE_OAUTH) c.SetPermissionError(model.PermissionManageOAuth)
return return
} }
@@ -243,8 +243,8 @@ func regenerateOAuthAppSecret(c *Context, w http.ResponseWriter, r *http.Request
} }
auditRec.AddMeta("oauth_app", oauthApp) auditRec.AddMeta("oauth_app", oauthApp)
if oauthApp.CreatorId != c.AppContext.Session().UserId && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM_WIDE_OAUTH) { if oauthApp.CreatorId != c.AppContext.Session().UserId && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystemWideOAuth) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM_WIDE_OAUTH) c.SetPermissionError(model.PermissionManageSystemWideOAuth)
return return
} }
@@ -267,7 +267,7 @@ func getAuthorizedOAuthApps(c *Context, w http.ResponseWriter, r *http.Request)
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }

Просмотреть файл

@@ -28,7 +28,7 @@ func TestCreateOAuthApp(t *testing.T) {
}() }()
// Grant permission to regular users. // Grant permission to regular users.
th.AddPermissionToRole(model.PERMISSION_MANAGE_OAUTH.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOAuth.Id, model.SystemUserRoleId)
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOAuthServiceProvider = true }) th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOAuthServiceProvider = true })
@@ -41,12 +41,12 @@ func TestCreateOAuthApp(t *testing.T) {
assert.Equal(t, oapp.IsTrusted, rapp.IsTrusted, "trusted did no match") assert.Equal(t, oapp.IsTrusted, rapp.IsTrusted, "trusted did no match")
// Revoke permission from regular users. // Revoke permission from regular users.
th.RemovePermissionFromRole(model.PERMISSION_MANAGE_OAUTH.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionManageOAuth.Id, model.SystemUserRoleId)
_, resp = Client.CreateOAuthApp(oapp) _, resp = Client.CreateOAuthApp(oapp)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
// Grant permission to regular users. // Grant permission to regular users.
th.AddPermissionToRole(model.PERMISSION_MANAGE_OAUTH.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOAuth.Id, model.SystemUserRoleId)
rapp, resp = Client.CreateOAuthApp(oapp) rapp, resp = Client.CreateOAuthApp(oapp)
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -86,7 +86,7 @@ func TestUpdateOAuthApp(t *testing.T) {
}() }()
// Grant permission to regular users. // Grant permission to regular users.
th.AddPermissionToRole(model.PERMISSION_MANAGE_OAUTH.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOAuth.Id, model.SystemUserRoleId)
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOAuthServiceProvider = true }) th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOAuthServiceProvider = true })
oapp := &model.OAuthApp{ oapp := &model.OAuthApp{
@@ -134,7 +134,7 @@ func TestUpdateOAuthApp(t *testing.T) {
th.LoginBasic() th.LoginBasic()
// Revoke permission from regular users. // Revoke permission from regular users.
th.RemovePermissionFromRole(model.PERMISSION_MANAGE_OAUTH.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionManageOAuth.Id, model.SystemUserRoleId)
_, resp = Client.UpdateOAuthApp(oapp) _, resp = Client.UpdateOAuthApp(oapp)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
@@ -157,7 +157,7 @@ func TestUpdateOAuthApp(t *testing.T) {
CheckBadRequestStatus(t, resp) CheckBadRequestStatus(t, resp)
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOAuthServiceProvider = true }) th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOAuthServiceProvider = true })
th.AddPermissionToRole(model.PERMISSION_MANAGE_OAUTH.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOAuth.Id, model.SystemUserRoleId)
th.LoginBasic() th.LoginBasic()
userOapp := &model.OAuthApp{ userOapp := &model.OAuthApp{
@@ -202,7 +202,7 @@ func TestGetOAuthApps(t *testing.T) {
}() }()
// Grant permission to regular users. // Grant permission to regular users.
th.AddPermissionToRole(model.PERMISSION_MANAGE_OAUTH.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOAuth.Id, model.SystemUserRoleId)
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOAuthServiceProvider = true }) th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOAuthServiceProvider = true })
oapp := &model.OAuthApp{Name: GenerateTestAppName(), Homepage: "https://nowhere.com", Description: "test", CallbackUrls: []string{"https://nowhere.com"}} oapp := &model.OAuthApp{Name: GenerateTestAppName(), Homepage: "https://nowhere.com", Description: "test", CallbackUrls: []string{"https://nowhere.com"}}
@@ -239,7 +239,7 @@ func TestGetOAuthApps(t *testing.T) {
require.True(t, len(apps) == 1 || apps[0].Id == rapp2.Id, "wrong apps returned") require.True(t, len(apps) == 1 || apps[0].Id == rapp2.Id, "wrong apps returned")
// Revoke permission from regular users. // Revoke permission from regular users.
th.RemovePermissionFromRole(model.PERMISSION_MANAGE_OAUTH.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionManageOAuth.Id, model.SystemUserRoleId)
_, resp = Client.GetOAuthApps(0, 1000) _, resp = Client.GetOAuthApps(0, 1000)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
@@ -268,7 +268,7 @@ func TestGetOAuthApp(t *testing.T) {
}() }()
// Grant permission to regular users. // Grant permission to regular users.
th.AddPermissionToRole(model.PERMISSION_MANAGE_OAUTH.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOAuth.Id, model.SystemUserRoleId)
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOAuthServiceProvider = true }) th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOAuthServiceProvider = true })
oapp := &model.OAuthApp{Name: GenerateTestAppName(), Homepage: "https://nowhere.com", Description: "test", CallbackUrls: []string{"https://nowhere.com"}} oapp := &model.OAuthApp{Name: GenerateTestAppName(), Homepage: "https://nowhere.com", Description: "test", CallbackUrls: []string{"https://nowhere.com"}}
@@ -297,7 +297,7 @@ func TestGetOAuthApp(t *testing.T) {
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
// Revoke permission from regular users. // Revoke permission from regular users.
th.RemovePermissionFromRole(model.PERMISSION_MANAGE_OAUTH.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionManageOAuth.Id, model.SystemUserRoleId)
_, resp = Client.GetOAuthApp(rapp2.Id) _, resp = Client.GetOAuthApp(rapp2.Id)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
@@ -332,7 +332,7 @@ func TestGetOAuthAppInfo(t *testing.T) {
}() }()
// Grant permission to regular users. // Grant permission to regular users.
th.AddPermissionToRole(model.PERMISSION_MANAGE_OAUTH.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOAuth.Id, model.SystemUserRoleId)
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOAuthServiceProvider = true }) th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOAuthServiceProvider = true })
oapp := &model.OAuthApp{Name: GenerateTestAppName(), Homepage: "https://nowhere.com", Description: "test", CallbackUrls: []string{"https://nowhere.com"}} oapp := &model.OAuthApp{Name: GenerateTestAppName(), Homepage: "https://nowhere.com", Description: "test", CallbackUrls: []string{"https://nowhere.com"}}
@@ -361,7 +361,7 @@ func TestGetOAuthAppInfo(t *testing.T) {
CheckNoError(t, resp) CheckNoError(t, resp)
// Revoke permission from regular users. // Revoke permission from regular users.
th.RemovePermissionFromRole(model.PERMISSION_MANAGE_OAUTH.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionManageOAuth.Id, model.SystemUserRoleId)
_, resp = Client.GetOAuthAppInfo(rapp2.Id) _, resp = Client.GetOAuthAppInfo(rapp2.Id)
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -396,7 +396,7 @@ func TestDeleteOAuthApp(t *testing.T) {
}() }()
// Grant permission to regular users. // Grant permission to regular users.
th.AddPermissionToRole(model.PERMISSION_MANAGE_OAUTH.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOAuth.Id, model.SystemUserRoleId)
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOAuthServiceProvider = true }) th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOAuthServiceProvider = true })
oapp := &model.OAuthApp{Name: GenerateTestAppName(), Homepage: "https://nowhere.com", Description: "test", CallbackUrls: []string{"https://nowhere.com"}} oapp := &model.OAuthApp{Name: GenerateTestAppName(), Homepage: "https://nowhere.com", Description: "test", CallbackUrls: []string{"https://nowhere.com"}}
@@ -429,7 +429,7 @@ func TestDeleteOAuthApp(t *testing.T) {
CheckNoError(t, resp) CheckNoError(t, resp)
// Revoke permission from regular users. // Revoke permission from regular users.
th.RemovePermissionFromRole(model.PERMISSION_MANAGE_OAUTH.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionManageOAuth.Id, model.SystemUserRoleId)
_, resp = Client.DeleteOAuthApp(rapp.Id) _, resp = Client.DeleteOAuthApp(rapp.Id)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
@@ -463,7 +463,7 @@ func TestRegenerateOAuthAppSecret(t *testing.T) {
}() }()
// Grant permission to regular users. // Grant permission to regular users.
th.AddPermissionToRole(model.PERMISSION_MANAGE_OAUTH.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOAuth.Id, model.SystemUserRoleId)
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOAuthServiceProvider = true }) th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOAuthServiceProvider = true })
oapp := &model.OAuthApp{Name: GenerateTestAppName(), Homepage: "https://nowhere.com", Description: "test", CallbackUrls: []string{"https://nowhere.com"}} oapp := &model.OAuthApp{Name: GenerateTestAppName(), Homepage: "https://nowhere.com", Description: "test", CallbackUrls: []string{"https://nowhere.com"}}
@@ -497,7 +497,7 @@ func TestRegenerateOAuthAppSecret(t *testing.T) {
CheckNoError(t, resp) CheckNoError(t, resp)
// Revoke permission from regular users. // Revoke permission from regular users.
th.RemovePermissionFromRole(model.PERMISSION_MANAGE_OAUTH.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionManageOAuth.Id, model.SystemUserRoleId)
_, resp = Client.RegenerateOAuthAppSecret(rapp.Id) _, resp = Client.RegenerateOAuthAppSecret(rapp.Id)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
@@ -535,7 +535,7 @@ func TestGetAuthorizedOAuthAppsForUser(t *testing.T) {
CheckNoError(t, resp) CheckNoError(t, resp)
authRequest := &model.AuthorizeRequest{ authRequest := &model.AuthorizeRequest{
ResponseType: model.AUTHCODE_RESPONSE_TYPE, ResponseType: model.AuthCodeResponseType,
ClientId: rapp.Id, ClientId: rapp.Id,
RedirectUri: rapp.CallbackUrls[0], RedirectUri: rapp.CallbackUrls[0],
Scope: "", Scope: "",

Просмотреть файл

@@ -18,8 +18,8 @@ func TestGetAncillaryPermissions(t *testing.T) {
var subsectionPermissions []string var subsectionPermissions []string
var expectedAncillaryPermissions []string var expectedAncillaryPermissions []string
t.Run("Valid Case, Passing in SubSection Permissions", func(t *testing.T) { t.Run("Valid Case, Passing in SubSection Permissions", func(t *testing.T) {
subsectionPermissions = []string{model.PERMISSION_SYSCONSOLE_READ_REPORTING_SITE_STATISTICS.Id} subsectionPermissions = []string{model.PermissionSysconsoleReadReportingSiteStatistics.Id}
expectedAncillaryPermissions = []string{model.PERMISSION_GET_ANALYTICS.Id} expectedAncillaryPermissions = []string{model.PermissionGetAnalytics.Id}
actualAncillaryPermissions, resp := th.Client.GetAncillaryPermissions(subsectionPermissions) actualAncillaryPermissions, resp := th.Client.GetAncillaryPermissions(subsectionPermissions)
CheckNoError(t, resp) CheckNoError(t, resp)
assert.Equal(t, append(subsectionPermissions, expectedAncillaryPermissions...), actualAncillaryPermissions) assert.Equal(t, append(subsectionPermissions, expectedAncillaryPermissions...), actualAncillaryPermissions)

Просмотреть файл

@@ -55,8 +55,8 @@ func uploadPlugin(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec := c.MakeAuditRecord("uploadPlugin", audit.Fail) auditRec := c.MakeAuditRecord("uploadPlugin", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_PLUGINS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWritePlugins) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_PLUGINS) c.SetPermissionError(model.PermissionSysconsoleWritePlugins)
return return
} }
@@ -106,8 +106,8 @@ func installPluginFromUrl(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec := c.MakeAuditRecord("installPluginFromUrl", audit.Fail) auditRec := c.MakeAuditRecord("installPluginFromUrl", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_PLUGINS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWritePlugins) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_PLUGINS) c.SetPermissionError(model.PermissionSysconsoleWritePlugins)
return return
} }
@@ -139,8 +139,8 @@ func installMarketplacePlugin(c *Context, w http.ResponseWriter, r *http.Request
auditRec := c.MakeAuditRecord("installMarketplacePlugin", audit.Fail) auditRec := c.MakeAuditRecord("installMarketplacePlugin", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_PLUGINS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWritePlugins) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_PLUGINS) c.SetPermissionError(model.PermissionSysconsoleWritePlugins)
return return
} }
@@ -171,8 +171,8 @@ func getPlugins(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_PLUGINS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadPlugins) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_PLUGINS) c.SetPermissionError(model.PermissionSysconsoleReadPlugins)
return return
} }
@@ -191,8 +191,8 @@ func getPluginStatuses(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_PLUGINS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadPlugins) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_PLUGINS) c.SetPermissionError(model.PermissionSysconsoleReadPlugins)
return return
} }
@@ -220,8 +220,8 @@ func removePlugin(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("plugin_id", c.Params.PluginId) auditRec.AddMeta("plugin_id", c.Params.PluginId)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_PLUGINS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWritePlugins) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_PLUGINS) c.SetPermissionError(model.PermissionSysconsoleWritePlugins)
return return
} }
@@ -272,8 +272,8 @@ func getMarketplacePlugins(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_PLUGINS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadPlugins) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_PLUGINS) c.SetPermissionError(model.PermissionSysconsoleReadPlugins)
return return
} }
@@ -313,8 +313,8 @@ func enablePlugin(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("plugin_id", c.Params.PluginId) auditRec.AddMeta("plugin_id", c.Params.PluginId)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_PLUGINS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWritePlugins) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_PLUGINS) c.SetPermissionError(model.PermissionSysconsoleWritePlugins)
return return
} }
@@ -342,8 +342,8 @@ func disablePlugin(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("plugin_id", c.Params.PluginId) auditRec.AddMeta("plugin_id", c.Params.PluginId)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_PLUGINS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWritePlugins) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_PLUGINS) c.SetPermissionError(model.PermissionSysconsoleWritePlugins)
return return
} }
@@ -394,13 +394,13 @@ func setFirstAdminVisitMarketplaceStatus(c *Context, w http.ResponseWriter, r *h
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
c.LogAudit("attempt") c.LogAudit("attempt")
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
firstAdminVisitMarketplaceObj := model.System{ firstAdminVisitMarketplaceObj := model.System{
Name: model.SYSTEM_FIRST_ADMIN_VISIT_MARKETPLACE, Name: model.SystemFirstAdminVisitMarketplace,
Value: "true", Value: "true",
} }
@@ -409,7 +409,7 @@ func setFirstAdminVisitMarketplaceStatus(c *Context, w http.ResponseWriter, r *h
return return
} }
message := model.NewWebSocketEvent(model.WEBSOCKET_FIRST_ADMIN_VISIT_MARKETPLACE_STATUS_RECEIVED, "", "", "", nil) message := model.NewWebSocketEvent(model.WebsocketFirstAdminVisitMarketplaceStatusReceived, "", "", "", nil)
message.Add("firstAdminVisitMarketplaceStatus", firstAdminVisitMarketplaceObj.Value) message.Add("firstAdminVisitMarketplaceStatus", firstAdminVisitMarketplaceObj.Value)
c.App.Publish(message) c.App.Publish(message)
@@ -422,18 +422,18 @@ func getFirstAdminVisitMarketplaceStatus(c *Context, w http.ResponseWriter, r *h
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
c.LogAudit("attempt") c.LogAudit("attempt")
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
firstAdminVisitMarketplaceObj, err := c.App.Srv().Store.System().GetByName(model.SYSTEM_FIRST_ADMIN_VISIT_MARKETPLACE) firstAdminVisitMarketplaceObj, err := c.App.Srv().Store.System().GetByName(model.SystemFirstAdminVisitMarketplace)
if err != nil { if err != nil {
var nfErr *store.ErrNotFound var nfErr *store.ErrNotFound
switch { switch {
case errors.As(err, &nfErr): case errors.As(err, &nfErr):
firstAdminVisitMarketplaceObj = &model.System{ firstAdminVisitMarketplaceObj = &model.System{
Name: model.SYSTEM_FIRST_ADMIN_VISIT_MARKETPLACE, Name: model.SystemFirstAdminVisitMarketplace,
Value: "false", Value: "false",
} }
default: default:

Просмотреть файл

@@ -305,12 +305,12 @@ func TestNotifyClusterPluginEvent(t *testing.T) {
Id: manifest.Id, Id: manifest.Id,
} }
expectedInstallMessage := &model.ClusterMessage{ expectedInstallMessage := &model.ClusterMessage{
Event: model.CLUSTER_EVENT_INSTALL_PLUGIN, Event: model.ClusterEventInstallPlugin,
SendType: model.CLUSTER_SEND_RELIABLE, SendType: model.ClusterSendReliable,
WaitForAllToSend: true, WaitForAllToSend: true,
Data: expectedPluginData.ToJson(), Data: expectedPluginData.ToJson(),
} }
actualMessages := findClusterMessages(model.CLUSTER_EVENT_INSTALL_PLUGIN, messages) actualMessages := findClusterMessages(model.ClusterEventInstallPlugin, messages)
require.Equal(t, []*model.ClusterMessage{expectedInstallMessage}, actualMessages) require.Equal(t, []*model.ClusterMessage{expectedInstallMessage}, actualMessages)
// Upgrade // Upgrade
@@ -329,7 +329,7 @@ func TestNotifyClusterPluginEvent(t *testing.T) {
for { for {
select { select {
case resp := <-webSocketClient.EventChannel: case resp := <-webSocketClient.EventChannel:
if resp.EventType() == model.WEBSOCKET_EVENT_PLUGIN_STATUSES_CHANGED && len(resp.GetData()["plugin_statuses"].([]interface{})) == 0 { if resp.EventType() == model.WebsocketEventPluginStatusesChanged && len(resp.GetData()["plugin_statuses"].([]interface{})) == 0 {
done <- true done <- true
return return
} }
@@ -351,12 +351,12 @@ func TestNotifyClusterPluginEvent(t *testing.T) {
messages = testCluster.GetMessages() messages = testCluster.GetMessages()
expectedRemoveMessage := &model.ClusterMessage{ expectedRemoveMessage := &model.ClusterMessage{
Event: model.CLUSTER_EVENT_REMOVE_PLUGIN, Event: model.ClusterEventRemovePlugin,
SendType: model.CLUSTER_SEND_RELIABLE, SendType: model.ClusterSendReliable,
WaitForAllToSend: true, WaitForAllToSend: true,
Data: expectedPluginData.ToJson(), Data: expectedPluginData.ToJson(),
} }
actualMessages = findClusterMessages(model.CLUSTER_EVENT_REMOVE_PLUGIN, messages) actualMessages = findClusterMessages(model.ClusterEventRemovePlugin, messages)
require.Equal(t, []*model.ClusterMessage{expectedRemoveMessage}, actualMessages) require.Equal(t, []*model.ClusterMessage{expectedRemoveMessage}, actualMessages)
pluginStored, appErr = th.App.FileExists(expectedPath) pluginStored, appErr = th.App.FileExists(expectedPath)

Просмотреть файл

@@ -49,21 +49,21 @@ func createPost(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("post", post) auditRec.AddMeta("post", post)
hasPermission := false hasPermission := false
if c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), post.ChannelId, model.PERMISSION_CREATE_POST) { if c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), post.ChannelId, model.PermissionCreatePost) {
hasPermission = true hasPermission = true
} else if channel, err := c.App.GetChannel(post.ChannelId); err == nil { } else if channel, err := c.App.GetChannel(post.ChannelId); err == nil {
// Temporary permission check method until advanced permissions, please do not copy // Temporary permission check method until advanced permissions, please do not copy
if channel.Type == model.CHANNEL_OPEN && c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PERMISSION_CREATE_POST_PUBLIC) { if channel.Type == model.ChannelTypeOpen && c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PermissionCreatePostPublic) {
hasPermission = true hasPermission = true
} }
} }
if !hasPermission { if !hasPermission {
c.SetPermissionError(model.PERMISSION_CREATE_POST) c.SetPermissionError(model.PermissionCreatePost)
return return
} }
if post.CreateAt != 0 && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if post.CreateAt != 0 && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
post.CreateAt = 0 post.CreateAt = 0
} }
@@ -116,8 +116,8 @@ func createEphemeralPost(c *Context, w http.ResponseWriter, r *http.Request) {
ephRequest.Post.UserId = c.AppContext.Session().UserId ephRequest.Post.UserId = c.AppContext.Session().UserId
ephRequest.Post.CreateAt = model.GetMillis() ephRequest.Post.CreateAt = model.GetMillis()
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_CREATE_POST_EPHEMERAL) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionCreatePostEphemeral) {
c.SetPermissionError(model.PERMISSION_CREATE_POST_EPHEMERAL) c.SetPermissionError(model.PermissionCreatePostEphemeral)
return return
} }
@@ -164,8 +164,8 @@ func getPostsForChannel(c *Context, w http.ResponseWriter, r *http.Request) {
page := c.Params.Page page := c.Params.Page
perPage := c.Params.PerPage perPage := c.Params.PerPage
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channelId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channelId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
@@ -207,7 +207,7 @@ func getPostsForChannel(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if etag != "" { if etag != "" {
w.Header().Set(model.HEADER_ETAG_SERVER, etag) w.Header().Set(model.HeaderEtagServer, etag)
} }
c.App.AddCursorIdsForPostList(list, afterPost, beforePost, since, page, perPage, collapsedThreads) c.App.AddCursorIdsForPostList(list, afterPost, beforePost, since, page, perPage, collapsedThreads)
@@ -224,13 +224,13 @@ func getPostsForChannelAroundLastUnread(c *Context, w http.ResponseWriter, r *ht
userId := c.Params.UserId userId := c.Params.UserId
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), userId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), userId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
channelId := c.Params.ChannelId channelId := c.Params.ChannelId
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channelId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channelId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
@@ -270,7 +270,7 @@ func getPostsForChannelAroundLastUnread(c *Context, w http.ResponseWriter, r *ht
clientPostList := c.App.PreparePostListForClient(postList) clientPostList := c.App.PreparePostListForClient(postList)
if etag != "" { if etag != "" {
w.Header().Set(model.HEADER_ETAG_SERVER, etag) w.Header().Set(model.HeaderEtagServer, etag)
} }
w.Write([]byte(clientPostList.ToJson())) w.Write([]byte(clientPostList.ToJson()))
} }
@@ -282,7 +282,7 @@ func getFlaggedPostsForUser(c *Context, w http.ResponseWriter, r *http.Request)
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -313,7 +313,7 @@ func getFlaggedPostsForUser(c *Context, w http.ResponseWriter, r *http.Request)
if !ok { if !ok {
allowed = false allowed = false
if c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), post.ChannelId, model.PERMISSION_READ_CHANNEL) { if c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), post.ChannelId, model.PermissionReadChannel) {
allowed = true allowed = true
} }
@@ -350,14 +350,14 @@ func getPost(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PermissionReadChannel) {
if channel.Type == model.CHANNEL_OPEN { if channel.Type == model.ChannelTypeOpen {
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PERMISSION_READ_PUBLIC_CHANNEL) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PermissionReadPublicChannel) {
c.SetPermissionError(model.PERMISSION_READ_PUBLIC_CHANNEL) c.SetPermissionError(model.PermissionReadPublicChannel)
return return
} }
} else { } else {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
} }
@@ -368,7 +368,7 @@ func getPost(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
w.Header().Set(model.HEADER_ETAG_SERVER, post.Etag()) w.Header().Set(model.HeaderEtagServer, post.Etag())
w.Write([]byte(post.ToJson())) w.Write([]byte(post.ToJson()))
} }
@@ -384,19 +384,19 @@ func deletePost(c *Context, w http.ResponseWriter, _ *http.Request) {
post, err := c.App.GetSinglePost(c.Params.PostId) post, err := c.App.GetSinglePost(c.Params.PostId)
if err != nil { if err != nil {
c.SetPermissionError(model.PERMISSION_DELETE_POST) c.SetPermissionError(model.PermissionDeletePost)
return return
} }
auditRec.AddMeta("post", post) auditRec.AddMeta("post", post)
if c.AppContext.Session().UserId == post.UserId { if c.AppContext.Session().UserId == post.UserId {
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), post.ChannelId, model.PERMISSION_DELETE_POST) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), post.ChannelId, model.PermissionDeletePost) {
c.SetPermissionError(model.PERMISSION_DELETE_POST) c.SetPermissionError(model.PermissionDeletePost)
return return
} }
} else { } else {
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), post.ChannelId, model.PERMISSION_DELETE_OTHERS_POSTS) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), post.ChannelId, model.PermissionDeleteOthersPosts) {
c.SetPermissionError(model.PERMISSION_DELETE_OTHERS_POSTS) c.SetPermissionError(model.PermissionDeleteOthersPosts)
return return
} }
} }
@@ -436,14 +436,14 @@ func getPostThread(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PermissionReadChannel) {
if channel.Type == model.CHANNEL_OPEN { if channel.Type == model.ChannelTypeOpen {
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PERMISSION_READ_PUBLIC_CHANNEL) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PermissionReadPublicChannel) {
c.SetPermissionError(model.PERMISSION_READ_PUBLIC_CHANNEL) c.SetPermissionError(model.PermissionReadPublicChannel)
return return
} }
} else { } else {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
} }
@@ -454,7 +454,7 @@ func getPostThread(c *Context, w http.ResponseWriter, r *http.Request) {
clientPostList := c.App.PreparePostListForClient(list) clientPostList := c.App.PreparePostListForClient(list)
w.Header().Set(model.HEADER_ETAG_SERVER, clientPostList.Etag()) w.Header().Set(model.HeaderEtagServer, clientPostList.Etag())
w.Write([]byte(clientPostList.ToJson())) w.Write([]byte(clientPostList.ToJson()))
} }
@@ -465,8 +465,8 @@ func searchPosts(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_VIEW_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionViewTeam) {
c.SetPermissionError(model.PERMISSION_VIEW_TEAM) c.SetPermissionError(model.PermissionViewTeam)
return return
} }
@@ -553,14 +553,14 @@ func updatePost(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), c.Params.PostId, model.PERMISSION_EDIT_POST) { if !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), c.Params.PostId, model.PermissionEditPost) {
c.SetPermissionError(model.PERMISSION_EDIT_POST) c.SetPermissionError(model.PermissionEditPost)
return return
} }
originalPost, err := c.App.GetSinglePost(c.Params.PostId) originalPost, err := c.App.GetSinglePost(c.Params.PostId)
if err != nil { if err != nil {
c.SetPermissionError(model.PERMISSION_EDIT_POST) c.SetPermissionError(model.PermissionEditPost)
return return
} }
auditRec.AddMeta("post", originalPost) auditRec.AddMeta("post", originalPost)
@@ -569,8 +569,8 @@ func updatePost(c *Context, w http.ResponseWriter, r *http.Request) {
post.FileIds = originalPost.FileIds post.FileIds = originalPost.FileIds
if c.AppContext.Session().UserId != originalPost.UserId { if c.AppContext.Session().UserId != originalPost.UserId {
if !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), c.Params.PostId, model.PERMISSION_EDIT_OTHERS_POSTS) { if !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), c.Params.PostId, model.PermissionEditOthersPosts) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHERS_POSTS) c.SetPermissionError(model.PermissionEditOthersPosts)
return return
} }
} }
@@ -610,16 +610,16 @@ func patchPost(c *Context, w http.ResponseWriter, r *http.Request) {
originalPost, err := c.App.GetSinglePost(c.Params.PostId) originalPost, err := c.App.GetSinglePost(c.Params.PostId)
if err != nil { if err != nil {
c.SetPermissionError(model.PERMISSION_EDIT_POST) c.SetPermissionError(model.PermissionEditPost)
return return
} }
auditRec.AddMeta("post", originalPost) auditRec.AddMeta("post", originalPost)
var permission *model.Permission var permission *model.Permission
if c.AppContext.Session().UserId == originalPost.UserId { if c.AppContext.Session().UserId == originalPost.UserId {
permission = model.PERMISSION_EDIT_POST permission = model.PermissionEditPost
} else { } else {
permission = model.PERMISSION_EDIT_OTHERS_POSTS permission = model.PermissionEditOthersPosts
} }
if !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), c.Params.PostId, permission) { if !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), c.Params.PostId, permission) {
@@ -649,11 +649,11 @@ func setPostUnread(c *Context, w http.ResponseWriter, r *http.Request) {
collapsedThreadsSupported := props["collapsed_threads_supported"] collapsedThreadsSupported := props["collapsed_threads_supported"]
if c.AppContext.Session().UserId != c.Params.UserId && !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if c.AppContext.Session().UserId != c.Params.UserId && !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
if !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), c.Params.PostId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), c.Params.PostId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
@@ -674,8 +674,8 @@ func saveIsPinnedPost(c *Context, w http.ResponseWriter, isPinned bool) {
auditRec := c.MakeAuditRecord("saveIsPinnedPost", audit.Fail) auditRec := c.MakeAuditRecord("saveIsPinnedPost", audit.Fail)
defer c.LogAuditRecWithLevel(auditRec, app.LevelContent) defer c.LogAuditRecWithLevel(auditRec, app.LevelContent)
if !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), c.Params.PostId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), c.Params.PostId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
@@ -701,8 +701,8 @@ func saveIsPinnedPost(c *Context, w http.ResponseWriter, isPinned bool) {
if c.App.Srv().License() != nil && if c.App.Srv().License() != nil &&
*c.App.Config().TeamSettings.ExperimentalTownSquareIsReadOnly && *c.App.Config().TeamSettings.ExperimentalTownSquareIsReadOnly &&
channel.Name == model.DEFAULT_CHANNEL && channel.Name == model.DefaultChannelName &&
!c.App.RolesGrantPermission(user.GetRoles(), model.PERMISSION_MANAGE_SYSTEM.Id) { !c.App.RolesGrantPermission(user.GetRoles(), model.PermissionManageSystem.Id) {
c.Err = model.NewAppError("saveIsPinnedPost", "api.post.save_is_pinned_post.town_square_read_only", nil, "", http.StatusForbidden) c.Err = model.NewAppError("saveIsPinnedPost", "api.post.save_is_pinned_post.town_square_read_only", nil, "", http.StatusForbidden)
return return
} }
@@ -735,8 +735,8 @@ func getFileInfosForPost(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), c.Params.PostId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), c.Params.PostId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
@@ -751,6 +751,6 @@ func getFileInfosForPost(c *Context, w http.ResponseWriter, r *http.Request) {
} }
w.Header().Set("Cache-Control", "max-age=2592000, private") w.Header().Set("Cache-Control", "max-age=2592000, private")
w.Header().Set(model.HEADER_ETAG_SERVER, model.GetEtagForFileInfos(infos)) w.Header().Set(model.HeaderEtagServer, model.GetEtagForFileInfos(infos))
w.Write([]byte(model.FileInfosToJson(infos))) w.Write([]byte(model.FileInfosToJson(infos)))
} }

Просмотреть файл

@@ -34,7 +34,7 @@ func TestCreatePost(t *testing.T) {
defer th.TearDown() defer th.TearDown()
Client := th.Client Client := th.Client
post := &model.Post{ChannelId: th.BasicChannel.Id, Message: "#hashtag a" + model.NewId() + "a", Props: model.StringInterface{model.PROPS_ADD_CHANNEL_MEMBER: "no good"}} post := &model.Post{ChannelId: th.BasicChannel.Id, Message: "#hashtag a" + model.NewId() + "a", Props: model.StringInterface{model.PropsAddChannelMember: "no good"}}
rpost, resp := Client.CreatePost(post) rpost, resp := Client.CreatePost(post)
CheckNoError(t, resp) CheckNoError(t, resp)
CheckCreatedStatus(t, resp) CheckCreatedStatus(t, resp)
@@ -43,7 +43,7 @@ func TestCreatePost(t *testing.T) {
require.Equal(t, "#hashtag", rpost.Hashtags, "hashtag didn't match") require.Equal(t, "#hashtag", rpost.Hashtags, "hashtag didn't match")
require.Empty(t, rpost.FileIds) require.Empty(t, rpost.FileIds)
require.Equal(t, 0, int(rpost.EditAt), "newly created post shouldn't have EditAt set") require.Equal(t, 0, int(rpost.EditAt), "newly created post shouldn't have EditAt set")
require.Nil(t, rpost.GetProp(model.PROPS_ADD_CHANNEL_MEMBER), "newly created post shouldn't have Props['add_channel_member'] set") require.Nil(t, rpost.GetProp(model.PropsAddChannelMember), "newly created post shouldn't have Props['add_channel_member'] set")
post.RootId = rpost.Id post.RootId = rpost.Id
post.ParentId = rpost.Id post.ParentId = rpost.Id
@@ -124,7 +124,7 @@ func TestCreatePost(t *testing.T) {
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.RemovePermissionFromRole(model.PERMISSION_USE_CHANNEL_MENTIONS.Id, model.CHANNEL_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionUseChannelMentions.Id, model.ChannelUserRoleId)
post.RootId = rpost.Id post.RootId = rpost.Id
post.ParentId = rpost.Id post.ParentId = rpost.Id
@@ -138,7 +138,7 @@ func TestCreatePost(t *testing.T) {
for waiting { for waiting {
select { select {
case event := <-WebSocketClient.EventChannel: case event := <-WebSocketClient.EventChannel:
require.NotEqual(t, model.WEBSOCKET_EVENT_EPHEMERAL_MESSAGE, event.EventType(), "should not have ephemeral message event") require.NotEqual(t, model.WebsocketEventEphemeralMessage, event.EventType(), "should not have ephemeral message event")
case <-timeout: case <-timeout:
waiting = false waiting = false
} }
@@ -167,8 +167,8 @@ func TestCreatePost(t *testing.T) {
for eventsToGo > 0 { for eventsToGo > 0 {
select { select {
case event := <-WebSocketClient.EventChannel: case event := <-WebSocketClient.EventChannel:
if event.Event == model.WEBSOCKET_EVENT_EPHEMERAL_MESSAGE { if event.Event == model.WebsocketEventEphemeralMessage {
require.Equal(t, model.WEBSOCKET_EVENT_EPHEMERAL_MESSAGE, event.Event) require.Equal(t, model.WebsocketEventEphemeralMessage, event.Event)
eventsToGo = eventsToGo - 1 eventsToGo = eventsToGo - 1
} }
case <-timeout: case <-timeout:
@@ -180,7 +180,7 @@ func TestCreatePost(t *testing.T) {
post.RootId = "" post.RootId = ""
post.ParentId = "" post.ParentId = ""
post.Type = model.POST_SYSTEM_GENERIC post.Type = model.PostTypeSystemGeneric
_, resp = Client.CreatePost(post) _, resp = Client.CreatePost(post)
CheckBadRequestStatus(t, resp) CheckBadRequestStatus(t, resp)
@@ -222,7 +222,7 @@ func TestCreatePostEphemeral(t *testing.T) {
ephemeralPost := &model.PostEphemeral{ ephemeralPost := &model.PostEphemeral{
UserID: th.BasicUser2.Id, UserID: th.BasicUser2.Id,
Post: &model.Post{ChannelId: th.BasicChannel.Id, Message: "a" + model.NewId() + "a", Props: model.StringInterface{model.PROPS_ADD_CHANNEL_MEMBER: "no good"}}, Post: &model.Post{ChannelId: th.BasicChannel.Id, Message: "a" + model.NewId() + "a", Props: model.StringInterface{model.PropsAddChannelMember: "no good"}},
} }
rpost, resp := Client.CreatePostEphemeral(ephemeralPost) rpost, resp := Client.CreatePostEphemeral(ephemeralPost)
@@ -334,7 +334,7 @@ func testCreatePostWithOutgoingHook(
respPostType := "" //if is empty or post will do a normal post. respPostType := "" //if is empty or post will do a normal post.
if commentPostType { if commentPostType {
respPostType = model.OUTGOING_HOOK_RESPONSE_TYPE_COMMENT respPostType = model.OutgoingHookResponseTypeComment
} }
outGoingHookResponse := &model.OutgoingWebhookResponse{ outGoingHookResponse := &model.OutgoingWebhookResponse{
@@ -437,7 +437,7 @@ func TestCreatePostPublic(t *testing.T) {
post := &model.Post{ChannelId: th.BasicChannel.Id, Message: "#hashtag a" + model.NewId() + "a"} post := &model.Post{ChannelId: th.BasicChannel.Id, Message: "#hashtag a" + model.NewId() + "a"}
user := model.User{Email: th.GenerateTestEmail(), Nickname: "Joram Wilander", Password: "hello1", Username: GenerateTestUsername(), Roles: model.SYSTEM_USER_ROLE_ID} user := model.User{Email: th.GenerateTestEmail(), Nickname: "Joram Wilander", Password: "hello1", Username: GenerateTestUsername(), Roles: model.SystemUserRoleId}
ruser, resp := Client.CreateUser(&user) ruser, resp := Client.CreateUser(&user)
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -447,7 +447,7 @@ func TestCreatePostPublic(t *testing.T) {
_, resp = Client.CreatePost(post) _, resp = Client.CreatePost(post)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
th.App.UpdateUserRoles(ruser.Id, model.SYSTEM_USER_ROLE_ID+" "+model.SYSTEM_POST_ALL_PUBLIC_ROLE_ID, false) th.App.UpdateUserRoles(ruser.Id, model.SystemUserRoleId+" "+model.SystemPostAllPublicRoleId, false)
th.App.Srv().InvalidateAllCaches() th.App.Srv().InvalidateAllCaches()
Client.Login(user.Email, user.Password) Client.Login(user.Email, user.Password)
@@ -459,9 +459,9 @@ func TestCreatePostPublic(t *testing.T) {
_, resp = Client.CreatePost(post) _, resp = Client.CreatePost(post)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
th.App.UpdateUserRoles(ruser.Id, model.SYSTEM_USER_ROLE_ID, false) th.App.UpdateUserRoles(ruser.Id, model.SystemUserRoleId, false)
th.App.JoinUserToTeam(th.Context, th.BasicTeam, ruser, "") th.App.JoinUserToTeam(th.Context, th.BasicTeam, ruser, "")
th.App.UpdateTeamMemberRoles(th.BasicTeam.Id, ruser.Id, model.TEAM_USER_ROLE_ID+" "+model.TEAM_POST_ALL_PUBLIC_ROLE_ID) th.App.UpdateTeamMemberRoles(th.BasicTeam.Id, ruser.Id, model.TeamUserRoleId+" "+model.TeamPostAllPublicRoleId)
th.App.Srv().InvalidateAllCaches() th.App.Srv().InvalidateAllCaches()
Client.Login(user.Email, user.Password) Client.Login(user.Email, user.Password)
@@ -482,7 +482,7 @@ func TestCreatePostAll(t *testing.T) {
post := &model.Post{ChannelId: th.BasicChannel.Id, Message: "#hashtag a" + model.NewId() + "a"} post := &model.Post{ChannelId: th.BasicChannel.Id, Message: "#hashtag a" + model.NewId() + "a"}
user := model.User{Email: th.GenerateTestEmail(), Nickname: "Joram Wilander", Password: "hello1", Username: GenerateTestUsername(), Roles: model.SYSTEM_USER_ROLE_ID} user := model.User{Email: th.GenerateTestEmail(), Nickname: "Joram Wilander", Password: "hello1", Username: GenerateTestUsername(), Roles: model.SystemUserRoleId}
directChannel, _ := th.App.GetOrCreateDirectChannel(th.Context, th.BasicUser.Id, th.BasicUser2.Id) directChannel, _ := th.App.GetOrCreateDirectChannel(th.Context, th.BasicUser.Id, th.BasicUser2.Id)
@@ -494,7 +494,7 @@ func TestCreatePostAll(t *testing.T) {
_, resp = Client.CreatePost(post) _, resp = Client.CreatePost(post)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
th.App.UpdateUserRoles(ruser.Id, model.SYSTEM_USER_ROLE_ID+" "+model.SYSTEM_POST_ALL_ROLE_ID, false) th.App.UpdateUserRoles(ruser.Id, model.SystemUserRoleId+" "+model.SystemPostAllRoleId, false)
th.App.Srv().InvalidateAllCaches() th.App.Srv().InvalidateAllCaches()
Client.Login(user.Email, user.Password) Client.Login(user.Email, user.Password)
@@ -510,9 +510,9 @@ func TestCreatePostAll(t *testing.T) {
_, resp = Client.CreatePost(post) _, resp = Client.CreatePost(post)
CheckNoError(t, resp) CheckNoError(t, resp)
th.App.UpdateUserRoles(ruser.Id, model.SYSTEM_USER_ROLE_ID, false) th.App.UpdateUserRoles(ruser.Id, model.SystemUserRoleId, false)
th.App.JoinUserToTeam(th.Context, th.BasicTeam, ruser, "") th.App.JoinUserToTeam(th.Context, th.BasicTeam, ruser, "")
th.App.UpdateTeamMemberRoles(th.BasicTeam.Id, ruser.Id, model.TEAM_USER_ROLE_ID+" "+model.TEAM_POST_ALL_ROLE_ID) th.App.UpdateTeamMemberRoles(th.BasicTeam.Id, ruser.Id, model.TeamUserRoleId+" "+model.TeamPostAllRoleId)
th.App.Srv().InvalidateAllCaches() th.App.Srv().InvalidateAllCaches()
Client.Login(user.Email, user.Password) Client.Login(user.Email, user.Password)
@@ -553,7 +553,7 @@ func TestCreatePostSendOutOfChannelMentions(t *testing.T) {
for waiting { for waiting {
select { select {
case event := <-WebSocketClient.EventChannel: case event := <-WebSocketClient.EventChannel:
require.NotEqual(t, model.WEBSOCKET_EVENT_EPHEMERAL_MESSAGE, event.EventType(), "should not have ephemeral message event") require.NotEqual(t, model.WebsocketEventEphemeralMessage, event.EventType(), "should not have ephemeral message event")
case <-timeout: case <-timeout:
waiting = false waiting = false
} }
@@ -572,14 +572,14 @@ func TestCreatePostSendOutOfChannelMentions(t *testing.T) {
for waiting { for waiting {
select { select {
case event := <-WebSocketClient.EventChannel: case event := <-WebSocketClient.EventChannel:
if event.EventType() != model.WEBSOCKET_EVENT_EPHEMERAL_MESSAGE { if event.EventType() != model.WebsocketEventEphemeralMessage {
// Ignore any other events // Ignore any other events
continue continue
} }
wpost := model.PostFromJson(strings.NewReader(event.GetData()["post"].(string))) wpost := model.PostFromJson(strings.NewReader(event.GetData()["post"].(string)))
acm, ok := wpost.GetProp(model.PROPS_ADD_CHANNEL_MEMBER).(map[string]interface{}) acm, ok := wpost.GetProp(model.PropsAddChannelMember).(map[string]interface{})
require.True(t, ok, "should have received ephemeral post with 'add_channel_member' in props") require.True(t, ok, "should have received ephemeral post with 'add_channel_member' in props")
require.True(t, acm["post_id"] != nil, "should not be nil") require.True(t, acm["post_id"] != nil, "should not be nil")
require.True(t, acm["user_ids"] != nil, "should not be nil") require.True(t, acm["user_ids"] != nil, "should not be nil")
@@ -613,7 +613,7 @@ func TestCreatePostCheckOnlineStatus(t *testing.T) {
for { for {
select { select {
case ev := <-wsClient.EventChannel: case ev := <-wsClient.EventChannel:
if ev.EventType() == model.WEBSOCKET_EVENT_POSTED { if ev.EventType() == model.WebsocketEventPosted {
assert.True(t, ev.GetData()["set_online"].(bool) == isSetOnline) assert.True(t, ev.GetData()["set_online"].(bool) == isSetOnline)
return return
} }
@@ -634,7 +634,7 @@ func TestCreatePostCheckOnlineStatus(t *testing.T) {
} }
req := httptest.NewRequest("POST", "/api/v4/posts?set_online=false", strings.NewReader(post.ToJson())) req := httptest.NewRequest("POST", "/api/v4/posts?set_online=false", strings.NewReader(post.ToJson()))
req.Header.Set(model.HEADER_AUTH, "Bearer "+session.Token) req.Header.Set(model.HeaderAuth, "Bearer "+session.Token)
handler.ServeHTTP(resp, req) handler.ServeHTTP(resp, req)
assert.Equal(t, http.StatusCreated, resp.Code) assert.Equal(t, http.StatusCreated, resp.Code)
@@ -645,7 +645,7 @@ func TestCreatePostCheckOnlineStatus(t *testing.T) {
assert.Equal(t, "app.status.get.missing.app_error", err.Id) assert.Equal(t, "app.status.get.missing.app_error", err.Id)
req = httptest.NewRequest("POST", "/api/v4/posts", strings.NewReader(post.ToJson())) req = httptest.NewRequest("POST", "/api/v4/posts", strings.NewReader(post.ToJson()))
req.Header.Set(model.HEADER_AUTH, "Bearer "+session.Token) req.Header.Set(model.HeaderAuth, "Bearer "+session.Token)
handler.ServeHTTP(resp, req) handler.ServeHTTP(resp, req)
assert.Equal(t, http.StatusCreated, resp.Code) assert.Equal(t, http.StatusCreated, resp.Code)
@@ -712,27 +712,27 @@ func TestUpdatePost(t *testing.T) {
t.Run("new message, invalid props", func(t *testing.T) { t.Run("new message, invalid props", func(t *testing.T) {
msg1 := "#hashtag a" + model.NewId() + " update post again" msg1 := "#hashtag a" + model.NewId() + " update post again"
rpost.Message = msg1 rpost.Message = msg1
rpost.AddProp(model.PROPS_ADD_CHANNEL_MEMBER, "no good") rpost.AddProp(model.PropsAddChannelMember, "no good")
rrupost, resp := Client.UpdatePost(rpost.Id, rpost) rrupost, resp := Client.UpdatePost(rpost.Id, rpost)
CheckNoError(t, resp) CheckNoError(t, resp)
assert.Equal(t, msg1, rrupost.Message, "failed to update message") assert.Equal(t, msg1, rrupost.Message, "failed to update message")
assert.Equal(t, "#hashtag", rrupost.Hashtags, "failed to update hashtags") assert.Equal(t, "#hashtag", rrupost.Hashtags, "failed to update hashtags")
assert.Nil(t, rrupost.GetProp(model.PROPS_ADD_CHANNEL_MEMBER), "failed to sanitize Props['add_channel_member'], should be nil") assert.Nil(t, rrupost.GetProp(model.PropsAddChannelMember), "failed to sanitize Props['add_channel_member'], should be nil")
actual, resp := Client.GetPost(rpost.Id, "") actual, resp := Client.GetPost(rpost.Id, "")
CheckNoError(t, resp) CheckNoError(t, resp)
assert.Equal(t, msg1, actual.Message, "failed to update message") assert.Equal(t, msg1, actual.Message, "failed to update message")
assert.Equal(t, "#hashtag", actual.Hashtags, "failed to update hashtags") assert.Equal(t, "#hashtag", actual.Hashtags, "failed to update hashtags")
assert.Nil(t, actual.GetProp(model.PROPS_ADD_CHANNEL_MEMBER), "failed to sanitize Props['add_channel_member'], should be nil") assert.Nil(t, actual.GetProp(model.PropsAddChannelMember), "failed to sanitize Props['add_channel_member'], should be nil")
}) })
t.Run("join/leave post", func(t *testing.T) { t.Run("join/leave post", func(t *testing.T) {
rpost2, err := th.App.CreatePost(th.Context, &model.Post{ rpost2, err := th.App.CreatePost(th.Context, &model.Post{
ChannelId: channel.Id, ChannelId: channel.Id,
Message: "zz" + model.NewId() + "a", Message: "zz" + model.NewId() + "a",
Type: model.POST_JOIN_LEAVE, Type: model.PostTypeJoinLeave,
UserId: th.BasicUser.Id, UserId: th.BasicUser.Id,
}, channel, false, true) }, channel, false, true)
require.Nil(t, err) require.Nil(t, err)
@@ -955,8 +955,8 @@ func TestPatchPost(t *testing.T) {
// Add permission to edit others' // Add permission to edit others'
defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions()) defer th.RestoreDefaultRolePermissions(th.SaveDefaultRolePermissions())
th.RemovePermissionFromRole(model.PERMISSION_EDIT_POST.Id, model.CHANNEL_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionEditPost.Id, model.ChannelUserRoleId)
th.AddPermissionToRole(model.PERMISSION_EDIT_OTHERS_POSTS.Id, model.CHANNEL_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionEditOthersPosts.Id, model.ChannelUserRoleId)
_, resp = Client.PatchPost(post.Id, patch) _, resp = Client.PatchPost(post.Id, patch)
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -1203,7 +1203,7 @@ func TestGetFlaggedPostsForUser(t *testing.T) {
preference := model.Preference{ preference := model.Preference{
UserId: user.Id, UserId: user.Id,
Category: model.PREFERENCE_CATEGORY_FLAGGED_POST, Category: model.PreferenceCategoryFlaggedPost,
Name: post1.Id, Name: post1.Id,
Value: "true", Value: "true",
} }
@@ -1293,7 +1293,7 @@ func TestGetFlaggedPostsForUser(t *testing.T) {
CheckNoError(t, resp) CheckNoError(t, resp)
require.Empty(t, rpl.Posts) require.Empty(t, rpl.Posts)
channel4 := th.CreateChannelWithClient(th.SystemAdminClient, model.CHANNEL_PRIVATE) channel4 := th.CreateChannelWithClient(th.SystemAdminClient, model.ChannelTypePrivate)
post5 := th.CreatePostWithClient(th.SystemAdminClient, channel4) post5 := th.CreatePostWithClient(th.SystemAdminClient, channel4)
preference.Name = post5.Id preference.Name = post5.Id
@@ -2031,7 +2031,7 @@ func TestDeletePostMessage(t *testing.T) {
for { for {
select { select {
case ev := <-wsClient.EventChannel: case ev := <-wsClient.EventChannel:
if ev.EventType() == model.WEBSOCKET_EVENT_POST_DELETED { if ev.EventType() == model.WebsocketEventPostDeleted {
assert.Equal(t, tc.delete_by, ev.GetData()["delete_by"]) assert.Equal(t, tc.delete_by, ev.GetData()["delete_by"])
return return
} }
@@ -2554,7 +2554,7 @@ func TestSetPostUnreadWithoutCollapsedThreads(t *testing.T) {
defer th.TearDown() defer th.TearDown()
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.ThreadAutoFollow = true *cfg.ServiceSettings.ThreadAutoFollow = true
*cfg.ServiceSettings.CollapsedThreads = model.COLLAPSED_THREADS_DEFAULT_ON *cfg.ServiceSettings.CollapsedThreads = model.CollapsedThreadsDefaultOn
}) })
// user2: first root mention @user1 // user2: first root mention @user1

Просмотреть файл

@@ -25,7 +25,7 @@ func getPreferences(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -45,7 +45,7 @@ func getPreferencesByCategory(c *Context, w http.ResponseWriter, r *http.Request
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -65,7 +65,7 @@ func getPreferenceByCategoryAndName(c *Context, w http.ResponseWriter, r *http.R
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -88,7 +88,7 @@ func updatePreferences(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -101,15 +101,15 @@ func updatePreferences(c *Context, w http.ResponseWriter, r *http.Request) {
var sanitizedPreferences model.Preferences var sanitizedPreferences model.Preferences
for _, pref := range preferences { for _, pref := range preferences {
if pref.Category == model.PREFERENCE_CATEGORY_FLAGGED_POST { if pref.Category == model.PreferenceCategoryFlaggedPost {
post, err := c.App.GetSinglePost(pref.Name) post, err := c.App.GetSinglePost(pref.Name)
if err != nil { if err != nil {
c.SetInvalidParam("preference.name") c.SetInvalidParam("preference.name")
return return
} }
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), post.ChannelId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), post.ChannelId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
} }
@@ -136,7 +136,7 @@ func deletePreferences(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }

Просмотреть файл

@@ -139,13 +139,13 @@ func TestGetPreferenceByCategoryAndName(t *testing.T) {
preferences := model.Preferences{ preferences := model.Preferences{
{ {
UserId: user.Id, UserId: user.Id,
Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW, Category: model.PreferenceCategoryDirectChannelShow,
Name: name, Name: name,
Value: value, Value: value,
}, },
{ {
UserId: user.Id, UserId: user.Id,
Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW, Category: model.PreferenceCategoryDirectChannelShow,
Name: model.NewId(), Name: model.NewId(),
Value: model.NewId(), Value: model.NewId(),
}, },
@@ -153,7 +153,7 @@ func TestGetPreferenceByCategoryAndName(t *testing.T) {
Client.UpdatePreferences(user.Id, &preferences) Client.UpdatePreferences(user.Id, &preferences)
pref, resp := Client.GetPreferenceByCategoryAndName(user.Id, model.PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW, name) pref, resp := Client.GetPreferenceByCategoryAndName(user.Id, model.PreferenceCategoryDirectChannelShow, name)
CheckNoError(t, resp) CheckNoError(t, resp)
require.Equal(t, preferences[0].UserId, pref.UserId, "UserId preference not saved") require.Equal(t, preferences[0].UserId, pref.UserId, "UserId preference not saved")
@@ -250,7 +250,7 @@ func TestUpdatePreferencesWebsocket(t *testing.T) {
WebSocketClient.Listen() WebSocketClient.Listen()
time.Sleep(300 * time.Millisecond) time.Sleep(300 * time.Millisecond)
wsResp := <-WebSocketClient.ResponseChannel wsResp := <-WebSocketClient.ResponseChannel
require.Equal(t, wsResp.Status, model.STATUS_OK, "expected OK from auth challenge") require.Equal(t, wsResp.Status, model.StatusOk, "expected OK from auth challenge")
userId := th.BasicUser.Id userId := th.BasicUser.Id
preferences := &model.Preferences{ preferences := &model.Preferences{
@@ -275,7 +275,7 @@ func TestUpdatePreferencesWebsocket(t *testing.T) {
for waiting { for waiting {
select { select {
case event := <-WebSocketClient.EventChannel: case event := <-WebSocketClient.EventChannel:
if event.EventType() != model.WEBSOCKET_EVENT_PREFERENCES_CHANGED { if event.EventType() != model.WebsocketEventPreferencesChanged {
// Ignore any other events // Ignore any other events
continue continue
} }
@@ -309,7 +309,7 @@ func TestUpdateSidebarPreferences(t *testing.T) {
_, resp := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "") _, resp := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
require.Nil(t, resp.Error) require.Nil(t, resp.Error)
channel := th.CreateChannelWithClientAndTeam(th.Client, model.CHANNEL_OPEN, team1.Id) channel := th.CreateChannelWithClientAndTeam(th.Client, model.ChannelTypeOpen, team1.Id)
th.AddUserToChannel(user, channel) th.AddUserToChannel(user, channel)
// Confirm that the sidebar is populated correctly to begin with // Confirm that the sidebar is populated correctly to begin with
@@ -324,7 +324,7 @@ func TestUpdateSidebarPreferences(t *testing.T) {
_, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{ _, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{
{ {
UserId: user.Id, UserId: user.Id,
Category: model.PREFERENCE_CATEGORY_FAVORITE_CHANNEL, Category: model.PreferenceCategoryFavoriteChannel,
Name: channel.Id, Name: channel.Id,
Value: "true", Value: "true",
}, },
@@ -343,7 +343,7 @@ func TestUpdateSidebarPreferences(t *testing.T) {
_, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{ _, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{
{ {
UserId: user.Id, UserId: user.Id,
Category: model.PREFERENCE_CATEGORY_FAVORITE_CHANNEL, Category: model.PreferenceCategoryFavoriteChannel,
Name: channel.Id, Name: channel.Id,
Value: "false", Value: "false",
}, },
@@ -377,7 +377,7 @@ func TestUpdateSidebarPreferences(t *testing.T) {
_, resp := th.Client.UpdatePreferences(user.Id, &model.Preferences{ _, resp := th.Client.UpdatePreferences(user.Id, &model.Preferences{
{ {
UserId: user.Id, UserId: user.Id,
Category: model.PREFERENCE_CATEGORY_FAVORITE_CHANNEL, Category: model.PreferenceCategoryFavoriteChannel,
Name: dmChannel.Id, Name: dmChannel.Id,
Value: "true", Value: "true",
}, },
@@ -403,7 +403,7 @@ func TestUpdateSidebarPreferences(t *testing.T) {
_, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{ _, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{
{ {
UserId: user.Id, UserId: user.Id,
Category: model.PREFERENCE_CATEGORY_FAVORITE_CHANNEL, Category: model.PreferenceCategoryFavoriteChannel,
Name: dmChannel.Id, Name: dmChannel.Id,
Value: "false", Value: "false",
}, },
@@ -445,7 +445,7 @@ func TestUpdateSidebarPreferences(t *testing.T) {
_, resp = client2.GetSidebarCategoriesForTeamForUser(user2.Id, team1.Id, "") _, resp = client2.GetSidebarCategoriesForTeamForUser(user2.Id, team1.Id, "")
require.Nil(t, resp.Error) require.Nil(t, resp.Error)
channel := th.CreateChannelWithClientAndTeam(th.Client, model.CHANNEL_OPEN, team1.Id) channel := th.CreateChannelWithClientAndTeam(th.Client, model.ChannelTypeOpen, team1.Id)
th.AddUserToChannel(user, channel) th.AddUserToChannel(user, channel)
th.AddUserToChannel(user2, channel) th.AddUserToChannel(user2, channel)
@@ -468,7 +468,7 @@ func TestUpdateSidebarPreferences(t *testing.T) {
_, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{ _, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{
{ {
UserId: user.Id, UserId: user.Id,
Category: model.PREFERENCE_CATEGORY_FAVORITE_CHANNEL, Category: model.PreferenceCategoryFavoriteChannel,
Name: channel.Id, Name: channel.Id,
Value: "true", Value: "true",
}, },
@@ -487,7 +487,7 @@ func TestUpdateSidebarPreferences(t *testing.T) {
_, resp = client2.UpdatePreferences(user2.Id, &model.Preferences{ _, resp = client2.UpdatePreferences(user2.Id, &model.Preferences{
{ {
UserId: user2.Id, UserId: user2.Id,
Category: model.PREFERENCE_CATEGORY_FAVORITE_CHANNEL, Category: model.PreferenceCategoryFavoriteChannel,
Name: channel.Id, Name: channel.Id,
Value: "true", Value: "true",
}, },
@@ -506,7 +506,7 @@ func TestUpdateSidebarPreferences(t *testing.T) {
_, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{ _, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{
{ {
UserId: user.Id, UserId: user.Id,
Category: model.PREFERENCE_CATEGORY_FAVORITE_CHANNEL, Category: model.PreferenceCategoryFavoriteChannel,
Name: channel.Id, Name: channel.Id,
Value: "false", Value: "false",
}, },
@@ -538,7 +538,7 @@ func TestDeletePreferences(t *testing.T) {
for i := 0; i < 10; i++ { for i := 0; i < 10; i++ {
preference := model.Preference{ preference := model.Preference{
UserId: th.BasicUser.Id, UserId: th.BasicUser.Id,
Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW, Category: model.PreferenceCategoryDirectChannelShow,
Name: model.NewId(), Name: model.NewId(),
} }
preferences = append(preferences, preference) preferences = append(preferences, preference)
@@ -593,7 +593,7 @@ func TestDeletePreferencesWebsocket(t *testing.T) {
WebSocketClient.Listen() WebSocketClient.Listen()
wsResp := <-WebSocketClient.ResponseChannel wsResp := <-WebSocketClient.ResponseChannel
require.Equal(t, model.STATUS_OK, wsResp.Status, "should have responded OK to authentication challenge") require.Equal(t, model.StatusOk, wsResp.Status, "should have responded OK to authentication challenge")
_, resp = th.Client.DeletePreferences(userId, preferences) _, resp = th.Client.DeletePreferences(userId, preferences)
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -604,7 +604,7 @@ func TestDeletePreferencesWebsocket(t *testing.T) {
for waiting { for waiting {
select { select {
case event := <-WebSocketClient.EventChannel: case event := <-WebSocketClient.EventChannel:
if event.EventType() != model.WEBSOCKET_EVENT_PREFERENCES_DELETED { if event.EventType() != model.WebsocketEventPreferencesDeleted {
// Ignore any other events // Ignore any other events
continue continue
} }
@@ -638,7 +638,7 @@ func TestDeleteSidebarPreferences(t *testing.T) {
_, resp := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "") _, resp := th.Client.GetSidebarCategoriesForTeamForUser(user.Id, team1.Id, "")
require.Nil(t, resp.Error) require.Nil(t, resp.Error)
channel := th.CreateChannelWithClientAndTeam(th.Client, model.CHANNEL_OPEN, team1.Id) channel := th.CreateChannelWithClientAndTeam(th.Client, model.ChannelTypeOpen, team1.Id)
th.AddUserToChannel(user, channel) th.AddUserToChannel(user, channel)
// Confirm that the sidebar is populated correctly to begin with // Confirm that the sidebar is populated correctly to begin with
@@ -653,7 +653,7 @@ func TestDeleteSidebarPreferences(t *testing.T) {
_, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{ _, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{
{ {
UserId: user.Id, UserId: user.Id,
Category: model.PREFERENCE_CATEGORY_FAVORITE_CHANNEL, Category: model.PreferenceCategoryFavoriteChannel,
Name: channel.Id, Name: channel.Id,
Value: "true", Value: "true",
}, },
@@ -672,7 +672,7 @@ func TestDeleteSidebarPreferences(t *testing.T) {
_, resp = th.Client.DeletePreferences(user.Id, &model.Preferences{ _, resp = th.Client.DeletePreferences(user.Id, &model.Preferences{
{ {
UserId: user.Id, UserId: user.Id,
Category: model.PREFERENCE_CATEGORY_FAVORITE_CHANNEL, Category: model.PreferenceCategoryFavoriteChannel,
Name: channel.Id, Name: channel.Id,
}, },
}) })
@@ -705,7 +705,7 @@ func TestDeleteSidebarPreferences(t *testing.T) {
_, resp := th.Client.UpdatePreferences(user.Id, &model.Preferences{ _, resp := th.Client.UpdatePreferences(user.Id, &model.Preferences{
{ {
UserId: user.Id, UserId: user.Id,
Category: model.PREFERENCE_CATEGORY_FAVORITE_CHANNEL, Category: model.PreferenceCategoryFavoriteChannel,
Name: dmChannel.Id, Name: dmChannel.Id,
Value: "true", Value: "true",
}, },
@@ -731,7 +731,7 @@ func TestDeleteSidebarPreferences(t *testing.T) {
_, resp = th.Client.DeletePreferences(user.Id, &model.Preferences{ _, resp = th.Client.DeletePreferences(user.Id, &model.Preferences{
{ {
UserId: user.Id, UserId: user.Id,
Category: model.PREFERENCE_CATEGORY_FAVORITE_CHANNEL, Category: model.PreferenceCategoryFavoriteChannel,
Name: dmChannel.Id, Name: dmChannel.Id,
}, },
}) })
@@ -772,7 +772,7 @@ func TestDeleteSidebarPreferences(t *testing.T) {
_, resp = client2.GetSidebarCategoriesForTeamForUser(user2.Id, team1.Id, "") _, resp = client2.GetSidebarCategoriesForTeamForUser(user2.Id, team1.Id, "")
require.Nil(t, resp.Error) require.Nil(t, resp.Error)
channel := th.CreateChannelWithClientAndTeam(th.Client, model.CHANNEL_OPEN, team1.Id) channel := th.CreateChannelWithClientAndTeam(th.Client, model.ChannelTypeOpen, team1.Id)
th.AddUserToChannel(user, channel) th.AddUserToChannel(user, channel)
th.AddUserToChannel(user2, channel) th.AddUserToChannel(user2, channel)
@@ -795,7 +795,7 @@ func TestDeleteSidebarPreferences(t *testing.T) {
_, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{ _, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{
{ {
UserId: user.Id, UserId: user.Id,
Category: model.PREFERENCE_CATEGORY_FAVORITE_CHANNEL, Category: model.PreferenceCategoryFavoriteChannel,
Name: channel.Id, Name: channel.Id,
Value: "true", Value: "true",
}, },
@@ -805,7 +805,7 @@ func TestDeleteSidebarPreferences(t *testing.T) {
_, resp = client2.UpdatePreferences(user2.Id, &model.Preferences{ _, resp = client2.UpdatePreferences(user2.Id, &model.Preferences{
{ {
UserId: user2.Id, UserId: user2.Id,
Category: model.PREFERENCE_CATEGORY_FAVORITE_CHANNEL, Category: model.PreferenceCategoryFavoriteChannel,
Name: channel.Id, Name: channel.Id,
Value: "true", Value: "true",
}, },
@@ -824,7 +824,7 @@ func TestDeleteSidebarPreferences(t *testing.T) {
_, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{ _, resp = th.Client.UpdatePreferences(user.Id, &model.Preferences{
{ {
UserId: user.Id, UserId: user.Id,
Category: model.PREFERENCE_CATEGORY_FAVORITE_CHANNEL, Category: model.PreferenceCategoryFavoriteChannel,
Name: channel.Id, Name: channel.Id,
Value: "false", Value: "false",
}, },

Просмотреть файл

@@ -23,7 +23,7 @@ func saveReaction(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !model.IsValidId(reaction.UserId) || !model.IsValidId(reaction.PostId) || reaction.EmojiName == "" || len(reaction.EmojiName) > model.EMOJI_NAME_MAX_LENGTH { if !model.IsValidId(reaction.UserId) || !model.IsValidId(reaction.PostId) || reaction.EmojiName == "" || len(reaction.EmojiName) > model.EmojiNameMaxLength {
c.Err = model.NewAppError("saveReaction", "api.reaction.save_reaction.invalid.app_error", nil, "", http.StatusBadRequest) c.Err = model.NewAppError("saveReaction", "api.reaction.save_reaction.invalid.app_error", nil, "", http.StatusBadRequest)
return return
} }
@@ -33,8 +33,8 @@ func saveReaction(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), reaction.PostId, model.PERMISSION_ADD_REACTION) { if !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), reaction.PostId, model.PermissionAddReaction) {
c.SetPermissionError(model.PERMISSION_ADD_REACTION) c.SetPermissionError(model.PermissionAddReaction)
return return
} }
@@ -53,8 +53,8 @@ func getReactions(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), c.Params.PostId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), c.Params.PostId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
@@ -83,13 +83,13 @@ func deleteReaction(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), c.Params.PostId, model.PERMISSION_REMOVE_REACTION) { if !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), c.Params.PostId, model.PermissionRemoveReaction) {
c.SetPermissionError(model.PERMISSION_REMOVE_REACTION) c.SetPermissionError(model.PermissionRemoveReaction)
return return
} }
if c.Params.UserId != c.AppContext.Session().UserId && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_REMOVE_OTHERS_REACTIONS) { if c.Params.UserId != c.AppContext.Session().UserId && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionRemoveOthersReactions) {
c.SetPermissionError(model.PERMISSION_REMOVE_OTHERS_REACTIONS) c.SetPermissionError(model.PermissionRemoveOthersReactions)
return return
} }
@@ -111,8 +111,8 @@ func deleteReaction(c *Context, w http.ResponseWriter, r *http.Request) {
func getBulkReactions(c *Context, w http.ResponseWriter, r *http.Request) { func getBulkReactions(c *Context, w http.ResponseWriter, r *http.Request) {
postIds := model.ArrayFromJson(r.Body) postIds := model.ArrayFromJson(r.Body)
for _, postId := range postIds { for _, postId := range postIds {
if !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), postId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannelByPost(*c.AppContext.Session(), postId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
} }

Просмотреть файл

@@ -145,14 +145,14 @@ func TestSaveReaction(t *testing.T) {
t.Run("unable-to-create-reaction-without-permissions", func(t *testing.T) { t.Run("unable-to-create-reaction-without-permissions", func(t *testing.T) {
th.LoginBasic() th.LoginBasic()
th.RemovePermissionFromRole(model.PERMISSION_ADD_REACTION.Id, model.CHANNEL_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionAddReaction.Id, model.ChannelUserRoleId)
_, resp := Client.SaveReaction(reaction) _, resp := Client.SaveReaction(reaction)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
reactions, err := th.App.GetReactionsForPost(postId) reactions, err := th.App.GetReactionsForPost(postId)
require.Nil(t, err) require.Nil(t, err)
require.Equal(t, 3, len(reactions), "should have not created a reactions") require.Equal(t, 3, len(reactions), "should have not created a reactions")
th.AddPermissionToRole(model.PERMISSION_ADD_REACTION.Id, model.CHANNEL_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionAddReaction.Id, model.ChannelUserRoleId)
}) })
t.Run("unable-to-react-in-read-only-town-square", func(t *testing.T) { t.Run("unable-to-react-in-read-only-town-square", func(t *testing.T) {
@@ -455,7 +455,7 @@ func TestDeleteReaction(t *testing.T) {
t.Run("unable-to-delete-reaction-without-permissions", func(t *testing.T) { t.Run("unable-to-delete-reaction-without-permissions", func(t *testing.T) {
th.LoginBasic() th.LoginBasic()
th.RemovePermissionFromRole(model.PERMISSION_REMOVE_REACTION.Id, model.CHANNEL_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionRemoveReaction.Id, model.ChannelUserRoleId)
th.App.SaveReactionForPost(th.Context, r1) th.App.SaveReactionForPost(th.Context, r1)
_, resp := Client.DeleteReaction(r1) _, resp := Client.DeleteReaction(r1)
@@ -464,11 +464,11 @@ func TestDeleteReaction(t *testing.T) {
reactions, err := th.App.GetReactionsForPost(postId) reactions, err := th.App.GetReactionsForPost(postId)
require.Nil(t, err) require.Nil(t, err)
require.Equal(t, 1, len(reactions), "should have not deleted a reactions") require.Equal(t, 1, len(reactions), "should have not deleted a reactions")
th.AddPermissionToRole(model.PERMISSION_REMOVE_REACTION.Id, model.CHANNEL_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionRemoveReaction.Id, model.ChannelUserRoleId)
}) })
t.Run("unable-to-delete-others-reactions-without-permissions", func(t *testing.T) { t.Run("unable-to-delete-others-reactions-without-permissions", func(t *testing.T) {
th.RemovePermissionFromRole(model.PERMISSION_REMOVE_OTHERS_REACTIONS.Id, model.SYSTEM_ADMIN_ROLE_ID) th.RemovePermissionFromRole(model.PermissionRemoveOthersReactions.Id, model.SystemAdminRoleId)
th.App.SaveReactionForPost(th.Context, r1) th.App.SaveReactionForPost(th.Context, r1)
_, resp := th.SystemAdminClient.DeleteReaction(r1) _, resp := th.SystemAdminClient.DeleteReaction(r1)
@@ -477,7 +477,7 @@ func TestDeleteReaction(t *testing.T) {
reactions, err := th.App.GetReactionsForPost(postId) reactions, err := th.App.GetReactionsForPost(postId)
require.Nil(t, err) require.Nil(t, err)
require.Equal(t, 1, len(reactions), "should have not deleted a reactions") require.Equal(t, 1, len(reactions), "should have not deleted a reactions")
th.AddPermissionToRole(model.PERMISSION_REMOVE_OTHERS_REACTIONS.Id, model.SYSTEM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionRemoveOthersReactions.Id, model.SystemAdminRoleId)
}) })
t.Run("unable-to-delete-reactions-in-read-only-town-square", func(t *testing.T) { t.Run("unable-to-delete-reactions-in-read-only-town-square", func(t *testing.T) {

Просмотреть файл

@@ -11,21 +11,21 @@ import (
) )
var allowedPermissions = []string{ var allowedPermissions = []string{
model.PERMISSION_CREATE_TEAM.Id, model.PermissionCreateTeam.Id,
model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.PermissionManageIncomingWebhooks.Id,
model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.PermissionManageOutgoingWebhooks.Id,
model.PERMISSION_MANAGE_SLASH_COMMANDS.Id, model.PermissionManageSlashCommands.Id,
model.PERMISSION_MANAGE_OAUTH.Id, model.PermissionManageOAuth.Id,
model.PERMISSION_MANAGE_SYSTEM_WIDE_OAUTH.Id, model.PermissionManageSystemWideOAuth.Id,
model.PERMISSION_CREATE_EMOJIS.Id, model.PermissionCreateEmojis.Id,
model.PERMISSION_DELETE_EMOJIS.Id, model.PermissionDeleteEmojis.Id,
model.PERMISSION_EDIT_OTHERS_POSTS.Id, model.PermissionEditOthersPosts.Id,
} }
var notAllowedPermissions = []string{ var notAllowedPermissions = []string{
model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_SYSTEM_ROLES.Id, model.PermissionSysconsoleWriteUserManagementSystemRoles.Id,
model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_SYSTEM_ROLES.Id, model.PermissionSysconsoleReadUserManagementSystemRoles.Id,
model.PERMISSION_MANAGE_ROLES.Id, model.PermissionManageRoles.Id,
} }
func (api *API) InitRole() { func (api *API) InitRole() {
@@ -111,11 +111,11 @@ func patchRole(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("role", oldRole) auditRec.AddMeta("role", oldRole)
// manage_system permission is required to patch system_admin // manage_system permission is required to patch system_admin
requiredPermission := model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_PERMISSIONS requiredPermission := model.PermissionSysconsoleWriteUserManagementPermissions
specialProtectedSystemRoles := append(model.NewSystemRoleIDs, model.SYSTEM_ADMIN_ROLE_ID) specialProtectedSystemRoles := append(model.NewSystemRoleIDs, model.SystemAdminRoleId)
for _, roleID := range specialProtectedSystemRoles { for _, roleID := range specialProtectedSystemRoles {
if oldRole.Name == roleID { if oldRole.Name == roleID {
requiredPermission = model.PERMISSION_MANAGE_SYSTEM requiredPermission = model.PermissionManageSystem
} }
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), requiredPermission) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), requiredPermission) {
@@ -123,7 +123,7 @@ func patchRole(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
isGuest := oldRole.Name == model.SYSTEM_GUEST_ROLE_ID || oldRole.Name == model.TEAM_GUEST_ROLE_ID || oldRole.Name == model.CHANNEL_GUEST_ROLE_ID isGuest := oldRole.Name == model.SystemGuestRoleId || oldRole.Name == model.TeamGuestRoleId || oldRole.Name == model.ChannelGuestRoleId
if c.App.Srv().License() == nil && patch.Permissions != nil { if c.App.Srv().License() == nil && patch.Permissions != nil {
if isGuest { if isGuest {
c.Err = model.NewAppError("Api4.PatchRoles", "api.roles.patch_roles.license.error", nil, "", http.StatusNotImplemented) c.Err = model.NewAppError("Api4.PatchRoles", "api.roles.patch_roles.license.error", nil, "", http.StatusNotImplemented)
@@ -171,14 +171,14 @@ func patchRole(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if oldRole.Name == model.TEAM_ADMIN_ROLE_ID || oldRole.Name == model.CHANNEL_ADMIN_ROLE_ID || oldRole.Name == model.SYSTEM_USER_ROLE_ID || oldRole.Name == model.TEAM_USER_ROLE_ID || oldRole.Name == model.CHANNEL_USER_ROLE_ID || oldRole.Name == model.SYSTEM_GUEST_ROLE_ID || oldRole.Name == model.TEAM_GUEST_ROLE_ID || oldRole.Name == model.CHANNEL_GUEST_ROLE_ID { if oldRole.Name == model.TeamAdminRoleId || oldRole.Name == model.ChannelAdminRoleId || oldRole.Name == model.SystemUserRoleId || oldRole.Name == model.TeamUserRoleId || oldRole.Name == model.ChannelUserRoleId || oldRole.Name == model.SystemGuestRoleId || oldRole.Name == model.TeamGuestRoleId || oldRole.Name == model.ChannelGuestRoleId {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_PERMISSIONS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteUserManagementPermissions) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_PERMISSIONS) c.SetPermissionError(model.PermissionSysconsoleWriteUserManagementPermissions)
return return
} }
} else { } else {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_SYSTEM_ROLES) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteUserManagementSystemRoles) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_SYSTEM_ROLES) c.SetPermissionError(model.PermissionSysconsoleWriteUserManagementSystemRoles)
return return
} }
} }

Просмотреть файл

@@ -194,21 +194,21 @@ func TestPatchRole(t *testing.T) {
defer th.App.Srv().Store.Job().Delete(systemManager.Id) defer th.App.Srv().Store.Job().Delete(systemManager.Id)
patchWriteSystemRoles := &model.RolePatch{ patchWriteSystemRoles := &model.RolePatch{
Permissions: &[]string{model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_SYSTEM_ROLES.Id}, Permissions: &[]string{model.PermissionSysconsoleWriteUserManagementSystemRoles.Id},
} }
_, resp = client.PatchRole(systemManager.Id, patchWriteSystemRoles) _, resp = client.PatchRole(systemManager.Id, patchWriteSystemRoles)
CheckNotImplementedStatus(t, resp) CheckNotImplementedStatus(t, resp)
patchReadSystemRoles := &model.RolePatch{ patchReadSystemRoles := &model.RolePatch{
Permissions: &[]string{model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_SYSTEM_ROLES.Id}, Permissions: &[]string{model.PermissionSysconsoleReadUserManagementSystemRoles.Id},
} }
_, resp = client.PatchRole(systemManager.Id, patchReadSystemRoles) _, resp = client.PatchRole(systemManager.Id, patchReadSystemRoles)
CheckNotImplementedStatus(t, resp) CheckNotImplementedStatus(t, resp)
patchManageRoles := &model.RolePatch{ patchManageRoles := &model.RolePatch{
Permissions: &[]string{model.PERMISSION_MANAGE_ROLES.Id}, Permissions: &[]string{model.PermissionManageRoles.Id},
} }
_, resp = client.PatchRole(systemManager.Id, patchManageRoles) _, resp = client.PatchRole(systemManager.Id, patchManageRoles)

Просмотреть файл

@@ -69,8 +69,8 @@ func parseSamlCertificateRequest(r *http.Request, maxFileSize int64) (*multipart
} }
func addSamlPublicCertificate(c *Context, w http.ResponseWriter, r *http.Request) { func addSamlPublicCertificate(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_ADD_SAML_PUBLIC_CERT) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionAddSamlPublicCert) {
c.SetPermissionError(model.PERMISSION_ADD_SAML_PUBLIC_CERT) c.SetPermissionError(model.PermissionAddSamlPublicCert)
return return
} }
@@ -93,8 +93,8 @@ func addSamlPublicCertificate(c *Context, w http.ResponseWriter, r *http.Request
} }
func addSamlPrivateCertificate(c *Context, w http.ResponseWriter, r *http.Request) { func addSamlPrivateCertificate(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_ADD_SAML_PRIVATE_CERT) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionAddSamlPrivateCert) {
c.SetPermissionError(model.PERMISSION_ADD_SAML_PRIVATE_CERT) c.SetPermissionError(model.PermissionAddSamlPrivateCert)
return return
} }
@@ -117,8 +117,8 @@ func addSamlPrivateCertificate(c *Context, w http.ResponseWriter, r *http.Reques
} }
func addSamlIdpCertificate(c *Context, w http.ResponseWriter, r *http.Request) { func addSamlIdpCertificate(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_ADD_SAML_IDP_CERT) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionAddSamlIdpCert) {
c.SetPermissionError(model.PERMISSION_ADD_SAML_IDP_CERT) c.SetPermissionError(model.PermissionAddSamlIdpCert)
return return
} }
@@ -170,8 +170,8 @@ func addSamlIdpCertificate(c *Context, w http.ResponseWriter, r *http.Request) {
} }
func removeSamlPublicCertificate(c *Context, w http.ResponseWriter, r *http.Request) { func removeSamlPublicCertificate(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_REMOVE_SAML_PUBLIC_CERT) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionRemoveSamlPublicCert) {
c.SetPermissionError(model.PERMISSION_REMOVE_SAML_PUBLIC_CERT) c.SetPermissionError(model.PermissionRemoveSamlPublicCert)
return return
} }
@@ -188,8 +188,8 @@ func removeSamlPublicCertificate(c *Context, w http.ResponseWriter, r *http.Requ
} }
func removeSamlPrivateCertificate(c *Context, w http.ResponseWriter, r *http.Request) { func removeSamlPrivateCertificate(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_REMOVE_SAML_PRIVATE_CERT) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionRemoveSamlPrivateCert) {
c.SetPermissionError(model.PERMISSION_REMOVE_SAML_PRIVATE_CERT) c.SetPermissionError(model.PermissionRemoveSamlPrivateCert)
return return
} }
@@ -206,8 +206,8 @@ func removeSamlPrivateCertificate(c *Context, w http.ResponseWriter, r *http.Req
} }
func removeSamlIdpCertificate(c *Context, w http.ResponseWriter, r *http.Request) { func removeSamlIdpCertificate(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_REMOVE_SAML_IDP_CERT) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionRemoveSamlIdpCert) {
c.SetPermissionError(model.PERMISSION_REMOVE_SAML_IDP_CERT) c.SetPermissionError(model.PermissionRemoveSamlIdpCert)
return return
} }
@@ -224,8 +224,8 @@ func removeSamlIdpCertificate(c *Context, w http.ResponseWriter, r *http.Request
} }
func getSamlCertificateStatus(c *Context, w http.ResponseWriter, r *http.Request) { func getSamlCertificateStatus(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_GET_SAML_CERT_STATUS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionGetSamlCertStatus) {
c.SetPermissionError(model.PERMISSION_GET_SAML_CERT_STATUS) c.SetPermissionError(model.PermissionGetSamlCertStatus)
return return
} }
@@ -234,8 +234,8 @@ func getSamlCertificateStatus(c *Context, w http.ResponseWriter, r *http.Request
} }
func getSamlMetadataFromIdp(c *Context, w http.ResponseWriter, r *http.Request) { func getSamlMetadataFromIdp(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_GET_SAML_METADATA_FROM_IDP) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionGetSamlMetadataFromIdp) {
c.SetPermissionError(model.PERMISSION_GET_SAML_METADATA_FROM_IDP) c.SetPermissionError(model.PermissionGetSamlMetadataFromIdp)
return return
} }
@@ -256,8 +256,8 @@ func getSamlMetadataFromIdp(c *Context, w http.ResponseWriter, r *http.Request)
} }
func resetAuthDataToEmail(c *Context, w http.ResponseWriter, r *http.Request) { func resetAuthDataToEmail(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
type ResetAuthDataParams struct { type ResetAuthDataParams struct {

Просмотреть файл

@@ -35,11 +35,11 @@ func TestSamlCompleteCSRFPass(t *testing.T) {
} }
cookie1 := &http.Cookie{ cookie1 := &http.Cookie{
Name: model.SESSION_COOKIE_USER, Name: model.SessionCookieUser,
Value: th.BasicUser.Username, Value: th.BasicUser.Username,
} }
cookie2 := &http.Cookie{ cookie2 := &http.Cookie{
Name: model.SESSION_COOKIE_TOKEN, Name: model.SessionCookieToken,
Value: th.Client.AuthToken, Value: th.Client.AuthToken,
} }
req.AddCookie(cookie1) req.AddCookie(cookie1)
@@ -60,7 +60,7 @@ func TestSamlResetId(t *testing.T) {
user := th.BasicUser user := th.BasicUser
_, appErr := th.App.UpdateUserAuth(user.Id, &model.UserAuth{ _, appErr := th.App.UpdateUserAuth(user.Id, &model.UserAuth{
AuthData: model.NewString(model.NewId()), AuthData: model.NewString(model.NewId()),
AuthService: model.USER_AUTH_SERVICE_SAML, AuthService: model.UserAuthServiceSaml,
}) })
require.Nil(t, appErr) require.Nil(t, appErr)

Просмотреть файл

@@ -36,8 +36,8 @@ func createScheme(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_PERMISSIONS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteUserManagementPermissions) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_PERMISSIONS) c.SetPermissionError(model.PermissionSysconsoleWriteUserManagementPermissions)
return return
} }
@@ -60,8 +60,8 @@ func getScheme(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_PERMISSIONS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadUserManagementPermissions) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_PERMISSIONS) c.SetPermissionError(model.PermissionSysconsoleReadUserManagementPermissions)
return return
} }
@@ -75,13 +75,13 @@ func getScheme(c *Context, w http.ResponseWriter, r *http.Request) {
} }
func getSchemes(c *Context, w http.ResponseWriter, r *http.Request) { func getSchemes(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_PERMISSIONS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadUserManagementPermissions) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_PERMISSIONS) c.SetPermissionError(model.PermissionSysconsoleReadUserManagementPermissions)
return return
} }
scope := c.Params.Scope scope := c.Params.Scope
if scope != "" && scope != model.SCHEME_SCOPE_TEAM && scope != model.SCHEME_SCOPE_CHANNEL { if scope != "" && scope != model.SchemeScopeTeam && scope != model.SchemeScopeChannel {
c.SetInvalidParam("scope") c.SetInvalidParam("scope")
return return
} }
@@ -101,8 +101,8 @@ func getTeamsForScheme(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_TEAMS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadUserManagementTeams) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_TEAMS) c.SetPermissionError(model.PermissionSysconsoleReadUserManagementTeams)
return return
} }
@@ -112,7 +112,7 @@ func getTeamsForScheme(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if scheme.Scope != model.SCHEME_SCOPE_TEAM { if scheme.Scope != model.SchemeScopeTeam {
c.Err = model.NewAppError("Api4.GetTeamsForScheme", "api.scheme.get_teams_for_scheme.scope.error", nil, "", http.StatusBadRequest) c.Err = model.NewAppError("Api4.GetTeamsForScheme", "api.scheme.get_teams_for_scheme.scope.error", nil, "", http.StatusBadRequest)
return return
} }
@@ -132,8 +132,8 @@ func getChannelsForScheme(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_CHANNELS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadUserManagementChannels) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_CHANNELS) c.SetPermissionError(model.PermissionSysconsoleReadUserManagementChannels)
return return
} }
@@ -143,7 +143,7 @@ func getChannelsForScheme(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if scheme.Scope != model.SCHEME_SCOPE_CHANNEL { if scheme.Scope != model.SchemeScopeChannel {
c.Err = model.NewAppError("Api4.GetChannelsForScheme", "api.scheme.get_channels_for_scheme.scope.error", nil, "", http.StatusBadRequest) c.Err = model.NewAppError("Api4.GetChannelsForScheme", "api.scheme.get_channels_for_scheme.scope.error", nil, "", http.StatusBadRequest)
return return
} }
@@ -184,8 +184,8 @@ func patchScheme(c *Context, w http.ResponseWriter, r *http.Request) {
} }
auditRec.AddMeta("scheme", scheme) auditRec.AddMeta("scheme", scheme)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_PERMISSIONS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteUserManagementPermissions) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_PERMISSIONS) c.SetPermissionError(model.PermissionSysconsoleWriteUserManagementPermissions)
return return
} }
@@ -216,8 +216,8 @@ func deleteScheme(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_PERMISSIONS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteUserManagementPermissions) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_PERMISSIONS) c.SetPermissionError(model.PermissionSysconsoleWriteUserManagementPermissions)
return return
} }

Просмотреть файл

@@ -27,7 +27,7 @@ func TestCreateScheme(t *testing.T) {
DisplayName: model.NewId(), DisplayName: model.NewId(),
Name: model.NewId(), Name: model.NewId(),
Description: model.NewId(), Description: model.NewId(),
Scope: model.SCHEME_SCOPE_TEAM, Scope: model.SchemeScopeTeam,
} }
s1, r1 := th.SystemAdminClient.CreateScheme(scheme1) s1, r1 := th.SystemAdminClient.CreateScheme(scheme1)
@@ -66,7 +66,7 @@ func TestCreateScheme(t *testing.T) {
DisplayName: model.NewId(), DisplayName: model.NewId(),
Name: model.NewId(), Name: model.NewId(),
Description: model.NewId(), Description: model.NewId(),
Scope: model.SCHEME_SCOPE_CHANNEL, Scope: model.SchemeScopeChannel,
} }
s2, r2 := th.SystemAdminClient.CreateScheme(scheme2) s2, r2 := th.SystemAdminClient.CreateScheme(scheme2)
@@ -130,7 +130,7 @@ func TestCreateScheme(t *testing.T) {
DisplayName: model.NewId(), DisplayName: model.NewId(),
Name: model.NewId(), Name: model.NewId(),
Description: model.NewId(), Description: model.NewId(),
Scope: model.SCHEME_SCOPE_TEAM, Scope: model.SchemeScopeTeam,
} }
_, r5 := th.Client.CreateScheme(scheme5) _, r5 := th.Client.CreateScheme(scheme5)
CheckForbiddenStatus(t, r5) CheckForbiddenStatus(t, r5)
@@ -141,7 +141,7 @@ func TestCreateScheme(t *testing.T) {
DisplayName: model.NewId(), DisplayName: model.NewId(),
Name: model.NewId(), Name: model.NewId(),
Description: model.NewId(), Description: model.NewId(),
Scope: model.SCHEME_SCOPE_TEAM, Scope: model.SchemeScopeTeam,
} }
_, r6 := th.SystemAdminClient.CreateScheme(scheme6) _, r6 := th.SystemAdminClient.CreateScheme(scheme6)
CheckNotImplementedStatus(t, r6) CheckNotImplementedStatus(t, r6)
@@ -155,7 +155,7 @@ func TestCreateScheme(t *testing.T) {
DisplayName: model.NewId(), DisplayName: model.NewId(),
Name: model.NewId(), Name: model.NewId(),
Description: model.NewId(), Description: model.NewId(),
Scope: model.SCHEME_SCOPE_TEAM, Scope: model.SchemeScopeTeam,
} }
_, r7 := th.SystemAdminClient.CreateScheme(scheme7) _, r7 := th.SystemAdminClient.CreateScheme(scheme7)
CheckNotImplementedStatus(t, r7) CheckNotImplementedStatus(t, r7)
@@ -172,7 +172,7 @@ func TestGetScheme(t *testing.T) {
DisplayName: model.NewId(), DisplayName: model.NewId(),
Name: model.NewId(), Name: model.NewId(),
Description: model.NewId(), Description: model.NewId(),
Scope: model.SCHEME_SCOPE_TEAM, Scope: model.SchemeScopeTeam,
} }
th.App.SetPhase2PermissionsMigrationStatus(true) th.App.SetPhase2PermissionsMigrationStatus(true)
@@ -233,14 +233,14 @@ func TestGetSchemes(t *testing.T) {
DisplayName: model.NewId(), DisplayName: model.NewId(),
Name: model.NewId(), Name: model.NewId(),
Description: model.NewId(), Description: model.NewId(),
Scope: model.SCHEME_SCOPE_TEAM, Scope: model.SchemeScopeTeam,
} }
scheme2 := &model.Scheme{ scheme2 := &model.Scheme{
DisplayName: model.NewId(), DisplayName: model.NewId(),
Name: model.NewId(), Name: model.NewId(),
Description: model.NewId(), Description: model.NewId(),
Scope: model.SCHEME_SCOPE_CHANNEL, Scope: model.SchemeScopeChannel,
} }
th.App.SetPhase2PermissionsMigrationStatus(true) th.App.SetPhase2PermissionsMigrationStatus(true)
@@ -298,7 +298,7 @@ func TestGetTeamsForScheme(t *testing.T) {
DisplayName: model.NewId(), DisplayName: model.NewId(),
Name: model.NewId(), Name: model.NewId(),
Description: model.NewId(), Description: model.NewId(),
Scope: model.SCHEME_SCOPE_TEAM, Scope: model.SchemeScopeTeam,
} }
scheme1, r1 := th.SystemAdminClient.CreateScheme(scheme1) scheme1, r1 := th.SystemAdminClient.CreateScheme(scheme1)
CheckNoError(t, r1) CheckNoError(t, r1)
@@ -306,7 +306,7 @@ func TestGetTeamsForScheme(t *testing.T) {
team1 := &model.Team{ team1 := &model.Team{
Name: GenerateTestUsername(), Name: GenerateTestUsername(),
DisplayName: "A Test Team", DisplayName: "A Test Team",
Type: model.TEAM_OPEN, Type: model.TeamOpen,
} }
team1, err := th.App.Srv().Store.Team().Save(team1) team1, err := th.App.Srv().Store.Team().Save(team1)
@@ -328,7 +328,7 @@ func TestGetTeamsForScheme(t *testing.T) {
team2 := &model.Team{ team2 := &model.Team{
Name: GenerateTestUsername(), Name: GenerateTestUsername(),
DisplayName: "B Test Team", DisplayName: "B Test Team",
Type: model.TEAM_OPEN, Type: model.TeamOpen,
SchemeId: &scheme1.Id, SchemeId: &scheme1.Id,
} }
team2, err = th.App.Srv().Store.Team().Save(team2) team2, err = th.App.Srv().Store.Team().Save(team2)
@@ -364,7 +364,7 @@ func TestGetTeamsForScheme(t *testing.T) {
DisplayName: model.NewId(), DisplayName: model.NewId(),
Name: model.NewId(), Name: model.NewId(),
Description: model.NewId(), Description: model.NewId(),
Scope: model.SCHEME_SCOPE_CHANNEL, Scope: model.SchemeScopeChannel,
} }
scheme2, rs2 := th.SystemAdminClient.CreateScheme(scheme2) scheme2, rs2 := th.SystemAdminClient.CreateScheme(scheme2)
CheckNoError(t, rs2) CheckNoError(t, rs2)
@@ -390,7 +390,7 @@ func TestGetChannelsForScheme(t *testing.T) {
DisplayName: model.NewId(), DisplayName: model.NewId(),
Name: model.NewId(), Name: model.NewId(),
Description: model.NewId(), Description: model.NewId(),
Scope: model.SCHEME_SCOPE_CHANNEL, Scope: model.SchemeScopeChannel,
} }
scheme1, r1 := th.SystemAdminClient.CreateScheme(scheme1) scheme1, r1 := th.SystemAdminClient.CreateScheme(scheme1)
CheckNoError(t, r1) CheckNoError(t, r1)
@@ -399,7 +399,7 @@ func TestGetChannelsForScheme(t *testing.T) {
TeamId: model.NewId(), TeamId: model.NewId(),
DisplayName: "A Name", DisplayName: "A Name",
Name: model.NewId(), Name: model.NewId(),
Type: model.CHANNEL_OPEN, Type: model.ChannelTypeOpen,
} }
channel1, errCh := th.App.Srv().Store.Channel().Save(channel1, 1000000) channel1, errCh := th.App.Srv().Store.Channel().Save(channel1, 1000000)
@@ -422,7 +422,7 @@ func TestGetChannelsForScheme(t *testing.T) {
TeamId: model.NewId(), TeamId: model.NewId(),
DisplayName: "B Name", DisplayName: "B Name",
Name: model.NewId(), Name: model.NewId(),
Type: model.CHANNEL_OPEN, Type: model.ChannelTypeOpen,
SchemeId: &scheme1.Id, SchemeId: &scheme1.Id,
} }
channel2, nErr := th.App.Srv().Store.Channel().Save(channel2, 1000000) channel2, nErr := th.App.Srv().Store.Channel().Save(channel2, 1000000)
@@ -458,7 +458,7 @@ func TestGetChannelsForScheme(t *testing.T) {
DisplayName: model.NewId(), DisplayName: model.NewId(),
Name: model.NewId(), Name: model.NewId(),
Description: model.NewId(), Description: model.NewId(),
Scope: model.SCHEME_SCOPE_TEAM, Scope: model.SchemeScopeTeam,
} }
scheme2, rs2 := th.SystemAdminClient.CreateScheme(scheme2) scheme2, rs2 := th.SystemAdminClient.CreateScheme(scheme2)
CheckNoError(t, rs2) CheckNoError(t, rs2)
@@ -485,7 +485,7 @@ func TestPatchScheme(t *testing.T) {
DisplayName: model.NewId(), DisplayName: model.NewId(),
Name: model.NewId(), Name: model.NewId(),
Description: model.NewId(), Description: model.NewId(),
Scope: model.SCHEME_SCOPE_TEAM, Scope: model.SchemeScopeTeam,
} }
s1, r1 := th.SystemAdminClient.CreateScheme(scheme1) s1, r1 := th.SystemAdminClient.CreateScheme(scheme1)
@@ -593,7 +593,7 @@ func TestDeleteScheme(t *testing.T) {
DisplayName: model.NewId(), DisplayName: model.NewId(),
Name: model.NewId(), Name: model.NewId(),
Description: model.NewId(), Description: model.NewId(),
Scope: model.SCHEME_SCOPE_TEAM, Scope: model.SchemeScopeTeam,
} }
s1, r1 := th.SystemAdminClient.CreateScheme(scheme1) s1, r1 := th.SystemAdminClient.CreateScheme(scheme1)
@@ -625,7 +625,7 @@ func TestDeleteScheme(t *testing.T) {
Name: "zz" + model.NewId(), Name: "zz" + model.NewId(),
DisplayName: model.NewId(), DisplayName: model.NewId(),
Email: model.NewId() + "@nowhere.com", Email: model.NewId() + "@nowhere.com",
Type: model.TEAM_OPEN, Type: model.TeamOpen,
SchemeId: &s1.Id, SchemeId: &s1.Id,
}) })
require.NoError(t, err) require.NoError(t, err)
@@ -671,7 +671,7 @@ func TestDeleteScheme(t *testing.T) {
DisplayName: model.NewId(), DisplayName: model.NewId(),
Name: model.NewId(), Name: model.NewId(),
Description: model.NewId(), Description: model.NewId(),
Scope: model.SCHEME_SCOPE_CHANNEL, Scope: model.SchemeScopeChannel,
} }
s1, r1 := th.SystemAdminClient.CreateScheme(scheme1) s1, r1 := th.SystemAdminClient.CreateScheme(scheme1)
@@ -694,7 +694,7 @@ func TestDeleteScheme(t *testing.T) {
TeamId: model.NewId(), TeamId: model.NewId(),
DisplayName: model.NewId(), DisplayName: model.NewId(),
Name: model.NewId(), Name: model.NewId(),
Type: model.CHANNEL_OPEN, Type: model.ChannelTypeOpen,
SchemeId: &s1.Id, SchemeId: &s1.Id,
}, -1) }, -1)
assert.NoError(t, err) assert.NoError(t, err)
@@ -730,7 +730,7 @@ func TestDeleteScheme(t *testing.T) {
DisplayName: model.NewId(), DisplayName: model.NewId(),
Name: model.NewId(), Name: model.NewId(),
Description: model.NewId(), Description: model.NewId(),
Scope: model.SCHEME_SCOPE_CHANNEL, Scope: model.SchemeScopeChannel,
} }
s1, r1 := th.SystemAdminClient.CreateScheme(scheme1) s1, r1 := th.SystemAdminClient.CreateScheme(scheme1)
@@ -783,14 +783,14 @@ func TestUpdateTeamSchemeWithTeamMembers(t *testing.T) {
th.LoginBasic() th.LoginBasic()
_, resp := th.Client.CreateChannel(&model.Channel{DisplayName: "Test API Name", Name: GenerateTestChannelName(), Type: model.CHANNEL_OPEN, TeamId: team.Id}) _, resp := th.Client.CreateChannel(&model.Channel{DisplayName: "Test API Name", Name: GenerateTestChannelName(), Type: model.ChannelTypeOpen, TeamId: team.Id})
require.Nil(t, resp.Error) require.Nil(t, resp.Error)
team.SchemeId = &teamScheme.Id team.SchemeId = &teamScheme.Id
team, err = th.App.UpdateTeamScheme(team) team, err = th.App.UpdateTeamScheme(team)
require.Nil(t, err) require.Nil(t, err)
_, resp = th.Client.CreateChannel(&model.Channel{DisplayName: "Test API Name", Name: GenerateTestChannelName(), Type: model.CHANNEL_OPEN, TeamId: team.Id}) _, resp = th.Client.CreateChannel(&model.Channel{DisplayName: "Test API Name", Name: GenerateTestChannelName(), Type: model.ChannelTypeOpen, TeamId: team.Id})
require.NotNil(t, resp.Error) require.NotNil(t, resp.Error)
}) })
} }

Просмотреть файл

@@ -35,7 +35,7 @@ func TestGetAllSharedChannels(t *testing.T) {
// make some shared channels // make some shared channels
for i := 0; i < pages*pageSize; i++ { for i := 0; i < pages*pageSize; i++ {
channel := th.CreateChannelWithClientAndTeam(th.Client, model.CHANNEL_OPEN, th.BasicTeam.Id) channel := th.CreateChannelWithClientAndTeam(th.Client, model.ChannelTypeOpen, th.BasicTeam.Id)
sc := &model.SharedChannel{ sc := &model.SharedChannel{
ChannelId: channel.Id, ChannelId: channel.Id,
TeamId: channel.TeamId, TeamId: channel.TeamId,

Просмотреть файл

@@ -89,12 +89,12 @@ func updateUserStatus(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
currentStatus, err := c.App.GetStatus(c.Params.UserId) currentStatus, err := c.App.GetStatus(c.Params.UserId)
if err == nil && currentStatus.Status == model.STATUS_OUT_OF_OFFICE && status.Status != model.STATUS_OUT_OF_OFFICE { if err == nil && currentStatus.Status == model.StatusOutOfOffice && status.Status != model.StatusOutOfOffice {
c.App.DisableAutoResponder(c.Params.UserId, c.IsSystemAdmin()) c.App.DisableAutoResponder(c.Params.UserId, c.IsSystemAdmin())
} }
@@ -137,7 +137,7 @@ func updateUserCustomStatus(c *Context, w http.ResponseWriter, r *http.Request)
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -163,7 +163,7 @@ func removeUserCustomStatus(c *Context, w http.ResponseWriter, r *http.Request)
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -193,7 +193,7 @@ func removeUserRecentCustomStatus(c *Context, w http.ResponseWriter, r *http.Req
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }

Просмотреть файл

@@ -126,7 +126,7 @@ func getSystemPing(c *Context, w http.ResponseWriter, r *http.Request) {
reqs := c.App.Config().ClientRequirements reqs := c.App.Config().ClientRequirements
s := make(map[string]string) s := make(map[string]string)
s[model.STATUS] = model.STATUS_OK s[model.STATUS] = model.StatusOk
s["AndroidLatestVersion"] = reqs.AndroidLatestVersion s["AndroidLatestVersion"] = reqs.AndroidLatestVersion
s["AndroidMinVersion"] = reqs.AndroidMinVersion s["AndroidMinVersion"] = reqs.AndroidMinVersion
s["DesktopLatestVersion"] = reqs.DesktopLatestVersion s["DesktopLatestVersion"] = reqs.DesktopLatestVersion
@@ -142,7 +142,7 @@ func getSystemPing(c *Context, w http.ResponseWriter, r *http.Request) {
actualGoroutines := runtime.NumGoroutine() actualGoroutines := runtime.NumGoroutine()
if *c.App.Config().ServiceSettings.GoroutineHealthThreshold > 0 && actualGoroutines >= *c.App.Config().ServiceSettings.GoroutineHealthThreshold { if *c.App.Config().ServiceSettings.GoroutineHealthThreshold > 0 && actualGoroutines >= *c.App.Config().ServiceSettings.GoroutineHealthThreshold {
mlog.Warn("The number of running goroutines is over the health threshold", mlog.Int("goroutines", actualGoroutines), mlog.Int("health_threshold", *c.App.Config().ServiceSettings.GoroutineHealthThreshold)) mlog.Warn("The number of running goroutines is over the health threshold", mlog.Int("goroutines", actualGoroutines), mlog.Int("health_threshold", *c.App.Config().ServiceSettings.GoroutineHealthThreshold))
s[model.STATUS] = model.STATUS_UNHEALTHY s[model.STATUS] = model.StatusUnhealthy
} }
// Enhanced ping health check: // Enhanced ping health check:
@@ -150,32 +150,32 @@ func getSystemPing(c *Context, w http.ResponseWriter, r *http.Request) {
// database and file storage backends. // database and file storage backends.
if r.FormValue("get_server_status") != "" { if r.FormValue("get_server_status") != "" {
dbStatusKey := "database_status" dbStatusKey := "database_status"
s[dbStatusKey] = model.STATUS_OK s[dbStatusKey] = model.StatusOk
writeErr := c.App.DBHealthCheckWrite() writeErr := c.App.DBHealthCheckWrite()
if writeErr != nil { if writeErr != nil {
mlog.Warn("Unable to write to database.", mlog.Err(writeErr)) mlog.Warn("Unable to write to database.", mlog.Err(writeErr))
s[dbStatusKey] = model.STATUS_UNHEALTHY s[dbStatusKey] = model.StatusUnhealthy
s[model.STATUS] = model.STATUS_UNHEALTHY s[model.STATUS] = model.StatusUnhealthy
} }
writeErr = c.App.DBHealthCheckDelete() writeErr = c.App.DBHealthCheckDelete()
if writeErr != nil { if writeErr != nil {
mlog.Warn("Unable to remove ping health check value from database.", mlog.Err(writeErr)) mlog.Warn("Unable to remove ping health check value from database.", mlog.Err(writeErr))
s[dbStatusKey] = model.STATUS_UNHEALTHY s[dbStatusKey] = model.StatusUnhealthy
s[model.STATUS] = model.STATUS_UNHEALTHY s[model.STATUS] = model.StatusUnhealthy
} }
if s[dbStatusKey] == model.STATUS_OK { if s[dbStatusKey] == model.StatusOk {
mlog.Debug("Able to write to database.") mlog.Debug("Able to write to database.")
} }
filestoreStatusKey := "filestore_status" filestoreStatusKey := "filestore_status"
s[filestoreStatusKey] = model.STATUS_OK s[filestoreStatusKey] = model.StatusOk
appErr := c.App.TestFileStoreConnection() appErr := c.App.TestFileStoreConnection()
if appErr != nil { if appErr != nil {
s[filestoreStatusKey] = model.STATUS_UNHEALTHY s[filestoreStatusKey] = model.StatusUnhealthy
s[model.STATUS] = model.STATUS_UNHEALTHY s[model.STATUS] = model.StatusUnhealthy
} }
w.Header().Set(model.STATUS, s[model.STATUS]) w.Header().Set(model.STATUS, s[model.STATUS])
@@ -183,7 +183,7 @@ func getSystemPing(c *Context, w http.ResponseWriter, r *http.Request) {
w.Header().Set(filestoreStatusKey, s[filestoreStatusKey]) w.Header().Set(filestoreStatusKey, s[filestoreStatusKey])
} }
if s[model.STATUS] != model.STATUS_OK { if s[model.STATUS] != model.StatusOk {
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
} }
w.Write([]byte(model.MapToJson(s))) w.Write([]byte(model.MapToJson(s)))
@@ -195,8 +195,8 @@ func testEmail(c *Context, w http.ResponseWriter, r *http.Request) {
cfg = c.App.Config() cfg = c.App.Config()
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_TEST_EMAIL) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionTestEmail) {
c.SetPermissionError(model.PERMISSION_TEST_EMAIL) c.SetPermissionError(model.PermissionTestEmail)
return return
} }
@@ -215,8 +215,8 @@ func testEmail(c *Context, w http.ResponseWriter, r *http.Request) {
} }
func testSiteURL(c *Context, w http.ResponseWriter, r *http.Request) { func testSiteURL(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_TEST_SITE_URL) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionTestSiteUrl) {
c.SetPermissionError(model.PERMISSION_TEST_SITE_URL) c.SetPermissionError(model.PermissionTestSiteUrl)
return return
} }
@@ -245,8 +245,8 @@ func getAudits(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec := c.MakeAuditRecord("getAudits", audit.Fail) auditRec := c.MakeAuditRecord("getAudits", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_READ_AUDITS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionReadAudits) {
c.SetPermissionError(model.PERMISSION_READ_AUDITS) c.SetPermissionError(model.PermissionReadAudits)
return return
} }
@@ -264,8 +264,8 @@ func getAudits(c *Context, w http.ResponseWriter, r *http.Request) {
} }
func databaseRecycle(c *Context, w http.ResponseWriter, r *http.Request) { func databaseRecycle(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_RECYCLE_DATABASE_CONNECTIONS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionRecycleDatabaseConnections) {
c.SetPermissionError(model.PERMISSION_RECYCLE_DATABASE_CONNECTIONS) c.SetPermissionError(model.PermissionRecycleDatabaseConnections)
return return
} }
@@ -284,8 +284,8 @@ func databaseRecycle(c *Context, w http.ResponseWriter, r *http.Request) {
} }
func invalidateCaches(c *Context, w http.ResponseWriter, r *http.Request) { func invalidateCaches(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_INVALIDATE_CACHES) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionInvalidateCaches) {
c.SetPermissionError(model.PERMISSION_INVALIDATE_CACHES) c.SetPermissionError(model.PermissionInvalidateCaches)
return return
} }
@@ -318,8 +318,8 @@ func getLogs(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_GET_LOGS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionGetLogs) {
c.SetPermissionError(model.PERMISSION_GET_LOGS) c.SetPermissionError(model.PermissionGetLogs)
return return
} }
@@ -344,7 +344,7 @@ func postLog(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
forceToDebug = true forceToDebug = true
} }
} }
@@ -381,8 +381,8 @@ func getAnalytics(c *Context, w http.ResponseWriter, r *http.Request) {
name = "standard" name = "standard"
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_GET_ANALYTICS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionGetAnalytics) {
c.SetPermissionError(model.PERMISSION_GET_ANALYTICS) c.SetPermissionError(model.PermissionGetAnalytics)
return return
} }
@@ -421,8 +421,8 @@ func testS3(c *Context, w http.ResponseWriter, r *http.Request) {
cfg = c.App.Config() cfg = c.App.Config()
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_TEST_S3) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionTestS3) {
c.SetPermissionError(model.PERMISSION_TEST_S3) c.SetPermissionError(model.PermissionTestS3)
return return
} }
@@ -437,7 +437,7 @@ func testS3(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if *cfg.FileSettings.AmazonS3SecretAccessKey == model.FAKE_SETTING { if *cfg.FileSettings.AmazonS3SecretAccessKey == model.FakeSetting {
cfg.FileSettings.AmazonS3SecretAccessKey = c.App.Config().FileSettings.AmazonS3SecretAccessKey cfg.FileSettings.AmazonS3SecretAccessKey = c.App.Config().FileSettings.AmazonS3SecretAccessKey
} }
@@ -551,8 +551,8 @@ func pushNotificationAck(c *Context, w http.ResponseWriter, r *http.Request) {
} }
func setServerBusy(c *Context, w http.ResponseWriter, r *http.Request) { func setServerBusy(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -580,8 +580,8 @@ func setServerBusy(c *Context, w http.ResponseWriter, r *http.Request) {
} }
func clearServerBusy(c *Context, w http.ResponseWriter, r *http.Request) { func clearServerBusy(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -596,8 +596,8 @@ func clearServerBusy(c *Context, w http.ResponseWriter, r *http.Request) {
} }
func getServerBusyExpires(c *Context, w http.ResponseWriter, r *http.Request) { func getServerBusyExpires(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
w.Write([]byte(c.App.Srv().Busy.ToJson())) w.Write([]byte(c.App.Srv().Busy.ToJson()))
@@ -607,8 +607,8 @@ func upgradeToEnterprise(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec := c.MakeAuditRecord("upgradeToEnterprise", audit.Fail) auditRec := c.MakeAuditRecord("upgradeToEnterprise", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -663,8 +663,8 @@ func upgradeToEnterprise(c *Context, w http.ResponseWriter, r *http.Request) {
} }
func upgradeToEnterpriseStatus(c *Context, w http.ResponseWriter, r *http.Request) { func upgradeToEnterpriseStatus(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -691,8 +691,8 @@ func restart(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec := c.MakeAuditRecord("restartServer", audit.Fail) auditRec := c.MakeAuditRecord("restartServer", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -731,8 +731,8 @@ func sendWarnMetricAckEmail(c *Context, w http.ResponseWriter, r *http.Request)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
c.LogAudit("attempt") c.LogAudit("attempt")
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -768,8 +768,8 @@ func requestTrialLicenseAndAckWarnMetric(c *Context, w http.ResponseWriter, r *h
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
c.LogAudit("attempt") c.LogAudit("attempt")
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }

Просмотреть файл

@@ -29,7 +29,7 @@ func TestGetPing(t *testing.T) {
t.Run("healthy", func(t *testing.T) { t.Run("healthy", func(t *testing.T) {
status, resp := client.GetPing() status, resp := client.GetPing()
CheckNoError(t, resp) CheckNoError(t, resp)
assert.Equal(t, model.STATUS_OK, status) assert.Equal(t, model.StatusOk, status)
}) })
t.Run("unhealthy", func(t *testing.T) { t.Run("unhealthy", func(t *testing.T) {
@@ -41,7 +41,7 @@ func TestGetPing(t *testing.T) {
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.GoroutineHealthThreshold = 10 }) th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.GoroutineHealthThreshold = 10 })
status, resp := client.GetPing() status, resp := client.GetPing()
CheckInternalErrorStatus(t, resp) CheckInternalErrorStatus(t, resp)
assert.Equal(t, model.STATUS_UNHEALTHY, status) assert.Equal(t, model.StatusUnhealthy, status)
}) })
}, "basic ping") }, "basic ping")
@@ -50,7 +50,7 @@ func TestGetPing(t *testing.T) {
status, resp := client.GetPingWithServerStatus() status, resp := client.GetPingWithServerStatus()
CheckNoError(t, resp) CheckNoError(t, resp)
assert.Equal(t, model.STATUS_OK, status) assert.Equal(t, model.StatusOk, status)
}) })
t.Run("unhealthy", func(t *testing.T) { t.Run("unhealthy", func(t *testing.T) {
@@ -63,7 +63,7 @@ func TestGetPing(t *testing.T) {
status, resp := client.GetPingWithServerStatus() status, resp := client.GetPingWithServerStatus()
CheckInternalErrorStatus(t, resp) CheckInternalErrorStatus(t, resp)
assert.Equal(t, model.STATUS_UNHEALTHY, status) assert.Equal(t, model.StatusUnhealthy, status)
}) })
}, "with server status") }, "with server status")
@@ -148,7 +148,7 @@ func TestEmailTest(t *testing.T) {
SMTPServerTimeout: model.NewInt(15), SMTPServerTimeout: model.NewInt(15),
}, },
FileSettings: model.FileSettings{ FileSettings: model.FileSettings{
DriverName: model.NewString(model.IMAGE_DRIVER_LOCAL), DriverName: model.NewString(model.ImageDriverLocal),
Directory: model.NewString(dir), Directory: model.NewString(dir),
}, },
} }
@@ -472,9 +472,9 @@ func TestS3TestConnection(t *testing.T) {
s3Endpoint := fmt.Sprintf("%s:%s", s3Host, s3Port) s3Endpoint := fmt.Sprintf("%s:%s", s3Host, s3Port)
config := model.Config{ config := model.Config{
FileSettings: model.FileSettings{ FileSettings: model.FileSettings{
DriverName: model.NewString(model.IMAGE_DRIVER_S3), DriverName: model.NewString(model.ImageDriverS3),
AmazonS3AccessKeyId: model.NewString(model.MINIO_ACCESS_KEY), AmazonS3AccessKeyId: model.NewString(model.MinioAccessKey),
AmazonS3SecretAccessKey: model.NewString(model.MINIO_SECRET_KEY), AmazonS3SecretAccessKey: model.NewString(model.MinioSecretKey),
AmazonS3Bucket: model.NewString(""), AmazonS3Bucket: model.NewString(""),
AmazonS3Endpoint: model.NewString(s3Endpoint), AmazonS3Endpoint: model.NewString(s3Endpoint),
AmazonS3Region: model.NewString(""), AmazonS3Region: model.NewString(""),
@@ -494,7 +494,7 @@ func TestS3TestConnection(t *testing.T) {
require.Equal(t, resp.Error.Message, "S3 Bucket is required", "should return error - missing s3 bucket") require.Equal(t, resp.Error.Message, "S3 Bucket is required", "should return error - missing s3 bucket")
// If this fails, check the test configuration to ensure minio is setup with the // If this fails, check the test configuration to ensure minio is setup with the
// `mattermost-test` bucket defined by model.MINIO_BUCKET. // `mattermost-test` bucket defined by model.MINIO_BUCKET.
*config.FileSettings.AmazonS3Bucket = model.MINIO_BUCKET *config.FileSettings.AmazonS3Bucket = model.MinioBucket
config.FileSettings.AmazonS3PathPrefix = model.NewString("") config.FileSettings.AmazonS3PathPrefix = model.NewString("")
*config.FileSettings.AmazonS3Region = "us-east-1" *config.FileSettings.AmazonS3Region = "us-east-1"
_, resp = th.SystemAdminClient.TestS3Connection(&config) _, resp = th.SystemAdminClient.TestS3Connection(&config)
@@ -741,7 +741,7 @@ func TestPushNotificationAck(t *testing.T) {
handler := api.ApiHandler(pushNotificationAck) handler := api.ApiHandler(pushNotificationAck)
resp := httptest.NewRecorder() resp := httptest.NewRecorder()
req := httptest.NewRequest("POST", "/api/v4/notifications/ack", nil) req := httptest.NewRequest("POST", "/api/v4/notifications/ack", nil)
req.Header.Set(model.HEADER_AUTH, "Bearer "+session.Token) req.Header.Set(model.HeaderAuth, "Bearer "+session.Token)
handler.ServeHTTP(resp, req) handler.ServeHTTP(resp, req)
assert.Equal(t, http.StatusBadRequest, resp.Code) assert.Equal(t, http.StatusBadRequest, resp.Code)

Просмотреть файл

@@ -88,7 +88,7 @@ func createTeam(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("team", team) auditRec.AddMeta("team", team)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_CREATE_TEAM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionCreateTeam) {
c.Err = model.NewAppError("createTeam", "api.team.is_team_creation_allowed.disabled.app_error", nil, "", http.StatusForbidden) c.Err = model.NewAppError("createTeam", "api.team.is_team_creation_allowed.disabled.app_error", nil, "", http.StatusForbidden)
return return
} }
@@ -120,8 +120,8 @@ func getTeam(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if (!team.AllowOpenInvite || team.Type != model.TEAM_OPEN) && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), team.Id, model.PERMISSION_VIEW_TEAM) { if (!team.AllowOpenInvite || team.Type != model.TeamOpen) && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), team.Id, model.PermissionViewTeam) {
c.SetPermissionError(model.PERMISSION_VIEW_TEAM) c.SetPermissionError(model.PermissionViewTeam)
return return
} }
@@ -141,8 +141,8 @@ func getTeamByName(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if (!team.AllowOpenInvite || team.Type != model.TEAM_OPEN) && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), team.Id, model.PERMISSION_VIEW_TEAM) { if (!team.AllowOpenInvite || team.Type != model.TeamOpen) && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), team.Id, model.PermissionViewTeam) {
c.SetPermissionError(model.PERMISSION_VIEW_TEAM) c.SetPermissionError(model.PermissionViewTeam)
return return
} }
@@ -174,8 +174,8 @@ func updateTeam(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("team", team) auditRec.AddMeta("team", team)
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_MANAGE_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionManageTeam) {
c.SetPermissionError(model.PERMISSION_MANAGE_TEAM) c.SetPermissionError(model.PermissionManageTeam)
return return
} }
@@ -208,8 +208,8 @@ func patchTeam(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec := c.MakeAuditRecord("patchTeam", audit.Fail) auditRec := c.MakeAuditRecord("patchTeam", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_MANAGE_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionManageTeam) {
c.SetPermissionError(model.PERMISSION_MANAGE_TEAM) c.SetPermissionError(model.PermissionManageTeam)
return return
} }
@@ -243,8 +243,8 @@ func restoreTeam(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("team_id", c.Params.TeamId) auditRec.AddMeta("team_id", c.Params.TeamId)
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_MANAGE_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionManageTeam) {
c.SetPermissionError(model.PERMISSION_MANAGE_TEAM) c.SetPermissionError(model.PermissionManageTeam)
return return
} }
@@ -282,9 +282,9 @@ func updateTeamPrivacy(c *Context, w http.ResponseWriter, r *http.Request) {
var openInvite bool var openInvite bool
switch privacy { switch privacy {
case model.TEAM_OPEN: case model.TeamOpen:
openInvite = true openInvite = true
case model.TEAM_INVITE: case model.TeamInvite:
openInvite = false openInvite = false
default: default:
c.SetInvalidParam("privacy") c.SetInvalidParam("privacy")
@@ -295,9 +295,9 @@ func updateTeamPrivacy(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("privacy", privacy) auditRec.AddMeta("privacy", privacy)
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_MANAGE_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionManageTeam) {
auditRec.AddMeta("team_id", c.Params.TeamId) auditRec.AddMeta("team_id", c.Params.TeamId)
c.SetPermissionError(model.PERMISSION_MANAGE_TEAM) c.SetPermissionError(model.PermissionManageTeam)
return return
} }
@@ -325,8 +325,8 @@ func regenerateTeamInviteId(c *Context, w http.ResponseWriter, r *http.Request)
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_MANAGE_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionManageTeam) {
c.SetPermissionError(model.PERMISSION_MANAGE_TEAM) c.SetPermissionError(model.PermissionManageTeam)
return return
} }
@@ -354,8 +354,8 @@ func deleteTeam(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_MANAGE_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionManageTeam) {
c.SetPermissionError(model.PERMISSION_MANAGE_TEAM) c.SetPermissionError(model.PermissionManageTeam)
return return
} }
@@ -392,8 +392,8 @@ func getTeamsForUser(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if c.AppContext.Session().UserId != c.Params.UserId && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_USERS) { if c.AppContext.Session().UserId != c.Params.UserId && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadUserManagementUsers) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_USERS) c.SetPermissionError(model.PermissionSysconsoleReadUserManagementUsers)
return return
} }
@@ -413,8 +413,8 @@ func getTeamsUnreadForUser(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if c.AppContext.Session().UserId != c.Params.UserId && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if c.AppContext.Session().UserId != c.Params.UserId && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -436,8 +436,8 @@ func getTeamMember(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_VIEW_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionViewTeam) {
c.SetPermissionError(model.PERMISSION_VIEW_TEAM) c.SetPermissionError(model.PermissionViewTeam)
return return
} }
@@ -448,7 +448,7 @@ func getTeamMember(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if !canSee { if !canSee {
c.SetPermissionError(model.PERMISSION_VIEW_MEMBERS) c.SetPermissionError(model.PermissionViewMembers)
return return
} }
@@ -471,8 +471,8 @@ func getTeamMembers(c *Context, w http.ResponseWriter, r *http.Request) {
excludeDeletedUsers := r.URL.Query().Get("exclude_deleted_users") excludeDeletedUsers := r.URL.Query().Get("exclude_deleted_users")
excludeDeletedUsersBool, _ := strconv.ParseBool(excludeDeletedUsers) excludeDeletedUsersBool, _ := strconv.ParseBool(excludeDeletedUsers)
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_VIEW_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionViewTeam) {
c.SetPermissionError(model.PERMISSION_VIEW_TEAM) c.SetPermissionError(model.PermissionViewTeam)
return return
} }
@@ -503,8 +503,8 @@ func getTeamMembersForUser(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_READ_OTHER_USERS_TEAMS) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionReadOtherUsersTeams) {
c.SetPermissionError(model.PERMISSION_READ_OTHER_USERS_TEAMS) c.SetPermissionError(model.PermissionReadOtherUsersTeams)
return return
} }
@@ -515,7 +515,7 @@ func getTeamMembersForUser(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if !canSee { if !canSee {
c.SetPermissionError(model.PERMISSION_VIEW_MEMBERS) c.SetPermissionError(model.PermissionViewMembers)
return return
} }
@@ -541,8 +541,8 @@ func getTeamMembersByIds(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_VIEW_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionViewTeam) {
c.SetPermissionError(model.PERMISSION_VIEW_TEAM) c.SetPermissionError(model.PermissionViewTeam)
return return
} }
@@ -595,17 +595,17 @@ func addTeamMember(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if team.AllowOpenInvite && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_JOIN_PUBLIC_TEAMS) { if team.AllowOpenInvite && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionJoinPublicTeams) {
c.SetPermissionError(model.PERMISSION_JOIN_PUBLIC_TEAMS) c.SetPermissionError(model.PermissionJoinPublicTeams)
return return
} }
if !team.AllowOpenInvite && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_JOIN_PRIVATE_TEAMS) { if !team.AllowOpenInvite && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionJoinPrivateTeams) {
c.SetPermissionError(model.PERMISSION_JOIN_PRIVATE_TEAMS) c.SetPermissionError(model.PermissionJoinPrivateTeams)
return return
} }
} else { } else {
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), member.TeamId, model.PERMISSION_ADD_USER_TO_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), member.TeamId, model.PermissionAddUserToTeam) {
c.SetPermissionError(model.PERMISSION_ADD_USER_TO_TEAM) c.SetPermissionError(model.PermissionAddUserToTeam)
return return
} }
} }
@@ -660,7 +660,7 @@ func addUserToTeamFromInvite(c *Context, w http.ResponseWriter, r *http.Request)
if tokenId != "" { if tokenId != "" {
member, err = c.App.AddTeamMemberByToken(c.AppContext, c.AppContext.Session().UserId, tokenId) member, err = c.App.AddTeamMemberByToken(c.AppContext, c.AppContext.Session().UserId, tokenId)
} else if inviteId != "" { } else if inviteId != "" {
if c.AppContext.Session().Props[model.SESSION_PROP_IS_GUEST] == "true" { if c.AppContext.Session().Props[model.SessionPropIsGuest] == "true" {
c.Err = model.NewAppError("addUserToTeamFromInvite", "api.team.add_user_to_team_from_invite.guest.app_error", nil, "", http.StatusForbidden) c.Err = model.NewAppError("addUserToTeamFromInvite", "api.team.add_user_to_team_from_invite.guest.app_error", nil, "", http.StatusForbidden)
return return
} }
@@ -753,8 +753,8 @@ func addTeamMembers(c *Context, w http.ResponseWriter, r *http.Request) {
userIds = append(userIds, member.UserId) userIds = append(userIds, member.UserId)
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_ADD_USER_TO_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionAddUserToTeam) {
c.SetPermissionError(model.PERMISSION_ADD_USER_TO_TEAM) c.SetPermissionError(model.PermissionAddUserToTeam)
return return
} }
@@ -797,8 +797,8 @@ func removeTeamMember(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if c.AppContext.Session().UserId != c.Params.UserId { if c.AppContext.Session().UserId != c.Params.UserId {
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_REMOVE_USER_FROM_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionRemoveUserFromTeam) {
c.SetPermissionError(model.PERMISSION_REMOVE_USER_FROM_TEAM) c.SetPermissionError(model.PermissionRemoveUserFromTeam)
return return
} }
} }
@@ -838,12 +838,12 @@ func getTeamUnread(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_VIEW_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionViewTeam) {
c.SetPermissionError(model.PERMISSION_VIEW_TEAM) c.SetPermissionError(model.PermissionViewTeam)
return return
} }
@@ -862,8 +862,8 @@ func getTeamStats(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_VIEW_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionViewTeam) {
c.SetPermissionError(model.PERMISSION_VIEW_TEAM) c.SetPermissionError(model.PermissionViewTeam)
return return
} }
@@ -900,8 +900,8 @@ func updateTeamMemberRoles(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("roles", newRoles) auditRec.AddMeta("roles", newRoles)
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_MANAGE_TEAM_ROLES) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionManageTeamRoles) {
c.SetPermissionError(model.PERMISSION_MANAGE_TEAM_ROLES) c.SetPermissionError(model.PermissionManageTeamRoles)
return return
} }
@@ -933,8 +933,8 @@ func updateTeamMemberSchemeRoles(c *Context, w http.ResponseWriter, r *http.Requ
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("roles", schemeRoles) auditRec.AddMeta("roles", schemeRoles)
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_MANAGE_TEAM_ROLES) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionManageTeamRoles) {
c.SetPermissionError(model.PERMISSION_MANAGE_TEAM_ROLES) c.SetPermissionError(model.PermissionManageTeamRoles)
return return
} }
@@ -957,18 +957,18 @@ func getAllTeams(c *Context, w http.ResponseWriter, r *http.Request) {
opts := &model.TeamSearch{} opts := &model.TeamSearch{}
if c.Params.ExcludePolicyConstrained { if c.Params.ExcludePolicyConstrained {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadComplianceDataRetentionPolicy) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) c.SetPermissionError(model.PermissionSysconsoleReadComplianceDataRetentionPolicy)
return return
} }
opts.ExcludePolicyConstrained = model.NewBool(true) opts.ExcludePolicyConstrained = model.NewBool(true)
} }
if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) { if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadComplianceDataRetentionPolicy) {
opts.IncludePolicyID = model.NewBool(true) opts.IncludePolicyID = model.NewBool(true)
} }
listPrivate := c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_LIST_PRIVATE_TEAMS) listPrivate := c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionListPrivateTeams)
listPublic := c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_LIST_PUBLIC_TEAMS) listPublic := c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionListPublicTeams)
limit := c.Params.PerPage limit := c.Params.PerPage
offset := limit * c.Params.Page offset := limit * c.Params.Page
if listPrivate && listPublic { if listPrivate && listPublic {
@@ -1012,13 +1012,13 @@ func searchTeams(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
// Only system managers may use the ExcludePolicyConstrained field // Only system managers may use the ExcludePolicyConstrained field
if props.ExcludePolicyConstrained != nil && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) { if props.ExcludePolicyConstrained != nil && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadComplianceDataRetentionPolicy) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) c.SetPermissionError(model.PermissionSysconsoleReadComplianceDataRetentionPolicy)
return return
} }
// policy ID may only be used through the /data_retention/policies endpoint // policy ID may only be used through the /data_retention/policies endpoint
props.PolicyID = nil props.PolicyID = nil
if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY) { if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadComplianceDataRetentionPolicy) {
props.IncludePolicyID = model.NewBool(true) props.IncludePolicyID = model.NewBool(true)
} }
@@ -1026,15 +1026,15 @@ func searchTeams(c *Context, w http.ResponseWriter, r *http.Request) {
var totalCount int64 var totalCount int64
var err *model.AppError var err *model.AppError
if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_LIST_PRIVATE_TEAMS) && c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_LIST_PUBLIC_TEAMS) { if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionListPrivateTeams) && c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionListPublicTeams) {
teams, totalCount, err = c.App.SearchAllTeams(props) teams, totalCount, err = c.App.SearchAllTeams(props)
} else if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_LIST_PRIVATE_TEAMS) { } else if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionListPrivateTeams) {
if props.Page != nil || props.PerPage != nil { if props.Page != nil || props.PerPage != nil {
c.Err = model.NewAppError("searchTeams", "api.team.search_teams.pagination_not_implemented.private_team_search", nil, "", http.StatusNotImplemented) c.Err = model.NewAppError("searchTeams", "api.team.search_teams.pagination_not_implemented.private_team_search", nil, "", http.StatusNotImplemented)
return return
} }
teams, err = c.App.SearchPrivateTeams(props) teams, err = c.App.SearchPrivateTeams(props)
} else if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_LIST_PUBLIC_TEAMS) { } else if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionListPublicTeams) {
if props.Page != nil || props.PerPage != nil { if props.Page != nil || props.PerPage != nil {
c.Err = model.NewAppError("searchTeams", "api.team.search_teams.pagination_not_implemented.public_team_search", nil, "", http.StatusNotImplemented) c.Err = model.NewAppError("searchTeams", "api.team.search_teams.pagination_not_implemented.public_team_search", nil, "", http.StatusNotImplemented)
return return
@@ -1086,8 +1086,8 @@ func teamExists(c *Context, w http.ResponseWriter, r *http.Request) {
// Verify that the user can see the team (be a member or have the permission to list the team) // Verify that the user can see the team (be a member or have the permission to list the team)
if (teamMember != nil && teamMember.DeleteAt == 0) || if (teamMember != nil && teamMember.DeleteAt == 0) ||
(team.AllowOpenInvite && c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_LIST_PUBLIC_TEAMS)) || (team.AllowOpenInvite && c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionListPublicTeams)) ||
(!team.AllowOpenInvite && c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_LIST_PRIVATE_TEAMS)) { (!team.AllowOpenInvite && c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionListPrivateTeams)) {
exists = true exists = true
} }
} }
@@ -1107,8 +1107,8 @@ func importTeam(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_IMPORT_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionImportTeam) {
c.SetPermissionError(model.PERMISSION_IMPORT_TEAM) c.SetPermissionError(model.PermissionImportTeam)
return return
} }
@@ -1193,13 +1193,13 @@ func inviteUsersToTeam(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_INVITE_USER) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionInviteUser) {
c.SetPermissionError(model.PERMISSION_INVITE_USER) c.SetPermissionError(model.PermissionInviteUser)
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_ADD_USER_TO_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionAddUserToTeam) {
c.SetPermissionError(model.PERMISSION_INVITE_USER) c.SetPermissionError(model.PermissionInviteUser)
return return
} }
@@ -1250,7 +1250,7 @@ func inviteUsersToTeam(c *Context, w http.ResponseWriter, r *http.Request) {
} }
// we then manually schedule the job // we then manually schedule the job
_, e := c.App.Srv().Jobs.CreateJob(model.JOB_TYPE_RESEND_INVITATION_EMAIL, jobData) _, e := c.App.Srv().Jobs.CreateJob(model.JobTypeResendInvitationEmail, jobData)
if e != nil { if e != nil {
c.Err = model.NewAppError("Api4.inviteUsersToTeam", e.Id, nil, e.Error(), e.StatusCode) c.Err = model.NewAppError("Api4.inviteUsersToTeam", e.Id, nil, e.Error(), e.StatusCode)
return return
@@ -1313,8 +1313,8 @@ func inviteGuestsToChannels(c *Context, w http.ResponseWriter, r *http.Request)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("team_id", c.Params.TeamId) auditRec.AddMeta("team_id", c.Params.TeamId)
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_INVITE_GUEST) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionInviteGuest) {
c.SetPermissionError(model.PERMISSION_INVITE_GUEST) c.SetPermissionError(model.PermissionInviteGuest)
return return
} }
@@ -1400,7 +1400,7 @@ func getInviteInfo(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if team.Type != model.TEAM_OPEN { if team.Type != model.TeamOpen {
c.Err = model.NewAppError("getInviteInfo", "api.team.get_invite_info.not_open_team", nil, "id="+c.Params.InviteId, http.StatusForbidden) c.Err = model.NewAppError("getInviteInfo", "api.team.get_invite_info.not_open_team", nil, "id="+c.Params.InviteId, http.StatusForbidden)
return return
} }
@@ -1414,8 +1414,8 @@ func getInviteInfo(c *Context, w http.ResponseWriter, r *http.Request) {
} }
func invalidateAllEmailInvites(c *Context, w http.ResponseWriter, r *http.Request) { func invalidateAllEmailInvites(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_INVALIDATE_EMAIL_INVITE) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionInvalidateEmailInvite) {
c.SetPermissionError(model.PERMISSION_INVALIDATE_EMAIL_INVITE) c.SetPermissionError(model.PermissionInvalidateEmailInvite)
return return
} }
@@ -1444,9 +1444,9 @@ func getTeamIcon(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_VIEW_TEAM) && if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionViewTeam) &&
(team.Type != model.TEAM_OPEN || !team.AllowOpenInvite) { (team.Type != model.TeamOpen || !team.AllowOpenInvite) {
c.SetPermissionError(model.PERMISSION_VIEW_TEAM) c.SetPermissionError(model.PermissionViewTeam)
return return
} }
@@ -1464,7 +1464,7 @@ func getTeamIcon(c *Context, w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "image/png") w.Header().Set("Content-Type", "image/png")
w.Header().Set("Cache-Control", fmt.Sprintf("max-age=%v, private", 24*60*60)) // 24 hrs w.Header().Set("Cache-Control", fmt.Sprintf("max-age=%v, private", 24*60*60)) // 24 hrs
w.Header().Set(model.HEADER_ETAG_SERVER, etag) w.Header().Set(model.HeaderEtagServer, etag)
w.Write(img) w.Write(img)
} }
@@ -1480,8 +1480,8 @@ func setTeamIcon(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("team_id", c.Params.TeamId) auditRec.AddMeta("team_id", c.Params.TeamId)
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_MANAGE_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionManageTeam) {
c.SetPermissionError(model.PERMISSION_MANAGE_TEAM) c.SetPermissionError(model.PermissionManageTeam)
return return
} }
@@ -1531,8 +1531,8 @@ func removeTeamIcon(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("team_id", c.Params.TeamId) auditRec.AddMeta("team_id", c.Params.TeamId)
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PERMISSION_MANAGE_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), c.Params.TeamId, model.PermissionManageTeam) {
c.SetPermissionError(model.PERMISSION_MANAGE_TEAM) c.SetPermissionError(model.PermissionManageTeam)
return return
} }
@@ -1567,8 +1567,8 @@ func updateTeamScheme(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_PERMISSIONS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteUserManagementPermissions) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_PERMISSIONS) c.SetPermissionError(model.PermissionSysconsoleWriteUserManagementPermissions)
return return
} }
@@ -1580,7 +1580,7 @@ func updateTeamScheme(c *Context, w http.ResponseWriter, r *http.Request) {
} }
auditRec.AddMeta("scheme", scheme) auditRec.AddMeta("scheme", scheme)
if scheme.Scope != model.SCHEME_SCOPE_TEAM { if scheme.Scope != model.SchemeScopeTeam {
c.Err = model.NewAppError("Api4.UpdateTeamScheme", "api.team.update_team_scheme.scheme_scope.error", nil, "", http.StatusBadRequest) c.Err = model.NewAppError("Api4.UpdateTeamScheme", "api.team.update_team_scheme.scheme_scope.error", nil, "", http.StatusBadRequest)
return return
} }
@@ -1627,8 +1627,8 @@ func teamMembersMinusGroupMembers(c *Context, w http.ResponseWriter, r *http.Req
groupIDs = append(groupIDs, gid) groupIDs = append(groupIDs, gid)
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_GROUPS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadUserManagementGroups) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_GROUPS) c.SetPermissionError(model.PermissionSysconsoleReadUserManagementGroups)
return return
} }

Просмотреть файл

@@ -27,7 +27,7 @@ func TestCreateTeam(t *testing.T) {
defer th.TearDown() defer th.TearDown()
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) { th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
team := &model.Team{Name: GenerateTestUsername(), DisplayName: "Some Team", Type: model.TEAM_OPEN} team := &model.Team{Name: GenerateTestUsername(), DisplayName: "Some Team", Type: model.TeamOpen}
rteam, resp := client.CreateTeam(team) rteam, resp := client.CreateTeam(team)
CheckNoError(t, resp) CheckNoError(t, resp)
CheckCreatedStatus(t, resp) CheckCreatedStatus(t, resp)
@@ -57,7 +57,7 @@ func TestCreateTeam(t *testing.T) {
require.Equalf(t, r.StatusCode, http.StatusBadRequest, "wrong status code, actual: %s, expected: %s", strconv.Itoa(r.StatusCode), strconv.Itoa(http.StatusBadRequest)) require.Equalf(t, r.StatusCode, http.StatusBadRequest, "wrong status code, actual: %s, expected: %s", strconv.Itoa(r.StatusCode), strconv.Itoa(http.StatusBadRequest))
// Test GroupConstrained flag // Test GroupConstrained flag
groupConstrainedTeam := &model.Team{Name: GenerateTestUsername(), DisplayName: "Some Team", Type: model.TEAM_OPEN, GroupConstrained: model.NewBool(true)} groupConstrainedTeam := &model.Team{Name: GenerateTestUsername(), DisplayName: "Some Team", Type: model.TeamOpen, GroupConstrained: model.NewBool(true)}
rteam, resp = client.CreateTeam(groupConstrainedTeam) rteam, resp = client.CreateTeam(groupConstrainedTeam)
CheckNoError(t, resp) CheckNoError(t, resp)
CheckCreatedStatus(t, resp) CheckCreatedStatus(t, resp)
@@ -67,7 +67,7 @@ func TestCreateTeam(t *testing.T) {
th.Client.Logout() th.Client.Logout()
team := &model.Team{Name: GenerateTestUsername(), DisplayName: "Some Team", Type: model.TEAM_OPEN} team := &model.Team{Name: GenerateTestUsername(), DisplayName: "Some Team", Type: model.TeamOpen}
_, resp := th.Client.CreateTeam(team) _, resp := th.Client.CreateTeam(team)
CheckUnauthorizedStatus(t, resp) CheckUnauthorizedStatus(t, resp)
@@ -79,8 +79,8 @@ func TestCreateTeam(t *testing.T) {
th.RestoreDefaultRolePermissions(defaultRolePermissions) th.RestoreDefaultRolePermissions(defaultRolePermissions)
}() }()
th.RemovePermissionFromRole(model.PERMISSION_CREATE_TEAM.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionCreateTeam.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_CREATE_TEAM.Id, model.SYSTEM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionCreateTeam.Id, model.SystemAdminRoleId)
_, resp = th.Client.CreateTeam(team) _, resp = th.Client.CreateTeam(team)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
@@ -97,7 +97,7 @@ func TestCreateTeamSanitization(t *testing.T) {
DisplayName: t.Name() + "_1", DisplayName: t.Name() + "_1",
Name: GenerateTestTeamName(), Name: GenerateTestTeamName(),
Email: th.GenerateTestEmail(), Email: th.GenerateTestEmail(),
Type: model.TEAM_OPEN, Type: model.TeamOpen,
AllowedDomains: "simulator.amazonses.com,localhost", AllowedDomains: "simulator.amazonses.com,localhost",
} }
@@ -112,7 +112,7 @@ func TestCreateTeamSanitization(t *testing.T) {
DisplayName: t.Name() + "_2", DisplayName: t.Name() + "_2",
Name: GenerateTestTeamName(), Name: GenerateTestTeamName(),
Email: th.GenerateTestEmail(), Email: th.GenerateTestEmail(),
Type: model.TEAM_OPEN, Type: model.TeamOpen,
AllowedDomains: "simulator.amazonses.com,localhost", AllowedDomains: "simulator.amazonses.com,localhost",
} }
@@ -147,10 +147,10 @@ func TestGetTeam(t *testing.T) {
th.LoginTeamAdmin() th.LoginTeamAdmin()
team2 := &model.Team{DisplayName: "Name", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TEAM_OPEN, AllowOpenInvite: false} team2 := &model.Team{DisplayName: "Name", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TeamOpen, AllowOpenInvite: false}
rteam2, _ := Client.CreateTeam(team2) rteam2, _ := Client.CreateTeam(team2)
team3 := &model.Team{DisplayName: "Name", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TEAM_INVITE, AllowOpenInvite: true} team3 := &model.Team{DisplayName: "Name", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TeamInvite, AllowOpenInvite: true}
rteam3, _ := Client.CreateTeam(team3) rteam3, _ := Client.CreateTeam(team3)
th.LoginBasic() th.LoginBasic()
@@ -180,7 +180,7 @@ func TestGetTeamSanitization(t *testing.T) {
DisplayName: t.Name() + "_1", DisplayName: t.Name() + "_1",
Name: GenerateTestTeamName(), Name: GenerateTestTeamName(),
Email: th.GenerateTestEmail(), Email: th.GenerateTestEmail(),
Type: model.TEAM_OPEN, Type: model.TeamOpen,
AllowedDomains: "simulator.amazonses.com,localhost", AllowedDomains: "simulator.amazonses.com,localhost",
}) })
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -199,7 +199,7 @@ func TestGetTeamSanitization(t *testing.T) {
}) })
t.Run("team user without invite permissions", func(t *testing.T) { t.Run("team user without invite permissions", func(t *testing.T) {
th.RemovePermissionFromRole(model.PERMISSION_INVITE_USER.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionInviteUser.Id, model.TeamUserRoleId)
th.LinkUserToTeam(th.BasicUser2, team) th.LinkUserToTeam(th.BasicUser2, team)
client := th.CreateClient() client := th.CreateClient()
@@ -264,7 +264,7 @@ func TestUpdateTeam(t *testing.T) {
defer th.TearDown() defer th.TearDown()
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) { th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
team := &model.Team{DisplayName: "Name", Description: "Some description", AllowOpenInvite: false, InviteId: "inviteid0", Name: "z-z-" + model.NewRandomTeamName() + "a", Email: "success+" + model.NewId() + "@simulator.amazonses.com", Type: model.TEAM_OPEN} team := &model.Team{DisplayName: "Name", Description: "Some description", AllowOpenInvite: false, InviteId: "inviteid0", Name: "z-z-" + model.NewRandomTeamName() + "a", Email: "success+" + model.NewId() + "@simulator.amazonses.com", Type: model.TeamOpen}
var resp *model.Response var resp *model.Response
team, resp = th.Client.CreateTeam(team) team, resp = th.Client.CreateTeam(team)
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -321,11 +321,11 @@ func TestUpdateTeam(t *testing.T) {
require.NotEqual(t, uteam.Email, "test@domain.com", "Should not update email") require.NotEqual(t, uteam.Email, "test@domain.com", "Should not update email")
team.Type = model.TEAM_INVITE team.Type = model.TeamInvite
uteam, resp = client.UpdateTeam(team) uteam, resp = client.UpdateTeam(team)
CheckNoError(t, resp) CheckNoError(t, resp)
require.NotEqual(t, uteam.Type, model.TEAM_INVITE, "Should not update type") require.NotEqual(t, uteam.Type, model.TeamInvite, "Should not update type")
originalTeamId := team.Id originalTeamId := team.Id
team.Id = model.NewId() team.Id = model.NewId()
@@ -346,7 +346,7 @@ func TestUpdateTeam(t *testing.T) {
}) })
th.TestForSystemAdminAndLocal(t, func(t *testing.T, client *model.Client4) { th.TestForSystemAdminAndLocal(t, func(t *testing.T, client *model.Client4) {
team := &model.Team{DisplayName: "New", Description: "Some description", AllowOpenInvite: false, InviteId: "inviteid0", Name: "z-z-" + model.NewRandomTeamName() + "a", Email: "success+" + model.NewId() + "@simulator.amazonses.com", Type: model.TEAM_OPEN} team := &model.Team{DisplayName: "New", Description: "Some description", AllowOpenInvite: false, InviteId: "inviteid0", Name: "z-z-" + model.NewRandomTeamName() + "a", Email: "success+" + model.NewId() + "@simulator.amazonses.com", Type: model.TeamOpen}
var resp *model.Response var resp *model.Response
team, resp = client.CreateTeam(team) team, resp = client.CreateTeam(team)
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -365,7 +365,7 @@ func TestUpdateTeamSanitization(t *testing.T) {
DisplayName: t.Name() + "_1", DisplayName: t.Name() + "_1",
Name: GenerateTestTeamName(), Name: GenerateTestTeamName(),
Email: th.GenerateTestEmail(), Email: th.GenerateTestEmail(),
Type: model.TEAM_OPEN, Type: model.TeamOpen,
AllowedDomains: "simulator.amazonses.com,localhost", AllowedDomains: "simulator.amazonses.com,localhost",
}) })
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -393,7 +393,7 @@ func TestPatchTeam(t *testing.T) {
th := Setup(t).InitBasic() th := Setup(t).InitBasic()
defer th.TearDown() defer th.TearDown()
team := &model.Team{DisplayName: "Name", Description: "Some description", CompanyName: "Some company name", AllowOpenInvite: false, InviteId: "inviteid0", Name: "z-z-" + model.NewRandomTeamName() + "a", Email: "success+" + model.NewId() + "@simulator.amazonses.com", Type: model.TEAM_OPEN} team := &model.Team{DisplayName: "Name", Description: "Some description", CompanyName: "Some company name", AllowOpenInvite: false, InviteId: "inviteid0", Name: "z-z-" + model.NewRandomTeamName() + "a", Email: "success+" + model.NewId() + "@simulator.amazonses.com", Type: model.TeamOpen}
team, _ = th.Client.CreateTeam(team) team, _ = th.Client.CreateTeam(team)
patch := &model.TeamPatch{} patch := &model.TeamPatch{}
@@ -425,7 +425,7 @@ func TestPatchTeam(t *testing.T) {
require.True(t, rteam.AllowOpenInvite, "AllowOpenInvite did not update properly") require.True(t, rteam.AllowOpenInvite, "AllowOpenInvite did not update properly")
t.Run("Changing AllowOpenInvite to false regenerates InviteID", func(t *testing.T) { t.Run("Changing AllowOpenInvite to false regenerates InviteID", func(t *testing.T) {
team2 := &model.Team{DisplayName: "Name2", Description: "Some description", CompanyName: "Some company name", AllowOpenInvite: true, InviteId: model.NewId(), Name: "z-z-" + model.NewRandomTeamName() + "a", Email: "success+" + model.NewId() + "@simulator.amazonses.com", Type: model.TEAM_OPEN} team2 := &model.Team{DisplayName: "Name2", Description: "Some description", CompanyName: "Some company name", AllowOpenInvite: true, InviteId: model.NewId(), Name: "z-z-" + model.NewRandomTeamName() + "a", Email: "success+" + model.NewId() + "@simulator.amazonses.com", Type: model.TeamOpen}
team2, _ = client.CreateTeam(team2) team2, _ = client.CreateTeam(team2)
patch2 := &model.TeamPatch{ patch2 := &model.TeamPatch{
@@ -440,7 +440,7 @@ func TestPatchTeam(t *testing.T) {
}) })
t.Run("Changing AllowOpenInvite to true doesn't regenerate InviteID", func(t *testing.T) { t.Run("Changing AllowOpenInvite to true doesn't regenerate InviteID", func(t *testing.T) {
team2 := &model.Team{DisplayName: "Name3", Description: "Some description", CompanyName: "Some company name", AllowOpenInvite: false, InviteId: model.NewId(), Name: "z-z-" + model.NewRandomTeamName() + "a", Email: "success+" + model.NewId() + "@simulator.amazonses.com", Type: model.TEAM_OPEN} team2 := &model.Team{DisplayName: "Name3", Description: "Some description", CompanyName: "Some company name", AllowOpenInvite: false, InviteId: model.NewId(), Name: "z-z-" + model.NewRandomTeamName() + "a", Email: "success+" + model.NewId() + "@simulator.amazonses.com", Type: model.TeamOpen}
team2, _ = client.CreateTeam(team2) team2, _ = client.CreateTeam(team2)
patch2 := &model.TeamPatch{ patch2 := &model.TeamPatch{
@@ -487,7 +487,7 @@ func TestRestoreTeam(t *testing.T) {
DisplayName: "Some Team", DisplayName: "Some Team",
Description: "Some description", Description: "Some description",
CompanyName: "Some company name", CompanyName: "Some company name",
AllowOpenInvite: (teamType == model.TEAM_OPEN), AllowOpenInvite: (teamType == model.TeamOpen),
InviteId: model.NewId(), InviteId: model.NewId(),
Name: "aa-" + model.NewRandomTeamName() + "zz", Name: "aa-" + model.NewRandomTeamName() + "zz",
Email: "success+" + model.NewId() + "@simulator.amazonses.com", Email: "success+" + model.NewId() + "@simulator.amazonses.com",
@@ -501,7 +501,7 @@ func TestRestoreTeam(t *testing.T) {
} }
return team return team
} }
teamPublic := createTeam(t, true, model.TEAM_OPEN) teamPublic := createTeam(t, true, model.TeamOpen)
t.Run("invalid team", func(t *testing.T) { t.Run("invalid team", func(t *testing.T) {
_, resp := Client.RestoreTeam(model.NewId()) _, resp := Client.RestoreTeam(model.NewId())
@@ -509,27 +509,27 @@ func TestRestoreTeam(t *testing.T) {
}) })
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) { th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
team := createTeam(t, true, model.TEAM_OPEN) team := createTeam(t, true, model.TeamOpen)
team, resp := client.RestoreTeam(team.Id) team, resp := client.RestoreTeam(team.Id)
CheckOKStatus(t, resp) CheckOKStatus(t, resp)
require.Zero(t, team.DeleteAt) require.Zero(t, team.DeleteAt)
require.Equal(t, model.TEAM_OPEN, team.Type) require.Equal(t, model.TeamOpen, team.Type)
}, "restore archived public team") }, "restore archived public team")
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) { th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
team := createTeam(t, true, model.TEAM_INVITE) team := createTeam(t, true, model.TeamInvite)
team, resp := client.RestoreTeam(team.Id) team, resp := client.RestoreTeam(team.Id)
CheckOKStatus(t, resp) CheckOKStatus(t, resp)
require.Zero(t, team.DeleteAt) require.Zero(t, team.DeleteAt)
require.Equal(t, model.TEAM_INVITE, team.Type) require.Equal(t, model.TeamInvite, team.Type)
}, "restore archived private team") }, "restore archived private team")
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) { th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
team := createTeam(t, false, model.TEAM_OPEN) team := createTeam(t, false, model.TeamOpen)
team, resp := client.RestoreTeam(team.Id) team, resp := client.RestoreTeam(team.Id)
CheckOKStatus(t, resp) CheckOKStatus(t, resp)
require.Zero(t, team.DeleteAt) require.Zero(t, team.DeleteAt)
require.Equal(t, model.TEAM_OPEN, team.Type) require.Equal(t, model.TeamOpen, team.Type)
}, "restore active public team") }, "restore active public team")
t.Run("not logged in", func(t *testing.T) { t.Run("not logged in", func(t *testing.T) {
@@ -558,7 +558,7 @@ func TestPatchTeamSanitization(t *testing.T) {
DisplayName: t.Name() + "_1", DisplayName: t.Name() + "_1",
Name: GenerateTestTeamName(), Name: GenerateTestTeamName(),
Email: th.GenerateTestEmail(), Email: th.GenerateTestEmail(),
Type: model.TEAM_OPEN, Type: model.TeamOpen,
AllowedDomains: "simulator.amazonses.com,localhost", AllowedDomains: "simulator.amazonses.com,localhost",
}) })
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -602,11 +602,11 @@ func TestUpdateTeamPrivacy(t *testing.T) {
return team return team
} }
teamPublic := createTeam(model.TEAM_OPEN, true) teamPublic := createTeam(model.TeamOpen, true)
teamPrivate := createTeam(model.TEAM_INVITE, false) teamPrivate := createTeam(model.TeamInvite, false)
teamPublic2 := createTeam(model.TEAM_OPEN, true) teamPublic2 := createTeam(model.TeamOpen, true)
teamPrivate2 := createTeam(model.TEAM_INVITE, false) teamPrivate2 := createTeam(model.TeamInvite, false)
tests := []struct { tests := []struct {
name string name string
@@ -618,11 +618,11 @@ func TestUpdateTeamPrivacy(t *testing.T) {
wantInviteIdChanged bool wantInviteIdChanged bool
originalInviteId string originalInviteId string
}{ }{
{name: "bad privacy", team: teamPublic, privacy: "blap", errChecker: CheckBadRequestStatus, wantType: model.TEAM_OPEN, wantOpenInvite: true}, {name: "bad privacy", team: teamPublic, privacy: "blap", errChecker: CheckBadRequestStatus, wantType: model.TeamOpen, wantOpenInvite: true},
{name: "public to private", team: teamPublic, privacy: model.TEAM_INVITE, errChecker: nil, wantType: model.TEAM_INVITE, wantOpenInvite: false, originalInviteId: teamPublic.InviteId, wantInviteIdChanged: true}, {name: "public to private", team: teamPublic, privacy: model.TeamInvite, errChecker: nil, wantType: model.TeamInvite, wantOpenInvite: false, originalInviteId: teamPublic.InviteId, wantInviteIdChanged: true},
{name: "private to public", team: teamPrivate, privacy: model.TEAM_OPEN, errChecker: nil, wantType: model.TEAM_OPEN, wantOpenInvite: true, originalInviteId: teamPrivate.InviteId, wantInviteIdChanged: false}, {name: "private to public", team: teamPrivate, privacy: model.TeamOpen, errChecker: nil, wantType: model.TeamOpen, wantOpenInvite: true, originalInviteId: teamPrivate.InviteId, wantInviteIdChanged: false},
{name: "public to public", team: teamPublic2, privacy: model.TEAM_OPEN, errChecker: nil, wantType: model.TEAM_OPEN, wantOpenInvite: true, originalInviteId: teamPublic2.InviteId, wantInviteIdChanged: false}, {name: "public to public", team: teamPublic2, privacy: model.TeamOpen, errChecker: nil, wantType: model.TeamOpen, wantOpenInvite: true, originalInviteId: teamPublic2.InviteId, wantInviteIdChanged: false},
{name: "private to private", team: teamPrivate2, privacy: model.TEAM_INVITE, errChecker: nil, wantType: model.TEAM_INVITE, wantOpenInvite: false, originalInviteId: teamPrivate2.InviteId, wantInviteIdChanged: false}, {name: "private to private", team: teamPrivate2, privacy: model.TeamInvite, errChecker: nil, wantType: model.TeamInvite, wantOpenInvite: false, originalInviteId: teamPrivate2.InviteId, wantInviteIdChanged: false},
} }
for _, test := range tests { for _, test := range tests {
@@ -647,24 +647,24 @@ func TestUpdateTeamPrivacy(t *testing.T) {
} }
t.Run("non-existent team", func(t *testing.T) { t.Run("non-existent team", func(t *testing.T) {
_, resp := Client.UpdateTeamPrivacy(model.NewId(), model.TEAM_INVITE) _, resp := Client.UpdateTeamPrivacy(model.NewId(), model.TeamInvite)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
}) })
th.TestForSystemAdminAndLocal(t, func(t *testing.T, client *model.Client4) { th.TestForSystemAdminAndLocal(t, func(t *testing.T, client *model.Client4) {
_, resp := client.UpdateTeamPrivacy(model.NewId(), model.TEAM_INVITE) _, resp := client.UpdateTeamPrivacy(model.NewId(), model.TeamInvite)
CheckNotFoundStatus(t, resp) CheckNotFoundStatus(t, resp)
}, "non-existent team for admins") }, "non-existent team for admins")
t.Run("not logged in", func(t *testing.T) { t.Run("not logged in", func(t *testing.T) {
Client.Logout() Client.Logout()
_, resp := Client.UpdateTeamPrivacy(teamPublic.Id, model.TEAM_INVITE) _, resp := Client.UpdateTeamPrivacy(teamPublic.Id, model.TeamInvite)
CheckUnauthorizedStatus(t, resp) CheckUnauthorizedStatus(t, resp)
}) })
t.Run("no permission to manage team", func(t *testing.T) { t.Run("no permission to manage team", func(t *testing.T) {
th.LoginBasic2() th.LoginBasic2()
_, resp := Client.UpdateTeamPrivacy(teamPublic.Id, model.TEAM_INVITE) _, resp := Client.UpdateTeamPrivacy(teamPublic.Id, model.TeamInvite)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
}) })
} }
@@ -680,7 +680,7 @@ func TestTeamUnicodeNames(t *testing.T) {
DisplayName: "Some\u206c Team", DisplayName: "Some\u206c Team",
Description: "A \ufffatest\ufffb channel.", Description: "A \ufffatest\ufffb channel.",
CompanyName: "\ufeffAcme Inc\ufffc", CompanyName: "\ufeffAcme Inc\ufffc",
Type: model.TEAM_OPEN} Type: model.TeamOpen}
rteam, resp := Client.CreateTeam(team) rteam, resp := Client.CreateTeam(team)
CheckNoError(t, resp) CheckNoError(t, resp)
CheckCreatedStatus(t, resp) CheckCreatedStatus(t, resp)
@@ -697,7 +697,7 @@ func TestTeamUnicodeNames(t *testing.T) {
CompanyName: "Bad Company", CompanyName: "Bad Company",
Name: model.NewRandomTeamName(), Name: model.NewRandomTeamName(),
Email: "success+" + model.NewId() + "@simulator.amazonses.com", Email: "success+" + model.NewId() + "@simulator.amazonses.com",
Type: model.TEAM_OPEN} Type: model.TeamOpen}
team, _ = Client.CreateTeam(team) team, _ = Client.CreateTeam(team)
team.DisplayName = "\u206eThe Team\u206f" team.DisplayName = "\u206eThe Team\u206f"
@@ -718,7 +718,7 @@ func TestTeamUnicodeNames(t *testing.T) {
CompanyName: "Some company name", CompanyName: "Some company name",
Name: model.NewRandomTeamName(), Name: model.NewRandomTeamName(),
Email: "success+" + model.NewId() + "@simulator.amazonses.com", Email: "success+" + model.NewId() + "@simulator.amazonses.com",
Type: model.TEAM_OPEN} Type: model.TeamOpen}
team, _ = Client.CreateTeam(team) team, _ = Client.CreateTeam(team)
patch := &model.TeamPatch{} patch := &model.TeamPatch{}
@@ -741,7 +741,7 @@ func TestRegenerateTeamInviteId(t *testing.T) {
defer th.TearDown() defer th.TearDown()
Client := th.Client Client := th.Client
team := &model.Team{DisplayName: "Name", Description: "Some description", CompanyName: "Some company name", AllowOpenInvite: false, InviteId: "inviteid0", Name: "z-z-" + model.NewRandomTeamName() + "a", Email: "success+" + model.NewId() + "@simulator.amazonses.com", Type: model.TEAM_OPEN} team := &model.Team{DisplayName: "Name", Description: "Some description", CompanyName: "Some company name", AllowOpenInvite: false, InviteId: "inviteid0", Name: "z-z-" + model.NewRandomTeamName() + "a", Email: "success+" + model.NewId() + "@simulator.amazonses.com", Type: model.TeamOpen}
team, _ = Client.CreateTeam(team) team, _ = Client.CreateTeam(team)
assert.NotEqual(t, team.InviteId, "") assert.NotEqual(t, team.InviteId, "")
@@ -766,7 +766,7 @@ func TestSoftDeleteTeam(t *testing.T) {
CheckUnauthorizedStatus(t, resp) CheckUnauthorizedStatus(t, resp)
th.LoginBasic() th.LoginBasic()
team := &model.Team{DisplayName: "DisplayName", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TEAM_OPEN} team := &model.Team{DisplayName: "DisplayName", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TeamOpen}
team, _ = th.Client.CreateTeam(team) team, _ = th.Client.CreateTeam(team)
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) { th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
@@ -802,7 +802,7 @@ func TestPermanentDeleteTeam(t *testing.T) {
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableAPITeamDeletion = false }) th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableAPITeamDeletion = false })
t.Run("Permanent deletion not available through API if EnableAPITeamDeletion is not set", func(t *testing.T) { t.Run("Permanent deletion not available through API if EnableAPITeamDeletion is not set", func(t *testing.T) {
team := &model.Team{DisplayName: "DisplayName", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TEAM_OPEN} team := &model.Team{DisplayName: "DisplayName", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TeamOpen}
team, _ = th.Client.CreateTeam(team) team, _ = th.Client.CreateTeam(team)
_, resp := th.Client.PermanentDeleteTeam(team.Id) _, resp := th.Client.PermanentDeleteTeam(team.Id)
@@ -813,7 +813,7 @@ func TestPermanentDeleteTeam(t *testing.T) {
}) })
t.Run("Permanent deletion available through local mode even if EnableAPITeamDeletion is not set", func(t *testing.T) { t.Run("Permanent deletion available through local mode even if EnableAPITeamDeletion is not set", func(t *testing.T) {
team := &model.Team{DisplayName: "DisplayName", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TEAM_OPEN} team := &model.Team{DisplayName: "DisplayName", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TeamOpen}
team, _ = th.Client.CreateTeam(team) team, _ = th.Client.CreateTeam(team)
ok, resp := th.LocalClient.PermanentDeleteTeam(team.Id) ok, resp := th.LocalClient.PermanentDeleteTeam(team.Id)
@@ -827,7 +827,7 @@ func TestPermanentDeleteTeam(t *testing.T) {
}() }()
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableAPITeamDeletion = true }) th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableAPITeamDeletion = true })
team := &model.Team{DisplayName: "DisplayName", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TEAM_OPEN} team := &model.Team{DisplayName: "DisplayName", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TeamOpen}
team, _ = client.CreateTeam(team) team, _ = client.CreateTeam(team)
ok, resp := client.PermanentDeleteTeam(team.Id) ok, resp := client.PermanentDeleteTeam(team.Id)
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -848,19 +848,19 @@ func TestGetAllTeams(t *testing.T) {
defer th.TearDown() defer th.TearDown()
Client := th.Client Client := th.Client
team1 := &model.Team{DisplayName: "Name", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TEAM_OPEN, AllowOpenInvite: true} team1 := &model.Team{DisplayName: "Name", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TeamOpen, AllowOpenInvite: true}
team1, resp := Client.CreateTeam(team1) team1, resp := Client.CreateTeam(team1)
CheckNoError(t, resp) CheckNoError(t, resp)
team2 := &model.Team{DisplayName: "Name2", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TEAM_OPEN, AllowOpenInvite: true} team2 := &model.Team{DisplayName: "Name2", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TeamOpen, AllowOpenInvite: true}
team2, resp = Client.CreateTeam(team2) team2, resp = Client.CreateTeam(team2)
CheckNoError(t, resp) CheckNoError(t, resp)
team3 := &model.Team{DisplayName: "Name3", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TEAM_OPEN, AllowOpenInvite: false} team3 := &model.Team{DisplayName: "Name3", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TeamOpen, AllowOpenInvite: false}
team3, resp = Client.CreateTeam(team3) team3, resp = Client.CreateTeam(team3)
CheckNoError(t, resp) CheckNoError(t, resp)
team4 := &model.Team{DisplayName: "Name4", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TEAM_OPEN, AllowOpenInvite: false} team4 := &model.Team{DisplayName: "Name4", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TeamOpen, AllowOpenInvite: false}
team4, resp = Client.CreateTeam(team4) team4, resp = Client.CreateTeam(team4)
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -880,42 +880,42 @@ func TestGetAllTeams(t *testing.T) {
Name: "Get 1 team per page", Name: "Get 1 team per page",
Page: 0, Page: 0,
PerPage: 1, PerPage: 1,
Permissions: []string{model.PERMISSION_LIST_PUBLIC_TEAMS.Id}, Permissions: []string{model.PermissionListPublicTeams.Id},
ExpectedTeams: []string{team1.Id}, ExpectedTeams: []string{team1.Id},
}, },
{ {
Name: "Get second page with 1 team per page", Name: "Get second page with 1 team per page",
Page: 1, Page: 1,
PerPage: 1, PerPage: 1,
Permissions: []string{model.PERMISSION_LIST_PUBLIC_TEAMS.Id}, Permissions: []string{model.PermissionListPublicTeams.Id},
ExpectedTeams: []string{team2.Id}, ExpectedTeams: []string{team2.Id},
}, },
{ {
Name: "Get no items per page", Name: "Get no items per page",
Page: 1, Page: 1,
PerPage: 0, PerPage: 0,
Permissions: []string{model.PERMISSION_LIST_PUBLIC_TEAMS.Id}, Permissions: []string{model.PermissionListPublicTeams.Id},
ExpectedTeams: []string{}, ExpectedTeams: []string{},
}, },
{ {
Name: "Get all open teams", Name: "Get all open teams",
Page: 0, Page: 0,
PerPage: 10, PerPage: 10,
Permissions: []string{model.PERMISSION_LIST_PUBLIC_TEAMS.Id}, Permissions: []string{model.PermissionListPublicTeams.Id},
ExpectedTeams: []string{team1.Id, team2.Id}, ExpectedTeams: []string{team1.Id, team2.Id},
}, },
{ {
Name: "Get all private teams", Name: "Get all private teams",
Page: 0, Page: 0,
PerPage: 10, PerPage: 10,
Permissions: []string{model.PERMISSION_LIST_PRIVATE_TEAMS.Id}, Permissions: []string{model.PermissionListPrivateTeams.Id},
ExpectedTeams: []string{th.BasicTeam.Id, team3.Id, team4.Id}, ExpectedTeams: []string{th.BasicTeam.Id, team3.Id, team4.Id},
}, },
{ {
Name: "Get all teams", Name: "Get all teams",
Page: 0, Page: 0,
PerPage: 10, PerPage: 10,
Permissions: []string{model.PERMISSION_LIST_PUBLIC_TEAMS.Id, model.PERMISSION_LIST_PRIVATE_TEAMS.Id}, Permissions: []string{model.PermissionListPublicTeams.Id, model.PermissionListPrivateTeams.Id},
ExpectedTeams: []string{th.BasicTeam.Id, team1.Id, team2.Id, team3.Id, team4.Id}, ExpectedTeams: []string{th.BasicTeam.Id, team1.Id, team2.Id, team3.Id, team4.Id},
}, },
{ {
@@ -941,7 +941,7 @@ func TestGetAllTeams(t *testing.T) {
Name: "Get all teams with count", Name: "Get all teams with count",
Page: 0, Page: 0,
PerPage: 10, PerPage: 10,
Permissions: []string{model.PERMISSION_LIST_PUBLIC_TEAMS.Id, model.PERMISSION_LIST_PRIVATE_TEAMS.Id}, Permissions: []string{model.PermissionListPublicTeams.Id, model.PermissionListPrivateTeams.Id},
ExpectedTeams: []string{th.BasicTeam.Id, team1.Id, team2.Id, team3.Id, team4.Id}, ExpectedTeams: []string{th.BasicTeam.Id, team1.Id, team2.Id, team3.Id, team4.Id},
WithCount: true, WithCount: true,
ExpectedCount: 5, ExpectedCount: 5,
@@ -950,7 +950,7 @@ func TestGetAllTeams(t *testing.T) {
Name: "Get all public teams with count", Name: "Get all public teams with count",
Page: 0, Page: 0,
PerPage: 10, PerPage: 10,
Permissions: []string{model.PERMISSION_LIST_PUBLIC_TEAMS.Id}, Permissions: []string{model.PermissionListPublicTeams.Id},
ExpectedTeams: []string{team1.Id, team2.Id}, ExpectedTeams: []string{team1.Id, team2.Id},
WithCount: true, WithCount: true,
ExpectedCount: 2, ExpectedCount: 2,
@@ -959,7 +959,7 @@ func TestGetAllTeams(t *testing.T) {
Name: "Get all private teams with count", Name: "Get all private teams with count",
Page: 0, Page: 0,
PerPage: 10, PerPage: 10,
Permissions: []string{model.PERMISSION_LIST_PRIVATE_TEAMS.Id}, Permissions: []string{model.PermissionListPrivateTeams.Id},
ExpectedTeams: []string{th.BasicTeam.Id, team3.Id, team4.Id}, ExpectedTeams: []string{th.BasicTeam.Id, team3.Id, team4.Id},
WithCount: true, WithCount: true,
ExpectedCount: 3, ExpectedCount: 3,
@@ -972,12 +972,12 @@ func TestGetAllTeams(t *testing.T) {
defer func() { defer func() {
th.RestoreDefaultRolePermissions(defaultRolePermissions) th.RestoreDefaultRolePermissions(defaultRolePermissions)
}() }()
th.RemovePermissionFromRole(model.PERMISSION_LIST_PUBLIC_TEAMS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionListPublicTeams.Id, model.SystemUserRoleId)
th.RemovePermissionFromRole(model.PERMISSION_JOIN_PUBLIC_TEAMS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionJoinPublicTeams.Id, model.SystemUserRoleId)
th.RemovePermissionFromRole(model.PERMISSION_LIST_PRIVATE_TEAMS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionListPrivateTeams.Id, model.SystemUserRoleId)
th.RemovePermissionFromRole(model.PERMISSION_JOIN_PRIVATE_TEAMS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionJoinPrivateTeams.Id, model.SystemUserRoleId)
for _, permission := range tc.Permissions { for _, permission := range tc.Permissions {
th.AddPermissionToRole(permission, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(permission, model.SystemUserRoleId)
} }
var teams []*model.Team var teams []*model.Team
@@ -1092,7 +1092,7 @@ func TestGetAllTeamsSanitization(t *testing.T) {
DisplayName: t.Name() + "_1", DisplayName: t.Name() + "_1",
Name: GenerateTestTeamName(), Name: GenerateTestTeamName(),
Email: th.GenerateTestEmail(), Email: th.GenerateTestEmail(),
Type: model.TEAM_OPEN, Type: model.TeamOpen,
AllowedDomains: "simulator.amazonses.com,localhost", AllowedDomains: "simulator.amazonses.com,localhost",
AllowOpenInvite: true, AllowOpenInvite: true,
}) })
@@ -1101,7 +1101,7 @@ func TestGetAllTeamsSanitization(t *testing.T) {
DisplayName: t.Name() + "_2", DisplayName: t.Name() + "_2",
Name: GenerateTestTeamName(), Name: GenerateTestTeamName(),
Email: th.GenerateTestEmail(), Email: th.GenerateTestEmail(),
Type: model.TEAM_OPEN, Type: model.TeamOpen,
AllowedDomains: "simulator.amazonses.com,localhost", AllowedDomains: "simulator.amazonses.com,localhost",
AllowOpenInvite: true, AllowOpenInvite: true,
}) })
@@ -1178,10 +1178,10 @@ func TestGetTeamByName(t *testing.T) {
th.LoginTeamAdmin() th.LoginTeamAdmin()
team2 := &model.Team{DisplayName: "Name", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TEAM_OPEN, AllowOpenInvite: false} team2 := &model.Team{DisplayName: "Name", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TeamOpen, AllowOpenInvite: false}
rteam2, _ := th.Client.CreateTeam(team2) rteam2, _ := th.Client.CreateTeam(team2)
team3 := &model.Team{DisplayName: "Name", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TEAM_INVITE, AllowOpenInvite: true} team3 := &model.Team{DisplayName: "Name", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TeamInvite, AllowOpenInvite: true}
rteam3, _ := th.Client.CreateTeam(team3) rteam3, _ := th.Client.CreateTeam(team3)
th.LoginBasic() th.LoginBasic()
@@ -1202,7 +1202,7 @@ func TestGetTeamByNameSanitization(t *testing.T) {
DisplayName: t.Name() + "_1", DisplayName: t.Name() + "_1",
Name: GenerateTestTeamName(), Name: GenerateTestTeamName(),
Email: th.GenerateTestEmail(), Email: th.GenerateTestEmail(),
Type: model.TEAM_OPEN, Type: model.TeamOpen,
AllowedDomains: "simulator.amazonses.com,localhost", AllowedDomains: "simulator.amazonses.com,localhost",
}) })
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -1221,7 +1221,7 @@ func TestGetTeamByNameSanitization(t *testing.T) {
}) })
t.Run("team user without invite permissions", func(t *testing.T) { t.Run("team user without invite permissions", func(t *testing.T) {
th.RemovePermissionFromRole(model.PERMISSION_INVITE_USER.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionInviteUser.Id, model.TeamUserRoleId)
th.LinkUserToTeam(th.BasicUser2, team) th.LinkUserToTeam(th.BasicUser2, team)
client := th.CreateClient() client := th.CreateClient()
@@ -1263,7 +1263,7 @@ func TestSearchAllTeams(t *testing.T) {
require.Nil(t, err, err) require.Nil(t, err, err)
oTeam.UpdateAt = updatedTeam.UpdateAt oTeam.UpdateAt = updatedTeam.UpdateAt
pTeam := &model.Team{DisplayName: "PName", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TEAM_INVITE} pTeam := &model.Team{DisplayName: "PName", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TeamInvite}
th.Client.CreateTeam(pTeam) th.Client.CreateTeam(pTeam)
rteams, resp := th.Client.SearchTeams(&model.TeamSearch{Term: pTeam.Name}) rteams, resp := th.Client.SearchTeams(&model.TeamSearch{Term: pTeam.Name})
@@ -1362,7 +1362,7 @@ func TestSearchAllTeamsPaged(t *testing.T) {
newTeam, err := th.App.CreateTeam(th.Context, &model.Team{ newTeam, err := th.App.CreateTeam(th.Context, &model.Team{
DisplayName: fmt.Sprintf("%s %d %s", commonRandom, i, uid), DisplayName: fmt.Sprintf("%s %d %s", commonRandom, i, uid),
Name: fmt.Sprintf("%s-%d-%s", commonRandom, i, uid), Name: fmt.Sprintf("%s-%d-%s", commonRandom, i, uid),
Type: model.TEAM_OPEN, Type: model.TeamOpen,
Email: th.GenerateTestEmail(), Email: th.GenerateTestEmail(),
}) })
require.Nil(t, err) require.Nil(t, err)
@@ -1372,7 +1372,7 @@ func TestSearchAllTeamsPaged(t *testing.T) {
foobarTeam, err := th.App.CreateTeam(th.Context, &model.Team{ foobarTeam, err := th.App.CreateTeam(th.Context, &model.Team{
DisplayName: "FOOBARDISPLAYNAME", DisplayName: "FOOBARDISPLAYNAME",
Name: "whatever", Name: "whatever",
Type: model.TEAM_OPEN, Type: model.TeamOpen,
Email: th.GenerateTestEmail(), Email: th.GenerateTestEmail(),
}) })
require.Nil(t, err) require.Nil(t, err)
@@ -1488,7 +1488,7 @@ func TestSearchAllTeamsSanitization(t *testing.T) {
DisplayName: t.Name() + "_1", DisplayName: t.Name() + "_1",
Name: GenerateTestTeamName(), Name: GenerateTestTeamName(),
Email: th.GenerateTestEmail(), Email: th.GenerateTestEmail(),
Type: model.TEAM_OPEN, Type: model.TeamOpen,
AllowedDomains: "simulator.amazonses.com,localhost", AllowedDomains: "simulator.amazonses.com,localhost",
}) })
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -1496,7 +1496,7 @@ func TestSearchAllTeamsSanitization(t *testing.T) {
DisplayName: t.Name() + "_2", DisplayName: t.Name() + "_2",
Name: GenerateTestTeamName(), Name: GenerateTestTeamName(),
Email: th.GenerateTestEmail(), Email: th.GenerateTestEmail(),
Type: model.TEAM_OPEN, Type: model.TeamOpen,
AllowedDomains: "simulator.amazonses.com,localhost", AllowedDomains: "simulator.amazonses.com,localhost",
}) })
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -1555,7 +1555,7 @@ func TestGetTeamsForUser(t *testing.T) {
defer th.TearDown() defer th.TearDown()
Client := th.Client Client := th.Client
team2 := &model.Team{DisplayName: "Name", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TEAM_INVITE} team2 := &model.Team{DisplayName: "Name", Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TeamInvite}
rteam2, _ := Client.CreateTeam(team2) rteam2, _ := Client.CreateTeam(team2)
teams, resp := Client.GetTeamsForUser(th.BasicUser.Id, "") teams, resp := Client.GetTeamsForUser(th.BasicUser.Id, "")
@@ -1597,7 +1597,7 @@ func TestGetTeamsForUserSanitization(t *testing.T) {
DisplayName: t.Name() + "_1", DisplayName: t.Name() + "_1",
Name: GenerateTestTeamName(), Name: GenerateTestTeamName(),
Email: th.GenerateTestEmail(), Email: th.GenerateTestEmail(),
Type: model.TEAM_OPEN, Type: model.TeamOpen,
AllowedDomains: "simulator.amazonses.com,localhost", AllowedDomains: "simulator.amazonses.com,localhost",
}) })
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -1605,7 +1605,7 @@ func TestGetTeamsForUserSanitization(t *testing.T) {
DisplayName: t.Name() + "_2", DisplayName: t.Name() + "_2",
Name: GenerateTestTeamName(), Name: GenerateTestTeamName(),
Email: th.GenerateTestEmail(), Email: th.GenerateTestEmail(),
Type: model.TEAM_OPEN, Type: model.TeamOpen,
AllowedDomains: "simulator.amazonses.com,localhost", AllowedDomains: "simulator.amazonses.com,localhost",
}) })
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -1634,7 +1634,7 @@ func TestGetTeamsForUserSanitization(t *testing.T) {
th.LinkUserToTeam(th.BasicUser2, team2) th.LinkUserToTeam(th.BasicUser2, team2)
client := th.CreateClient() client := th.CreateClient()
th.RemovePermissionFromRole(model.PERMISSION_INVITE_USER.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionInviteUser.Id, model.TeamUserRoleId)
th.LoginBasic2WithClient(client) th.LoginBasic2WithClient(client)
rteams, resp := client.GetTeamsForUser(th.BasicUser2.Id, "") rteams, resp := client.GetTeamsForUser(th.BasicUser2.Id, "")
@@ -1923,10 +1923,10 @@ func TestAddTeamMember(t *testing.T) {
}() }()
// Set the config so that only team admins can add a user to a team. // Set the config so that only team admins can add a user to a team.
th.AddPermissionToRole(model.PERMISSION_INVITE_USER.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionInviteUser.Id, model.TeamAdminRoleId)
th.AddPermissionToRole(model.PERMISSION_ADD_USER_TO_TEAM.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionAddUserToTeam.Id, model.TeamAdminRoleId)
th.RemovePermissionFromRole(model.PERMISSION_INVITE_USER.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionInviteUser.Id, model.TeamUserRoleId)
th.RemovePermissionFromRole(model.PERMISSION_ADD_USER_TO_TEAM.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionAddUserToTeam.Id, model.TeamUserRoleId)
th.LoginBasic() th.LoginBasic()
@@ -1944,10 +1944,10 @@ func TestAddTeamMember(t *testing.T) {
CheckNoError(t, resp) CheckNoError(t, resp)
// Change permission level to team user // Change permission level to team user
th.AddPermissionToRole(model.PERMISSION_INVITE_USER.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionInviteUser.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_ADD_USER_TO_TEAM.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionAddUserToTeam.Id, model.TeamUserRoleId)
th.RemovePermissionFromRole(model.PERMISSION_INVITE_USER.Id, model.TEAM_ADMIN_ROLE_ID) th.RemovePermissionFromRole(model.PermissionInviteUser.Id, model.TeamAdminRoleId)
th.RemovePermissionFromRole(model.PERMISSION_ADD_USER_TO_TEAM.Id, model.TEAM_ADMIN_ROLE_ID) th.RemovePermissionFromRole(model.PermissionAddUserToTeam.Id, model.TeamAdminRoleId)
th.UpdateUserToNonTeamAdmin(th.BasicUser, th.BasicTeam) th.UpdateUserToNonTeamAdmin(th.BasicUser, th.BasicTeam)
th.App.Srv().InvalidateAllCaches() th.App.Srv().InvalidateAllCaches()
@@ -2147,14 +2147,14 @@ func TestAddTeamMemberMyself(t *testing.T) {
team.AllowOpenInvite = tc.Public team.AllowOpenInvite = tc.Public
th.App.UpdateTeam(team) th.App.UpdateTeam(team)
if tc.PublicPermission { if tc.PublicPermission {
th.AddPermissionToRole(model.PERMISSION_JOIN_PUBLIC_TEAMS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionJoinPublicTeams.Id, model.SystemUserRoleId)
} else { } else {
th.RemovePermissionFromRole(model.PERMISSION_JOIN_PUBLIC_TEAMS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionJoinPublicTeams.Id, model.SystemUserRoleId)
} }
if tc.PrivatePermission { if tc.PrivatePermission {
th.AddPermissionToRole(model.PERMISSION_JOIN_PRIVATE_TEAMS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionJoinPrivateTeams.Id, model.SystemUserRoleId)
} else { } else {
th.RemovePermissionFromRole(model.PERMISSION_JOIN_PRIVATE_TEAMS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionJoinPrivateTeams.Id, model.SystemUserRoleId)
} }
_, resp := Client.AddTeamMember(team.Id, th.BasicUser.Id) _, resp := Client.AddTeamMember(team.Id, th.BasicUser.Id)
if tc.ExpectedSuccess { if tc.ExpectedSuccess {
@@ -2291,10 +2291,10 @@ func TestAddTeamMembers(t *testing.T) {
}() }()
// Set the config so that only team admins can add a user to a team. // Set the config so that only team admins can add a user to a team.
th.AddPermissionToRole(model.PERMISSION_INVITE_USER.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionInviteUser.Id, model.TeamAdminRoleId)
th.AddPermissionToRole(model.PERMISSION_ADD_USER_TO_TEAM.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionAddUserToTeam.Id, model.TeamAdminRoleId)
th.RemovePermissionFromRole(model.PERMISSION_INVITE_USER.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionInviteUser.Id, model.TeamUserRoleId)
th.RemovePermissionFromRole(model.PERMISSION_ADD_USER_TO_TEAM.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionAddUserToTeam.Id, model.TeamUserRoleId)
th.LoginBasic() th.LoginBasic()
@@ -2312,10 +2312,10 @@ func TestAddTeamMembers(t *testing.T) {
CheckNoError(t, resp) CheckNoError(t, resp)
// Change permission level to team user // Change permission level to team user
th.AddPermissionToRole(model.PERMISSION_INVITE_USER.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionInviteUser.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_ADD_USER_TO_TEAM.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionAddUserToTeam.Id, model.TeamUserRoleId)
th.RemovePermissionFromRole(model.PERMISSION_INVITE_USER.Id, model.TEAM_ADMIN_ROLE_ID) th.RemovePermissionFromRole(model.PermissionInviteUser.Id, model.TeamAdminRoleId)
th.RemovePermissionFromRole(model.PERMISSION_ADD_USER_TO_TEAM.Id, model.TEAM_ADMIN_ROLE_ID) th.RemovePermissionFromRole(model.PermissionAddUserToTeam.Id, model.TeamAdminRoleId)
th.UpdateUserToNonTeamAdmin(th.BasicUser, th.BasicTeam) th.UpdateUserToNonTeamAdmin(th.BasicUser, th.BasicTeam)
th.App.Srv().InvalidateAllCaches() th.App.Srv().InvalidateAllCaches()
@@ -2675,20 +2675,20 @@ func TestTeamExists(t *testing.T) {
defer th.TearDown() defer th.TearDown()
Client := th.Client Client := th.Client
public_member_team := th.BasicTeam public_member_team := th.BasicTeam
err := th.App.UpdateTeamPrivacy(public_member_team.Id, model.TEAM_OPEN, true) err := th.App.UpdateTeamPrivacy(public_member_team.Id, model.TeamOpen, true)
require.Nil(t, err) require.Nil(t, err)
public_not_member_team := th.CreateTeamWithClient(th.SystemAdminClient) public_not_member_team := th.CreateTeamWithClient(th.SystemAdminClient)
err = th.App.UpdateTeamPrivacy(public_not_member_team.Id, model.TEAM_OPEN, true) err = th.App.UpdateTeamPrivacy(public_not_member_team.Id, model.TeamOpen, true)
require.Nil(t, err) require.Nil(t, err)
private_member_team := th.CreateTeamWithClient(th.SystemAdminClient) private_member_team := th.CreateTeamWithClient(th.SystemAdminClient)
th.LinkUserToTeam(th.BasicUser, private_member_team) th.LinkUserToTeam(th.BasicUser, private_member_team)
err = th.App.UpdateTeamPrivacy(private_member_team.Id, model.TEAM_INVITE, false) err = th.App.UpdateTeamPrivacy(private_member_team.Id, model.TeamInvite, false)
require.Nil(t, err) require.Nil(t, err)
private_not_member_team := th.CreateTeamWithClient(th.SystemAdminClient) private_not_member_team := th.CreateTeamWithClient(th.SystemAdminClient)
err = th.App.UpdateTeamPrivacy(private_not_member_team.Id, model.TEAM_INVITE, false) err = th.App.UpdateTeamPrivacy(private_not_member_team.Id, model.TeamInvite, false)
require.Nil(t, err) require.Nil(t, err)
// Check the appropriate permissions are enforced. // Check the appropriate permissions are enforced.
@@ -2697,8 +2697,8 @@ func TestTeamExists(t *testing.T) {
th.RestoreDefaultRolePermissions(defaultRolePermissions) th.RestoreDefaultRolePermissions(defaultRolePermissions)
}() }()
th.AddPermissionToRole(model.PERMISSION_LIST_PUBLIC_TEAMS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionListPublicTeams.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_LIST_PRIVATE_TEAMS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionListPrivateTeams.Id, model.SystemUserRoleId)
t.Run("Logged user with permissions and valid public team", func(t *testing.T) { t.Run("Logged user with permissions and valid public team", func(t *testing.T) {
th.LoginBasic() th.LoginBasic()
@@ -2729,7 +2729,7 @@ func TestTeamExists(t *testing.T) {
t.Run("Logged without LIST_PUBLIC_TEAMS permissions and member public team", func(t *testing.T) { t.Run("Logged without LIST_PUBLIC_TEAMS permissions and member public team", func(t *testing.T) {
th.LoginBasic() th.LoginBasic()
th.RemovePermissionFromRole(model.PERMISSION_LIST_PUBLIC_TEAMS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionListPublicTeams.Id, model.SystemUserRoleId)
exists, resp := Client.TeamExists(public_member_team.Name, "") exists, resp := Client.TeamExists(public_member_team.Name, "")
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -2738,7 +2738,7 @@ func TestTeamExists(t *testing.T) {
t.Run("Logged without LIST_PUBLIC_TEAMS permissions and not member public team", func(t *testing.T) { t.Run("Logged without LIST_PUBLIC_TEAMS permissions and not member public team", func(t *testing.T) {
th.LoginBasic() th.LoginBasic()
th.RemovePermissionFromRole(model.PERMISSION_LIST_PUBLIC_TEAMS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionListPublicTeams.Id, model.SystemUserRoleId)
exists, resp := Client.TeamExists(public_not_member_team.Name, "") exists, resp := Client.TeamExists(public_not_member_team.Name, "")
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -2747,7 +2747,7 @@ func TestTeamExists(t *testing.T) {
t.Run("Logged without LIST_PRIVATE_TEAMS permissions and member private team", func(t *testing.T) { t.Run("Logged without LIST_PRIVATE_TEAMS permissions and member private team", func(t *testing.T) {
th.LoginBasic() th.LoginBasic()
th.RemovePermissionFromRole(model.PERMISSION_LIST_PRIVATE_TEAMS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionListPrivateTeams.Id, model.SystemUserRoleId)
exists, resp := Client.TeamExists(private_member_team.Name, "") exists, resp := Client.TeamExists(private_member_team.Name, "")
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -2756,7 +2756,7 @@ func TestTeamExists(t *testing.T) {
t.Run("Logged without LIST_PRIVATE_TEAMS permissions and not member private team", func(t *testing.T) { t.Run("Logged without LIST_PRIVATE_TEAMS permissions and not member private team", func(t *testing.T) {
th.LoginBasic() th.LoginBasic()
th.RemovePermissionFromRole(model.PERMISSION_LIST_PRIVATE_TEAMS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionListPrivateTeams.Id, model.SystemUserRoleId)
exists, resp := Client.TeamExists(private_not_member_team.Name, "") exists, resp := Client.TeamExists(private_not_member_team.Name, "")
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -3272,7 +3272,7 @@ func TestUpdateTeamScheme(t *testing.T) {
InviteId: "inviteid0", InviteId: "inviteid0",
Name: "z-z-" + model.NewId() + "a", Name: "z-z-" + model.NewId() + "a",
Email: "success+" + model.NewId() + "@simulator.amazonses.com", Email: "success+" + model.NewId() + "@simulator.amazonses.com",
Type: model.TEAM_OPEN, Type: model.TeamOpen,
} }
team, _ = th.SystemAdminClient.CreateTeam(team) team, _ = th.SystemAdminClient.CreateTeam(team)
@@ -3280,14 +3280,14 @@ func TestUpdateTeamScheme(t *testing.T) {
DisplayName: "DisplayName", DisplayName: "DisplayName",
Name: model.NewId(), Name: model.NewId(),
Description: "Some description", Description: "Some description",
Scope: model.SCHEME_SCOPE_TEAM, Scope: model.SchemeScopeTeam,
} }
teamScheme, _ = th.SystemAdminClient.CreateScheme(teamScheme) teamScheme, _ = th.SystemAdminClient.CreateScheme(teamScheme)
channelScheme := &model.Scheme{ channelScheme := &model.Scheme{
DisplayName: "DisplayName", DisplayName: "DisplayName",
Name: model.NewId(), Name: model.NewId(),
Description: "Some description", Description: "Some description",
Scope: model.SCHEME_SCOPE_CHANNEL, Scope: model.SchemeScopeChannel,
} }
channelScheme, _ = th.SystemAdminClient.CreateScheme(channelScheme) channelScheme, _ = th.SystemAdminClient.CreateScheme(channelScheme)
@@ -3431,8 +3431,8 @@ func TestInvalidateAllEmailInvites(t *testing.T) {
}) })
t.Run("OK when request performed by system user with requisite system permission", func(t *testing.T) { t.Run("OK when request performed by system user with requisite system permission", func(t *testing.T) {
th.AddPermissionToRole(model.PERMISSION_INVALIDATE_EMAIL_INVITE.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionInvalidateEmailInvite.Id, model.SystemUserRoleId)
defer th.RemovePermissionFromRole(model.PERMISSION_INVALIDATE_EMAIL_INVITE.Id, model.SYSTEM_USER_ROLE_ID) defer th.RemovePermissionFromRole(model.PermissionInvalidateEmailInvite.Id, model.SystemUserRoleId)
ok, res := th.Client.InvalidateEmailInvites() ok, res := th.Client.InvalidateEmailInvites()
require.Equal(t, true, ok) require.Equal(t, true, ok)
CheckOKStatus(t, res) CheckOKStatus(t, res)

Просмотреть файл

@@ -27,8 +27,8 @@ func getLatestTermsOfService(c *Context, w http.ResponseWriter, r *http.Request)
} }
func createTermsOfService(c *Context, w http.ResponseWriter, r *http.Request) { func createTermsOfService(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }

Просмотреть файл

@@ -43,12 +43,12 @@ func createUpload(c *Context, w http.ResponseWriter, r *http.Request) {
if us.Type == model.UploadTypeImport { if us.Type == model.UploadTypeImport {
if !c.IsSystemAdmin() { if !c.IsSystemAdmin() {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
} else { } else {
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), us.ChannelId, model.PERMISSION_UPLOAD_FILE) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), us.ChannelId, model.PermissionUploadFile) {
c.SetPermissionError(model.PERMISSION_UPLOAD_FILE) c.SetPermissionError(model.PermissionUploadFile)
return return
} }
us.Type = model.UploadTypeAttachment us.Type = model.UploadTypeAttachment
@@ -113,12 +113,12 @@ func uploadData(c *Context, w http.ResponseWriter, r *http.Request) {
if us.Type == model.UploadTypeImport { if us.Type == model.UploadTypeImport {
if !c.IsSystemAdmin() { if !c.IsSystemAdmin() {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
} else { } else {
if us.UserId != c.AppContext.Session().UserId || !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), us.ChannelId, model.PERMISSION_UPLOAD_FILE) { if us.UserId != c.AppContext.Session().UserId || !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), us.ChannelId, model.PermissionUploadFile) {
c.SetPermissionError(model.PERMISSION_UPLOAD_FILE) c.SetPermissionError(model.PermissionUploadFile)
return return
} }
} }

Просмотреть файл

@@ -333,7 +333,7 @@ func TestUploadDataMultipart(t *testing.T) {
req, err := http.NewRequest("POST", th.Client.ApiUrl+"/uploads/"+us.Id, mpData) req, err := http.NewRequest("POST", th.Client.ApiUrl+"/uploads/"+us.Id, mpData)
require.NoError(t, err) require.NoError(t, err)
req.Header.Set("Content-Type", contentType) req.Header.Set("Content-Type", contentType)
req.Header.Set(model.HEADER_AUTH, th.Client.AuthType+" "+th.Client.AuthToken) req.Header.Set(model.HeaderAuth, th.Client.AuthType+" "+th.Client.AuthToken)
res, err := th.Client.HttpClient.Do(req) res, err := th.Client.HttpClient.Do(req)
require.NoError(t, err) require.NoError(t, err)
info := model.FileInfoFromJson(res.Body) info := model.FileInfoFromJson(res.Body)
@@ -357,7 +357,7 @@ func TestUploadDataMultipart(t *testing.T) {
req, err := http.NewRequest("POST", th.Client.ApiUrl+"/uploads/"+u.Id, mpData) req, err := http.NewRequest("POST", th.Client.ApiUrl+"/uploads/"+u.Id, mpData)
require.NoError(t, err) require.NoError(t, err)
req.Header.Set("Content-Type", contentType) req.Header.Set("Content-Type", contentType)
req.Header.Set(model.HEADER_AUTH, th.Client.AuthType+" "+th.Client.AuthToken) req.Header.Set(model.HeaderAuth, th.Client.AuthType+" "+th.Client.AuthToken)
res, err := th.Client.HttpClient.Do(req) res, err := th.Client.HttpClient.Do(req)
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, http.StatusNoContent, res.StatusCode) require.Equal(t, http.StatusNoContent, res.StatusCode)
@@ -368,7 +368,7 @@ func TestUploadDataMultipart(t *testing.T) {
req, err = http.NewRequest("POST", th.Client.ApiUrl+"/uploads/"+u.Id, mpData) req, err = http.NewRequest("POST", th.Client.ApiUrl+"/uploads/"+u.Id, mpData)
require.NoError(t, err) require.NoError(t, err)
req.Header.Set("Content-Type", contentType) req.Header.Set("Content-Type", contentType)
req.Header.Set(model.HEADER_AUTH, th.Client.AuthType+" "+th.Client.AuthToken) req.Header.Set(model.HeaderAuth, th.Client.AuthType+" "+th.Client.AuthToken)
res, err = th.Client.HttpClient.Do(req) res, err = th.Client.HttpClient.Do(req)
require.NoError(t, err) require.NoError(t, err)
info := model.FileInfoFromJson(res.Body) info := model.FileInfoFromJson(res.Body)

Просмотреть файл

@@ -187,12 +187,12 @@ func getUser(c *Context, w http.ResponseWriter, r *http.Request) {
canSee, err := c.App.UserCanSeeOtherUser(c.AppContext.Session().UserId, c.Params.UserId) canSee, err := c.App.UserCanSeeOtherUser(c.AppContext.Session().UserId, c.Params.UserId)
if err != nil { if err != nil {
c.SetPermissionError(model.PERMISSION_VIEW_MEMBERS) c.SetPermissionError(model.PermissionViewMembers)
return return
} }
if !canSee { if !canSee {
c.SetPermissionError(model.PERMISSION_VIEW_MEMBERS) c.SetPermissionError(model.PermissionViewMembers)
return return
} }
@@ -227,7 +227,7 @@ func getUser(c *Context, w http.ResponseWriter, r *http.Request) {
c.App.SanitizeProfile(user, c.IsSystemAdmin()) c.App.SanitizeProfile(user, c.IsSystemAdmin())
} }
c.App.UpdateLastActivityAtIfNeeded(*c.AppContext.Session()) c.App.UpdateLastActivityAtIfNeeded(*c.AppContext.Session())
w.Header().Set(model.HEADER_ETAG_SERVER, etag) w.Header().Set(model.HeaderEtagServer, etag)
w.Write([]byte(user.ToJson())) w.Write([]byte(user.ToJson()))
} }
@@ -245,7 +245,7 @@ func getUserByUsername(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if restrictions != nil { if restrictions != nil {
c.SetPermissionError(model.PERMISSION_VIEW_MEMBERS) c.SetPermissionError(model.PermissionViewMembers)
return return
} }
c.Err = err c.Err = err
@@ -259,7 +259,7 @@ func getUserByUsername(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if !canSee { if !canSee {
c.SetPermissionError(model.PERMISSION_VIEW_MEMBERS) c.SetPermissionError(model.PermissionViewMembers)
return return
} }
@@ -287,7 +287,7 @@ func getUserByUsername(c *Context, w http.ResponseWriter, r *http.Request) {
} else { } else {
c.App.SanitizeProfile(user, c.IsSystemAdmin()) c.App.SanitizeProfile(user, c.IsSystemAdmin())
} }
w.Header().Set(model.HEADER_ETAG_SERVER, etag) w.Header().Set(model.HeaderEtagServer, etag)
w.Write([]byte(user.ToJson())) w.Write([]byte(user.ToJson()))
} }
@@ -311,7 +311,7 @@ func getUserByEmail(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if restrictions != nil { if restrictions != nil {
c.SetPermissionError(model.PERMISSION_VIEW_MEMBERS) c.SetPermissionError(model.PermissionViewMembers)
return return
} }
c.Err = err c.Err = err
@@ -325,7 +325,7 @@ func getUserByEmail(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if !canSee { if !canSee {
c.SetPermissionError(model.PERMISSION_VIEW_MEMBERS) c.SetPermissionError(model.PermissionViewMembers)
return return
} }
@@ -336,7 +336,7 @@ func getUserByEmail(c *Context, w http.ResponseWriter, r *http.Request) {
} }
c.App.SanitizeProfile(user, c.IsSystemAdmin()) c.App.SanitizeProfile(user, c.IsSystemAdmin())
w.Header().Set(model.HEADER_ETAG_SERVER, etag) w.Header().Set(model.HeaderEtagServer, etag)
w.Write([]byte(user.ToJson())) w.Write([]byte(user.ToJson()))
} }
@@ -353,7 +353,7 @@ func getDefaultProfileImage(c *Context, w http.ResponseWriter, r *http.Request)
} }
if !canSee { if !canSee {
c.SetPermissionError(model.PERMISSION_VIEW_MEMBERS) c.SetPermissionError(model.PermissionViewMembers)
return return
} }
@@ -387,7 +387,7 @@ func getProfileImage(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if !canSee { if !canSee {
c.SetPermissionError(model.PERMISSION_VIEW_MEMBERS) c.SetPermissionError(model.PermissionViewMembers)
return return
} }
@@ -412,7 +412,7 @@ func getProfileImage(c *Context, w http.ResponseWriter, r *http.Request) {
w.Header().Set("Cache-Control", fmt.Sprintf("max-age=%v, private", 5*60)) // 5 mins w.Header().Set("Cache-Control", fmt.Sprintf("max-age=%v, private", 5*60)) // 5 mins
} else { } else {
w.Header().Set("Cache-Control", fmt.Sprintf("max-age=%v, private", 24*60*60)) // 24 hrs w.Header().Set("Cache-Control", fmt.Sprintf("max-age=%v, private", 24*60*60)) // 24 hrs
w.Header().Set(model.HEADER_ETAG_SERVER, etag) w.Header().Set(model.HeaderEtagServer, etag)
} }
w.Header().Set("Content-Type", "image/png") w.Header().Set("Content-Type", "image/png")
@@ -428,7 +428,7 @@ func setProfileImage(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -499,7 +499,7 @@ func setDefaultProfileImage(c *Context, w http.ResponseWriter, r *http.Request)
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -597,8 +597,8 @@ func getFilteredUsersStats(c *Context, w http.ResponseWriter, r *http.Request) {
TeamRoles: teamRoles, TeamRoles: teamRoles,
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_USERS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadUserManagementUsers) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_USERS) c.SetPermissionError(model.PermissionSysconsoleReadUserManagementUsers)
return return
} }
@@ -732,22 +732,22 @@ func getUsers(c *Context, w http.ResponseWriter, r *http.Request) {
if withoutTeamBool, _ := strconv.ParseBool(withoutTeam); withoutTeamBool { if withoutTeamBool, _ := strconv.ParseBool(withoutTeam); withoutTeamBool {
// Use a special permission for now // Use a special permission for now
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_LIST_USERS_WITHOUT_TEAM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionListUsersWithoutTeam) {
c.SetPermissionError(model.PERMISSION_LIST_USERS_WITHOUT_TEAM) c.SetPermissionError(model.PermissionListUsersWithoutTeam)
return return
} }
profiles, err = c.App.GetUsersWithoutTeamPage(userGetOptions, c.IsSystemAdmin()) profiles, err = c.App.GetUsersWithoutTeamPage(userGetOptions, c.IsSystemAdmin())
} else if notInChannelId != "" { } else if notInChannelId != "" {
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), notInChannelId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), notInChannelId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
profiles, err = c.App.GetUsersNotInChannelPage(inTeamId, notInChannelId, groupConstrainedBool, c.Params.Page, c.Params.PerPage, c.IsSystemAdmin(), restrictions) profiles, err = c.App.GetUsersNotInChannelPage(inTeamId, notInChannelId, groupConstrainedBool, c.Params.Page, c.Params.PerPage, c.IsSystemAdmin(), restrictions)
} else if notInTeamId != "" { } else if notInTeamId != "" {
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), notInTeamId, model.PERMISSION_VIEW_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), notInTeamId, model.PermissionViewTeam) {
c.SetPermissionError(model.PERMISSION_VIEW_TEAM) c.SetPermissionError(model.PermissionViewTeam)
return return
} }
@@ -758,8 +758,8 @@ func getUsers(c *Context, w http.ResponseWriter, r *http.Request) {
profiles, err = c.App.GetUsersNotInTeamPage(notInTeamId, groupConstrainedBool, c.Params.Page, c.Params.PerPage, c.IsSystemAdmin(), restrictions) profiles, err = c.App.GetUsersNotInTeamPage(notInTeamId, groupConstrainedBool, c.Params.Page, c.Params.PerPage, c.IsSystemAdmin(), restrictions)
} else if inTeamId != "" { } else if inTeamId != "" {
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), inTeamId, model.PERMISSION_VIEW_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), inTeamId, model.PermissionViewTeam) {
c.SetPermissionError(model.PERMISSION_VIEW_TEAM) c.SetPermissionError(model.PermissionViewTeam)
return return
} }
@@ -775,8 +775,8 @@ func getUsers(c *Context, w http.ResponseWriter, r *http.Request) {
profiles, err = c.App.GetUsersInTeamPage(userGetOptions, c.IsSystemAdmin()) profiles, err = c.App.GetUsersInTeamPage(userGetOptions, c.IsSystemAdmin())
} }
} else if inChannelId != "" { } else if inChannelId != "" {
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), inChannelId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), inChannelId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
if sort == "status" { if sort == "status" {
@@ -790,8 +790,8 @@ func getUsers(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_GROUPS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleReadUserManagementGroups) {
c.SetPermissionError(model.PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_GROUPS) c.SetPermissionError(model.PermissionSysconsoleReadUserManagementGroups)
return return
} }
@@ -815,7 +815,7 @@ func getUsers(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if etag != "" { if etag != "" {
w.Header().Set(model.HEADER_ETAG_SERVER, etag) w.Header().Set(model.HeaderEtagServer, etag)
} }
c.App.UpdateLastActivityAtIfNeeded(*c.AppContext.Session()) c.App.UpdateLastActivityAtIfNeeded(*c.AppContext.Session())
w.Write([]byte(model.UserListToJson(profiles))) w.Write([]byte(model.UserListToJson(profiles)))
@@ -918,33 +918,33 @@ func searchUsers(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
} }
if props.InChannelId != "" && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), props.InChannelId, model.PERMISSION_READ_CHANNEL) { if props.InChannelId != "" && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), props.InChannelId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
if props.NotInChannelId != "" && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), props.NotInChannelId, model.PERMISSION_READ_CHANNEL) { if props.NotInChannelId != "" && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), props.NotInChannelId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
if props.TeamId != "" && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), props.TeamId, model.PERMISSION_VIEW_TEAM) { if props.TeamId != "" && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), props.TeamId, model.PermissionViewTeam) {
c.SetPermissionError(model.PERMISSION_VIEW_TEAM) c.SetPermissionError(model.PermissionViewTeam)
return return
} }
if props.NotInTeamId != "" && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), props.NotInTeamId, model.PERMISSION_VIEW_TEAM) { if props.NotInTeamId != "" && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), props.NotInTeamId, model.PermissionViewTeam) {
c.SetPermissionError(model.PERMISSION_VIEW_TEAM) c.SetPermissionError(model.PermissionViewTeam)
return return
} }
if props.Limit <= 0 || props.Limit > model.USER_SEARCH_MAX_LIMIT { if props.Limit <= 0 || props.Limit > model.UserSearchMaxLimit {
c.SetInvalidParam("limit") c.SetInvalidParam("limit")
return return
} }
@@ -960,7 +960,7 @@ func searchUsers(c *Context, w http.ResponseWriter, r *http.Request) {
TeamRoles: props.TeamRoles, TeamRoles: props.TeamRoles,
} }
if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
options.AllowEmails = true options.AllowEmails = true
options.AllowFullNames = true options.AllowFullNames = true
} else { } else {
@@ -990,9 +990,9 @@ func autocompleteUsers(c *Context, w http.ResponseWriter, r *http.Request) {
limitStr := r.URL.Query().Get("limit") limitStr := r.URL.Query().Get("limit")
limit, _ := strconv.Atoi(limitStr) limit, _ := strconv.Atoi(limitStr)
if limitStr == "" { if limitStr == "" {
limit = model.USER_SEARCH_DEFAULT_LIMIT limit = model.UserSearchDefaultLimit
} else if limit > model.USER_SEARCH_MAX_LIMIT { } else if limit > model.UserSearchMaxLimit {
limit = model.USER_SEARCH_MAX_LIMIT limit = model.UserSearchMaxLimit
} }
options := &model.UserSearchOptions{ options := &model.UserSearchOptions{
@@ -1002,22 +1002,22 @@ func autocompleteUsers(c *Context, w http.ResponseWriter, r *http.Request) {
Limit: limit, Limit: limit,
} }
if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
options.AllowFullNames = true options.AllowFullNames = true
} else { } else {
options.AllowFullNames = *c.App.Config().PrivacySettings.ShowFullName options.AllowFullNames = *c.App.Config().PrivacySettings.ShowFullName
} }
if channelId != "" { if channelId != "" {
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channelId, model.PERMISSION_READ_CHANNEL) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channelId, model.PermissionReadChannel) {
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
} }
if teamId != "" { if teamId != "" {
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), teamId, model.PERMISSION_VIEW_TEAM) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), teamId, model.PermissionViewTeam) {
c.SetPermissionError(model.PERMISSION_VIEW_TEAM) c.SetPermissionError(model.PermissionViewTeam)
return return
} }
} }
@@ -1094,13 +1094,13 @@ func updateUser(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
// Cannot update a system admin unless user making request is a systemadmin also. // Cannot update a system admin unless user making request is a systemadmin also.
if user.IsSystemAdmin() && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if user.IsSystemAdmin() && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), user.Id) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), user.Id) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -1113,7 +1113,7 @@ func updateUser(c *Context, w http.ResponseWriter, r *http.Request) {
if c.AppContext.Session().IsOAuth { if c.AppContext.Session().IsOAuth {
if ouser.Email != user.Email { if ouser.Email != user.Email {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
c.Err.DetailedError += ", attempted email update by oauth app" c.Err.DetailedError += ", attempted email update by oauth app"
return return
} }
@@ -1166,7 +1166,7 @@ func patchUser(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -1178,14 +1178,14 @@ func patchUser(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("user", ouser) auditRec.AddMeta("user", ouser)
// Cannot update a system admin unless user making request is a systemadmin also // Cannot update a system admin unless user making request is a systemadmin also
if ouser.IsSystemAdmin() && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if ouser.IsSystemAdmin() && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
if c.AppContext.Session().IsOAuth && patch.Email != nil { if c.AppContext.Session().IsOAuth && patch.Email != nil {
if ouser.Email != *patch.Email { if ouser.Email != *patch.Email {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
c.Err.DetailedError += ", attempted email update by oauth app" c.Err.DetailedError += ", attempted email update by oauth app"
return return
} }
@@ -1239,12 +1239,12 @@ func deleteUser(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), userId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), userId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
// if EnableUserDeactivation flag is disabled the user cannot deactivate himself. // if EnableUserDeactivation flag is disabled the user cannot deactivate himself.
if c.Params.UserId == c.AppContext.Session().UserId && !*c.App.Config().TeamSettings.EnableUserDeactivation && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if c.Params.UserId == c.AppContext.Session().UserId && !*c.App.Config().TeamSettings.EnableUserDeactivation && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.Err = model.NewAppError("deleteUser", "api.user.update_active.not_enable.app_error", nil, "userId="+c.Params.UserId, http.StatusUnauthorized) c.Err = model.NewAppError("deleteUser", "api.user.update_active.not_enable.app_error", nil, "userId="+c.Params.UserId, http.StatusUnauthorized)
return return
} }
@@ -1257,8 +1257,8 @@ func deleteUser(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("user", user) auditRec.AddMeta("user", user)
// Cannot update a system admin unless user making request is a systemadmin also // Cannot update a system admin unless user making request is a systemadmin also
if user.IsSystemAdmin() && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if user.IsSystemAdmin() && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -1310,8 +1310,8 @@ func updateUserRoles(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("roles", newRoles) auditRec.AddMeta("roles", newRoles)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_ROLES) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageRoles) {
c.SetPermissionError(model.PERMISSION_MANAGE_ROLES) c.SetPermissionError(model.PermissionManageRoles)
return return
} }
@@ -1349,7 +1349,7 @@ func updateUserActive(c *Context, w http.ResponseWriter, r *http.Request) {
// true when you're trying to de-activate yourself // true when you're trying to de-activate yourself
isSelfDeactive := !active && c.Params.UserId == c.AppContext.Session().UserId isSelfDeactive := !active && c.Params.UserId == c.AppContext.Session().UserId
if !isSelfDeactive && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_USERS) { if !isSelfDeactive && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteUserManagementUsers) {
c.Err = model.NewAppError("updateUserActive", "api.user.update_active.permissions.app_error", nil, "userId="+c.Params.UserId, http.StatusForbidden) c.Err = model.NewAppError("updateUserActive", "api.user.update_active.permissions.app_error", nil, "userId="+c.Params.UserId, http.StatusForbidden)
return return
} }
@@ -1367,8 +1367,8 @@ func updateUserActive(c *Context, w http.ResponseWriter, r *http.Request) {
} }
auditRec.AddMeta("user", user) auditRec.AddMeta("user", user)
if user.IsSystemAdmin() && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if user.IsSystemAdmin() && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -1404,7 +1404,7 @@ func updateUserActive(c *Context, w http.ResponseWriter, r *http.Request) {
}) })
} }
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_USER_ACTIVATION_STATUS_CHANGE, "", "", "", nil) message := model.NewWebSocketEvent(model.WebsocketEventUserActivationStatusChange, "", "", "", nil)
c.App.Publish(message) c.App.Publish(message)
// If activating, run cloud check for limit overages // If activating, run cloud check for limit overages
@@ -1421,7 +1421,7 @@ func updateUserActive(c *Context, w http.ResponseWriter, r *http.Request) {
func updateUserAuth(c *Context, w http.ResponseWriter, r *http.Request) { func updateUserAuth(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.IsSystemAdmin() { if !c.IsSystemAdmin() {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -1505,13 +1505,13 @@ func updateUserMfa(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if c.AppContext.Session().IsOAuth { if c.AppContext.Session().IsOAuth {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
c.Err.DetailedError += ", attempted access by oauth app" c.Err.DetailedError += ", attempted access by oauth app"
return return
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -1556,13 +1556,13 @@ func generateMfaSecret(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if c.AppContext.Session().IsOAuth { if c.AppContext.Session().IsOAuth {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
c.Err.DetailedError += ", attempted access by oauth app" c.Err.DetailedError += ", attempted access by oauth app"
return return
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -1596,9 +1596,9 @@ func updatePassword(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("user", user) auditRec.AddMeta("user", user)
if user.IsSystemAdmin() { if user.IsSystemAdmin() {
canUpdatePassword = c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) canUpdatePassword = c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem)
} else { } else {
canUpdatePassword = c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_SYSCONSOLE_WRITE_USERMANAGEMENT_USERS) canUpdatePassword = c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionSysconsoleWriteUserManagementUsers)
} }
} }
@@ -1646,7 +1646,7 @@ func resetPassword(c *Context, w http.ResponseWriter, r *http.Request) {
props := model.MapFromJson(r.Body) props := model.MapFromJson(r.Body)
token := props["token"] token := props["token"]
if len(token) != model.TOKEN_SIZE { if len(token) != model.TokenSize {
c.SetInvalidParam("token") c.SetInvalidParam("token")
return return
} }
@@ -1781,7 +1781,7 @@ func login(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if *c.App.Config().ExperimentalSettings.ClientSideCertCheck == model.CLIENT_SIDE_CERT_CHECK_PRIMARY_AUTH { if *c.App.Config().ExperimentalSettings.ClientSideCertCheck == model.ClientSideCertCheckPrimaryAuth {
loginId = certEmail loginId = certEmail
password = "certificate" password = "certificate"
} }
@@ -1823,7 +1823,7 @@ func login(c *Context, w http.ResponseWriter, r *http.Request) {
c.LogAuditWithUserId(user.Id, "success") c.LogAuditWithUserId(user.Id, "success")
if r.Header.Get(model.HEADER_REQUESTED_WITH) == model.HEADER_REQUESTED_WITH_XML { if r.Header.Get(model.HeaderRequestedWith) == model.HeaderRequestedWithXml {
c.App.AttachSessionCookies(c.AppContext, w, r) c.App.AttachSessionCookies(c.AppContext, w, r)
} }
@@ -1914,7 +1914,7 @@ func getSessions(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -1941,7 +1941,7 @@ func revokeSession(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -1986,7 +1986,7 @@ func revokeAllSessionsForUser(c *Context, w http.ResponseWriter, r *http.Request
auditRec.AddMeta("user_id", c.Params.UserId) auditRec.AddMeta("user_id", c.Params.UserId)
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -2002,8 +2002,8 @@ func revokeAllSessionsForUser(c *Context, w http.ResponseWriter, r *http.Request
} }
func revokeAllSessionsAllUsers(c *Context, w http.ResponseWriter, r *http.Request) { func revokeAllSessionsAllUsers(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -2054,7 +2054,7 @@ func attachDeviceId(c *Context, w http.ResponseWriter, r *http.Request) {
expiresAt := time.Unix(model.GetMillis()/1000+int64(maxAge), 0) expiresAt := time.Unix(model.GetMillis()/1000+int64(maxAge), 0)
sessionCookie := &http.Cookie{ sessionCookie := &http.Cookie{
Name: model.SESSION_COOKIE_TOKEN, Name: model.SessionCookieToken,
Value: c.AppContext.Session().Token, Value: c.AppContext.Session().Token,
Path: subpath, Path: subpath,
MaxAge: maxAge, MaxAge: maxAge,
@@ -2091,7 +2091,7 @@ func getUserAudits(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -2112,7 +2112,7 @@ func verifyUserEmail(c *Context, w http.ResponseWriter, r *http.Request) {
props := model.MapFromJson(r.Body) props := model.MapFromJson(r.Body)
token := props["token"] token := props["token"]
if len(token) != model.TOKEN_SIZE { if len(token) != model.TokenSize {
c.SetInvalidParam("token") c.SetInvalidParam("token")
return return
} }
@@ -2224,7 +2224,7 @@ func createUserAccessToken(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if c.AppContext.Session().IsOAuth { if c.AppContext.Session().IsOAuth {
c.SetPermissionError(model.PERMISSION_CREATE_USER_ACCESS_TOKEN) c.SetPermissionError(model.PermissionCreateUserAccessToken)
c.Err.DetailedError += ", attempted access by oauth app" c.Err.DetailedError += ", attempted access by oauth app"
return return
} }
@@ -2242,13 +2242,13 @@ func createUserAccessToken(c *Context, w http.ResponseWriter, r *http.Request) {
c.LogAudit("") c.LogAudit("")
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_CREATE_USER_ACCESS_TOKEN) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionCreateUserAccessToken) {
c.SetPermissionError(model.PERMISSION_CREATE_USER_ACCESS_TOKEN) c.SetPermissionError(model.PermissionCreateUserAccessToken)
return return
} }
if !c.App.SessionHasPermissionToUserOrBot(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUserOrBot(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -2269,8 +2269,8 @@ func createUserAccessToken(c *Context, w http.ResponseWriter, r *http.Request) {
} }
func searchUserAccessTokens(c *Context, w http.ResponseWriter, r *http.Request) { func searchUserAccessTokens(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
props := model.UserAccessTokenSearchFromJson(r.Body) props := model.UserAccessTokenSearchFromJson(r.Body)
@@ -2294,8 +2294,8 @@ func searchUserAccessTokens(c *Context, w http.ResponseWriter, r *http.Request)
} }
func getUserAccessTokens(c *Context, w http.ResponseWriter, r *http.Request) { func getUserAccessTokens(c *Context, w http.ResponseWriter, r *http.Request) {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -2314,13 +2314,13 @@ func getUserAccessTokensForUser(c *Context, w http.ResponseWriter, r *http.Reque
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_READ_USER_ACCESS_TOKEN) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionReadUserAccessToken) {
c.SetPermissionError(model.PERMISSION_READ_USER_ACCESS_TOKEN) c.SetPermissionError(model.PermissionReadUserAccessToken)
return return
} }
if !c.App.SessionHasPermissionToUserOrBot(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUserOrBot(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -2339,8 +2339,8 @@ func getUserAccessToken(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_READ_USER_ACCESS_TOKEN) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionReadUserAccessToken) {
c.SetPermissionError(model.PERMISSION_READ_USER_ACCESS_TOKEN) c.SetPermissionError(model.PermissionReadUserAccessToken)
return return
} }
@@ -2351,7 +2351,7 @@ func getUserAccessToken(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if !c.App.SessionHasPermissionToUserOrBot(*c.AppContext.Session(), accessToken.UserId) { if !c.App.SessionHasPermissionToUserOrBot(*c.AppContext.Session(), accessToken.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -2371,8 +2371,8 @@ func revokeUserAccessToken(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("token_id", tokenId) auditRec.AddMeta("token_id", tokenId)
c.LogAudit("") c.LogAudit("")
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_REVOKE_USER_ACCESS_TOKEN) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionRevokeUserAccessToken) {
c.SetPermissionError(model.PERMISSION_REVOKE_USER_ACCESS_TOKEN) c.SetPermissionError(model.PermissionRevokeUserAccessToken)
return return
} }
@@ -2387,7 +2387,7 @@ func revokeUserAccessToken(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if !c.App.SessionHasPermissionToUserOrBot(*c.AppContext.Session(), accessToken.UserId) { if !c.App.SessionHasPermissionToUserOrBot(*c.AppContext.Session(), accessToken.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -2416,8 +2416,8 @@ func disableUserAccessToken(c *Context, w http.ResponseWriter, r *http.Request)
c.LogAudit("") c.LogAudit("")
// No separate permission for this action for now // No separate permission for this action for now
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_REVOKE_USER_ACCESS_TOKEN) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionRevokeUserAccessToken) {
c.SetPermissionError(model.PERMISSION_REVOKE_USER_ACCESS_TOKEN) c.SetPermissionError(model.PermissionRevokeUserAccessToken)
return return
} }
@@ -2432,7 +2432,7 @@ func disableUserAccessToken(c *Context, w http.ResponseWriter, r *http.Request)
} }
if !c.App.SessionHasPermissionToUserOrBot(*c.AppContext.Session(), accessToken.UserId) { if !c.App.SessionHasPermissionToUserOrBot(*c.AppContext.Session(), accessToken.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -2461,8 +2461,8 @@ func enableUserAccessToken(c *Context, w http.ResponseWriter, r *http.Request) {
c.LogAudit("") c.LogAudit("")
// No separate permission for this action for now // No separate permission for this action for now
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_CREATE_USER_ACCESS_TOKEN) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionCreateUserAccessToken) {
c.SetPermissionError(model.PERMISSION_CREATE_USER_ACCESS_TOKEN) c.SetPermissionError(model.PermissionCreateUserAccessToken)
return return
} }
@@ -2477,7 +2477,7 @@ func enableUserAccessToken(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if !c.App.SessionHasPermissionToUserOrBot(*c.AppContext.Session(), accessToken.UserId) { if !c.App.SessionHasPermissionToUserOrBot(*c.AppContext.Session(), accessToken.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -2551,8 +2551,8 @@ func promoteGuestToUser(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec := c.MakeAuditRecord("promoteGuestToUser", audit.Fail) auditRec := c.MakeAuditRecord("promoteGuestToUser", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_PROMOTE_GUEST) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionPromoteGuest) {
c.SetPermissionError(model.PERMISSION_PROMOTE_GUEST) c.SetPermissionError(model.PermissionPromoteGuest)
return return
} }
@@ -2596,8 +2596,8 @@ func demoteUserToGuest(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec := c.MakeAuditRecord("demoteUserToGuest", audit.Fail) auditRec := c.MakeAuditRecord("demoteUserToGuest", audit.Fail)
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_DEMOTE_TO_GUEST) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionDemoteToGuest) {
c.SetPermissionError(model.PERMISSION_DEMOTE_TO_GUEST) c.SetPermissionError(model.PermissionDemoteToGuest)
return return
} }
@@ -2607,8 +2607,8 @@ func demoteUserToGuest(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if user.IsSystemAdmin() && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if user.IsSystemAdmin() && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -2640,13 +2640,13 @@ func publishUserTyping(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if c.Params.UserId != c.AppContext.Session().UserId && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if c.Params.UserId != c.AppContext.Session().UserId && !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
if !c.App.HasPermissionToChannel(c.Params.UserId, typingRequest.ChannelId, model.PERMISSION_CREATE_POST) { if !c.App.HasPermissionToChannel(c.Params.UserId, typingRequest.ChannelId, model.PermissionCreatePost) {
c.SetPermissionError(model.PERMISSION_CREATE_POST) c.SetPermissionError(model.PermissionCreatePost)
return return
} }
@@ -2674,8 +2674,8 @@ func verifyUserEmailWithoutToken(c *Context, w http.ResponseWriter, r *http.Requ
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("user_id", user.Id) auditRec.AddMeta("user_id", user.Id)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -2706,8 +2706,8 @@ func convertUserToBot(c *Context, w http.ResponseWriter, r *http.Request) {
defer c.LogAuditRec(auditRec) defer c.LogAuditRec(auditRec)
auditRec.AddMeta("user", user) auditRec.AddMeta("user", user)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -2773,8 +2773,8 @@ func migrateAuthToLDAP(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("match_field", matchField) auditRec.AddMeta("match_field", matchField)
auditRec.AddMeta("force", force) auditRec.AddMeta("force", force)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -2832,8 +2832,8 @@ func migrateAuthToSaml(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("matches", matches) auditRec.AddMeta("matches", matches)
auditRec.AddMeta("auto", auto) auditRec.AddMeta("auto", auto)
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_SYSTEM) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageSystem) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) c.SetPermissionError(model.PermissionManageSystem)
return return
} }
@@ -2867,7 +2867,7 @@ func getThreadForUser(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
extendedStr := r.URL.Query().Get("extended") extendedStr := r.URL.Query().Get("extended")
@@ -2895,7 +2895,7 @@ func getThreadsForUser(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -2966,7 +2966,7 @@ func updateReadStateThreadByUser(c *Context, w http.ResponseWriter, r *http.Requ
auditRec.AddMeta("team_id", c.Params.TeamId) auditRec.AddMeta("team_id", c.Params.TeamId)
auditRec.AddMeta("timestamp", c.Params.Timestamp) auditRec.AddMeta("timestamp", c.Params.Timestamp)
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -2994,7 +2994,7 @@ func unfollowThreadByUser(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("team_id", c.Params.TeamId) auditRec.AddMeta("team_id", c.Params.TeamId)
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -3022,7 +3022,7 @@ func followThreadByUser(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("team_id", c.Params.TeamId) auditRec.AddMeta("team_id", c.Params.TeamId)
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }
@@ -3048,7 +3048,7 @@ func updateReadStateAllThreadsByUser(c *Context, w http.ResponseWriter, r *http.
auditRec.AddMeta("team_id", c.Params.TeamId) auditRec.AddMeta("team_id", c.Params.TeamId)
if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) { if !c.App.SessionHasPermissionToUser(*c.AppContext.Session(), c.Params.UserId) {
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) c.SetPermissionError(model.PermissionEditOtherUsers)
return return
} }

Просмотреть файл

@@ -141,7 +141,7 @@ func localGetUsers(c *Context, w http.ResponseWriter, r *http.Request) {
} }
if etag != "" { if etag != "" {
w.Header().Set(model.HEADER_ETAG_SERVER, etag) w.Header().Set(model.HeaderEtagServer, etag)
} }
w.Write([]byte(model.UserListToJson(profiles))) w.Write([]byte(model.UserListToJson(profiles)))
} }
@@ -208,7 +208,7 @@ func localGetUser(c *Context, w http.ResponseWriter, r *http.Request) {
} }
c.App.SanitizeProfile(user, c.IsSystemAdmin()) c.App.SanitizeProfile(user, c.IsSystemAdmin())
w.Header().Set(model.HEADER_ETAG_SERVER, etag) w.Header().Set(model.HeaderEtagServer, etag)
w.Write([]byte(user.ToJson())) w.Write([]byte(user.ToJson()))
} }
@@ -287,7 +287,7 @@ func localGetUserByUsername(c *Context, w http.ResponseWriter, r *http.Request)
} }
c.App.SanitizeProfile(user, c.IsSystemAdmin()) c.App.SanitizeProfile(user, c.IsSystemAdmin())
w.Header().Set(model.HEADER_ETAG_SERVER, etag) w.Header().Set(model.HeaderEtagServer, etag)
w.Write([]byte(user.ToJson())) w.Write([]byte(user.ToJson()))
} }
@@ -316,7 +316,7 @@ func localGetUserByEmail(c *Context, w http.ResponseWriter, r *http.Request) {
} }
c.App.SanitizeProfile(user, c.IsSystemAdmin()) c.App.SanitizeProfile(user, c.IsSystemAdmin())
w.Header().Set(model.HEADER_ETAG_SERVER, etag) w.Header().Set(model.HeaderEtagServer, etag)
w.Write([]byte(user.ToJson())) w.Write([]byte(user.ToJson()))
} }

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@@ -16,30 +16,30 @@ func TestApiResctrictedViewMembers(t *testing.T) {
defer th.TearDown() defer th.TearDown()
// Create first account for system admin // Create first account for system admin
_, err := th.App.CreateUser(th.Context, &model.User{Email: th.GenerateTestEmail(), Nickname: "test user0", Password: "test-password-0", Username: "test-user-0", Roles: model.SYSTEM_USER_ROLE_ID}) _, err := th.App.CreateUser(th.Context, &model.User{Email: th.GenerateTestEmail(), Nickname: "test user0", Password: "test-password-0", Username: "test-user-0", Roles: model.SystemUserRoleId})
require.Nil(t, err) require.Nil(t, err)
user1, err := th.App.CreateUser(th.Context, &model.User{Email: th.GenerateTestEmail(), Nickname: "test user1", Password: "test-password-1", Username: "test-user-1", Roles: model.SYSTEM_USER_ROLE_ID}) user1, err := th.App.CreateUser(th.Context, &model.User{Email: th.GenerateTestEmail(), Nickname: "test user1", Password: "test-password-1", Username: "test-user-1", Roles: model.SystemUserRoleId})
require.Nil(t, err) require.Nil(t, err)
user2, err := th.App.CreateUser(th.Context, &model.User{Email: th.GenerateTestEmail(), Nickname: "test user2", Password: "test-password-2", Username: "test-user-2", Roles: model.SYSTEM_USER_ROLE_ID}) user2, err := th.App.CreateUser(th.Context, &model.User{Email: th.GenerateTestEmail(), Nickname: "test user2", Password: "test-password-2", Username: "test-user-2", Roles: model.SystemUserRoleId})
require.Nil(t, err) require.Nil(t, err)
user3, err := th.App.CreateUser(th.Context, &model.User{Email: th.GenerateTestEmail(), Nickname: "test user3", Password: "test-password-3", Username: "test-user-3", Roles: model.SYSTEM_USER_ROLE_ID}) user3, err := th.App.CreateUser(th.Context, &model.User{Email: th.GenerateTestEmail(), Nickname: "test user3", Password: "test-password-3", Username: "test-user-3", Roles: model.SystemUserRoleId})
require.Nil(t, err) require.Nil(t, err)
user4, err := th.App.CreateUser(th.Context, &model.User{Email: th.GenerateTestEmail(), Nickname: "test user4", Password: "test-password-4", Username: "test-user-4", Roles: model.SYSTEM_USER_ROLE_ID}) user4, err := th.App.CreateUser(th.Context, &model.User{Email: th.GenerateTestEmail(), Nickname: "test user4", Password: "test-password-4", Username: "test-user-4", Roles: model.SystemUserRoleId})
require.Nil(t, err) require.Nil(t, err)
user5, err := th.App.CreateUser(th.Context, &model.User{Email: th.GenerateTestEmail(), Nickname: "test user5", Password: "test-password-5", Username: "test-user-5", Roles: model.SYSTEM_USER_ROLE_ID}) user5, err := th.App.CreateUser(th.Context, &model.User{Email: th.GenerateTestEmail(), Nickname: "test user5", Password: "test-password-5", Username: "test-user-5", Roles: model.SystemUserRoleId})
require.Nil(t, err) require.Nil(t, err)
team1, err := th.App.CreateTeam(th.Context, &model.Team{DisplayName: "dn_" + model.NewId(), Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TEAM_OPEN}) team1, err := th.App.CreateTeam(th.Context, &model.Team{DisplayName: "dn_" + model.NewId(), Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TeamOpen})
require.Nil(t, err) require.Nil(t, err)
team2, err := th.App.CreateTeam(th.Context, &model.Team{DisplayName: "dn_" + model.NewId(), Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TEAM_OPEN}) team2, err := th.App.CreateTeam(th.Context, &model.Team{DisplayName: "dn_" + model.NewId(), Name: GenerateTestTeamName(), Email: th.GenerateTestEmail(), Type: model.TeamOpen})
require.Nil(t, err) require.Nil(t, err)
channel1, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: "dn_" + model.NewId(), Name: "name_" + model.NewId(), Type: model.CHANNEL_OPEN, TeamId: team1.Id, CreatorId: model.NewId()}, false) channel1, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: "dn_" + model.NewId(), Name: "name_" + model.NewId(), Type: model.ChannelTypeOpen, TeamId: team1.Id, CreatorId: model.NewId()}, false)
require.Nil(t, err) require.Nil(t, err)
channel2, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: "dn_" + model.NewId(), Name: "name_" + model.NewId(), Type: model.CHANNEL_OPEN, TeamId: team1.Id, CreatorId: model.NewId()}, false) channel2, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: "dn_" + model.NewId(), Name: "name_" + model.NewId(), Type: model.ChannelTypeOpen, TeamId: team1.Id, CreatorId: model.NewId()}, false)
require.Nil(t, err) require.Nil(t, err)
channel3, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: "dn_" + model.NewId(), Name: "name_" + model.NewId(), Type: model.CHANNEL_OPEN, TeamId: team2.Id, CreatorId: model.NewId()}, false) channel3, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: "dn_" + model.NewId(), Name: "name_" + model.NewId(), Type: model.ChannelTypeOpen, TeamId: team2.Id, CreatorId: model.NewId()}, false)
require.Nil(t, err) require.Nil(t, err)
th.LinkUserToTeam(user1, team1) th.LinkUserToTeam(user1, team1)
@@ -124,14 +124,14 @@ func TestApiResctrictedViewMembers(t *testing.T) {
for _, tc := range testCases { for _, tc := range testCases {
t.Run(tc.Name, func(t *testing.T) { t.Run(tc.Name, func(t *testing.T) {
if tc.RestrictedTo == "channels" { if tc.RestrictedTo == "channels" {
th.RemovePermissionFromRole(model.PERMISSION_VIEW_MEMBERS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionViewMembers.Id, model.SystemUserRoleId)
th.RemovePermissionFromRole(model.PERMISSION_VIEW_MEMBERS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionViewMembers.Id, model.TeamUserRoleId)
} else if tc.RestrictedTo == "teams" { } else if tc.RestrictedTo == "teams" {
th.RemovePermissionFromRole(model.PERMISSION_VIEW_MEMBERS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionViewMembers.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_VIEW_MEMBERS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionViewMembers.Id, model.TeamUserRoleId)
} else { } else {
th.RemovePermissionFromRole(model.PERMISSION_VIEW_MEMBERS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionViewMembers.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_VIEW_MEMBERS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionViewMembers.Id, model.SystemUserRoleId)
} }
_, resp := th.Client.GetUser(tc.UserId, "") _, resp := th.Client.GetUser(tc.UserId, "")
@@ -206,14 +206,14 @@ func TestApiResctrictedViewMembers(t *testing.T) {
for _, tc := range testCases { for _, tc := range testCases {
t.Run(tc.Name, func(t *testing.T) { t.Run(tc.Name, func(t *testing.T) {
if tc.RestrictedTo == "channels" { if tc.RestrictedTo == "channels" {
th.RemovePermissionFromRole(model.PERMISSION_VIEW_MEMBERS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionViewMembers.Id, model.SystemUserRoleId)
th.RemovePermissionFromRole(model.PERMISSION_VIEW_MEMBERS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionViewMembers.Id, model.TeamUserRoleId)
} else if tc.RestrictedTo == "teams" { } else if tc.RestrictedTo == "teams" {
th.RemovePermissionFromRole(model.PERMISSION_VIEW_MEMBERS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionViewMembers.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_VIEW_MEMBERS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionViewMembers.Id, model.TeamUserRoleId)
} else { } else {
th.RemovePermissionFromRole(model.PERMISSION_VIEW_MEMBERS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionViewMembers.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_VIEW_MEMBERS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionViewMembers.Id, model.SystemUserRoleId)
} }
_, resp := th.Client.GetUserByUsername(tc.Username, "") _, resp := th.Client.GetUserByUsername(tc.Username, "")
@@ -288,14 +288,14 @@ func TestApiResctrictedViewMembers(t *testing.T) {
for _, tc := range testCases { for _, tc := range testCases {
t.Run(tc.Name, func(t *testing.T) { t.Run(tc.Name, func(t *testing.T) {
if tc.RestrictedTo == "channels" { if tc.RestrictedTo == "channels" {
th.RemovePermissionFromRole(model.PERMISSION_VIEW_MEMBERS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionViewMembers.Id, model.SystemUserRoleId)
th.RemovePermissionFromRole(model.PERMISSION_VIEW_MEMBERS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionViewMembers.Id, model.TeamUserRoleId)
} else if tc.RestrictedTo == "teams" { } else if tc.RestrictedTo == "teams" {
th.RemovePermissionFromRole(model.PERMISSION_VIEW_MEMBERS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionViewMembers.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_VIEW_MEMBERS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionViewMembers.Id, model.TeamUserRoleId)
} else { } else {
th.RemovePermissionFromRole(model.PERMISSION_VIEW_MEMBERS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionViewMembers.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_VIEW_MEMBERS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionViewMembers.Id, model.SystemUserRoleId)
} }
_, resp := th.Client.GetUserByEmail(tc.Email, "") _, resp := th.Client.GetUserByEmail(tc.Email, "")
@@ -370,14 +370,14 @@ func TestApiResctrictedViewMembers(t *testing.T) {
for _, tc := range testCases { for _, tc := range testCases {
t.Run(tc.Name, func(t *testing.T) { t.Run(tc.Name, func(t *testing.T) {
if tc.RestrictedTo == "channels" { if tc.RestrictedTo == "channels" {
th.RemovePermissionFromRole(model.PERMISSION_VIEW_MEMBERS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionViewMembers.Id, model.SystemUserRoleId)
th.RemovePermissionFromRole(model.PERMISSION_VIEW_MEMBERS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionViewMembers.Id, model.TeamUserRoleId)
} else if tc.RestrictedTo == "teams" { } else if tc.RestrictedTo == "teams" {
th.RemovePermissionFromRole(model.PERMISSION_VIEW_MEMBERS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionViewMembers.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_VIEW_MEMBERS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionViewMembers.Id, model.TeamUserRoleId)
} else { } else {
th.RemovePermissionFromRole(model.PERMISSION_VIEW_MEMBERS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionViewMembers.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_VIEW_MEMBERS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionViewMembers.Id, model.SystemUserRoleId)
} }
_, resp := th.Client.GetDefaultProfileImage(tc.UserId) _, resp := th.Client.GetDefaultProfileImage(tc.UserId)
@@ -452,14 +452,14 @@ func TestApiResctrictedViewMembers(t *testing.T) {
for _, tc := range testCases { for _, tc := range testCases {
t.Run(tc.Name, func(t *testing.T) { t.Run(tc.Name, func(t *testing.T) {
if tc.RestrictedTo == "channels" { if tc.RestrictedTo == "channels" {
th.RemovePermissionFromRole(model.PERMISSION_VIEW_MEMBERS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionViewMembers.Id, model.SystemUserRoleId)
th.RemovePermissionFromRole(model.PERMISSION_VIEW_MEMBERS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionViewMembers.Id, model.TeamUserRoleId)
} else if tc.RestrictedTo == "teams" { } else if tc.RestrictedTo == "teams" {
th.RemovePermissionFromRole(model.PERMISSION_VIEW_MEMBERS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionViewMembers.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_VIEW_MEMBERS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionViewMembers.Id, model.TeamUserRoleId)
} else { } else {
th.RemovePermissionFromRole(model.PERMISSION_VIEW_MEMBERS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionViewMembers.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_VIEW_MEMBERS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionViewMembers.Id, model.SystemUserRoleId)
} }
_, resp := th.Client.GetProfileImage(tc.UserId, "") _, resp := th.Client.GetProfileImage(tc.UserId, "")

Просмотреть файл

@@ -43,22 +43,22 @@ func createIncomingHook(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("channel", channel) auditRec.AddMeta("channel", channel)
c.LogAudit("attempt") c.LogAudit("attempt")
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PERMISSION_MANAGE_INCOMING_WEBHOOKS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PermissionManageIncomingWebhooks) {
c.SetPermissionError(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS) c.SetPermissionError(model.PermissionManageIncomingWebhooks)
return return
} }
if channel.Type != model.CHANNEL_OPEN && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PERMISSION_READ_CHANNEL) { if channel.Type != model.ChannelTypeOpen && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PermissionReadChannel) {
c.LogAudit("fail - bad channel permissions") c.LogAudit("fail - bad channel permissions")
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
userId := c.AppContext.Session().UserId userId := c.AppContext.Session().UserId
if hook.UserId != "" && hook.UserId != userId { if hook.UserId != "" && hook.UserId != userId {
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PERMISSION_MANAGE_OTHERS_INCOMING_WEBHOOKS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PermissionManageOthersIncomingWebhooks) {
c.LogAudit("fail - innapropriate permissions") c.LogAudit("fail - innapropriate permissions")
c.SetPermissionError(model.PERMISSION_MANAGE_OTHERS_INCOMING_WEBHOOKS) c.SetPermissionError(model.PermissionManageOthersIncomingWebhooks)
return return
} }
@@ -136,20 +136,20 @@ func updateIncomingHook(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PERMISSION_MANAGE_INCOMING_WEBHOOKS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PermissionManageIncomingWebhooks) {
c.SetPermissionError(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS) c.SetPermissionError(model.PermissionManageIncomingWebhooks)
return return
} }
if c.AppContext.Session().UserId != oldHook.UserId && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PERMISSION_MANAGE_OTHERS_INCOMING_WEBHOOKS) { if c.AppContext.Session().UserId != oldHook.UserId && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), channel.TeamId, model.PermissionManageOthersIncomingWebhooks) {
c.LogAudit("fail - inappropriate permissions") c.LogAudit("fail - inappropriate permissions")
c.SetPermissionError(model.PERMISSION_MANAGE_OTHERS_INCOMING_WEBHOOKS) c.SetPermissionError(model.PermissionManageOthersIncomingWebhooks)
return return
} }
if channel.Type != model.CHANNEL_OPEN && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PERMISSION_READ_CHANNEL) { if channel.Type != model.ChannelTypeOpen && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channel.Id, model.PermissionReadChannel) {
c.LogAudit("fail - bad channel permissions") c.LogAudit("fail - bad channel permissions")
c.SetPermissionError(model.PERMISSION_READ_CHANNEL) c.SetPermissionError(model.PermissionReadChannel)
return return
} }
@@ -174,25 +174,25 @@ func getIncomingHooks(c *Context, w http.ResponseWriter, r *http.Request) {
var err *model.AppError var err *model.AppError
if teamId != "" { if teamId != "" {
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), teamId, model.PERMISSION_MANAGE_INCOMING_WEBHOOKS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), teamId, model.PermissionManageIncomingWebhooks) {
c.SetPermissionError(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS) c.SetPermissionError(model.PermissionManageIncomingWebhooks)
return return
} }
// Remove userId as a filter if they have permission to manage others. // Remove userId as a filter if they have permission to manage others.
if c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), teamId, model.PERMISSION_MANAGE_OTHERS_INCOMING_WEBHOOKS) { if c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), teamId, model.PermissionManageOthersIncomingWebhooks) {
userId = "" userId = ""
} }
hooks, err = c.App.GetIncomingWebhooksForTeamPageByUser(teamId, userId, c.Params.Page, c.Params.PerPage) hooks, err = c.App.GetIncomingWebhooksForTeamPageByUser(teamId, userId, c.Params.Page, c.Params.PerPage)
} else { } else {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_INCOMING_WEBHOOKS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageIncomingWebhooks) {
c.SetPermissionError(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS) c.SetPermissionError(model.PermissionManageIncomingWebhooks)
return return
} }
// Remove userId as a filter if they have permission to manage others. // Remove userId as a filter if they have permission to manage others.
if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_OTHERS_INCOMING_WEBHOOKS) { if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageOthersIncomingWebhooks) {
userId = "" userId = ""
} }
@@ -239,16 +239,16 @@ func getIncomingHook(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PERMISSION_MANAGE_INCOMING_WEBHOOKS) || if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PermissionManageIncomingWebhooks) ||
(channel.Type != model.CHANNEL_OPEN && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), hook.ChannelId, model.PERMISSION_READ_CHANNEL)) { (channel.Type != model.ChannelTypeOpen && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), hook.ChannelId, model.PermissionReadChannel)) {
c.LogAudit("fail - bad permissions") c.LogAudit("fail - bad permissions")
c.SetPermissionError(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS) c.SetPermissionError(model.PermissionManageIncomingWebhooks)
return return
} }
if c.AppContext.Session().UserId != hook.UserId && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PERMISSION_MANAGE_OTHERS_INCOMING_WEBHOOKS) { if c.AppContext.Session().UserId != hook.UserId && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PermissionManageOthersIncomingWebhooks) {
c.LogAudit("fail - inappropriate permissions") c.LogAudit("fail - inappropriate permissions")
c.SetPermissionError(model.PERMISSION_MANAGE_OTHERS_INCOMING_WEBHOOKS) c.SetPermissionError(model.PermissionManageOthersIncomingWebhooks)
return return
} }
@@ -290,16 +290,16 @@ func deleteIncomingHook(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("channel_name", channel.Name) auditRec.AddMeta("channel_name", channel.Name)
auditRec.AddMeta("team_id", hook.TeamId) auditRec.AddMeta("team_id", hook.TeamId)
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PERMISSION_MANAGE_INCOMING_WEBHOOKS) || if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PermissionManageIncomingWebhooks) ||
(channel.Type != model.CHANNEL_OPEN && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), hook.ChannelId, model.PERMISSION_READ_CHANNEL)) { (channel.Type != model.ChannelTypeOpen && !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), hook.ChannelId, model.PermissionReadChannel)) {
c.LogAudit("fail - bad permissions") c.LogAudit("fail - bad permissions")
c.SetPermissionError(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS) c.SetPermissionError(model.PermissionManageIncomingWebhooks)
return return
} }
if c.AppContext.Session().UserId != hook.UserId && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PERMISSION_MANAGE_OTHERS_INCOMING_WEBHOOKS) { if c.AppContext.Session().UserId != hook.UserId && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PermissionManageOthersIncomingWebhooks) {
c.LogAudit("fail - inappropriate permissions") c.LogAudit("fail - inappropriate permissions")
c.SetPermissionError(model.PERMISSION_MANAGE_OTHERS_INCOMING_WEBHOOKS) c.SetPermissionError(model.PermissionManageOthersIncomingWebhooks)
return return
} }
@@ -353,14 +353,14 @@ func updateOutgoingHook(c *Context, w http.ResponseWriter, r *http.Request) {
return return
} }
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), updatedHook.TeamId, model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), updatedHook.TeamId, model.PermissionManageOutgoingWebhooks) {
c.SetPermissionError(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS) c.SetPermissionError(model.PermissionManageOutgoingWebhooks)
return return
} }
if c.AppContext.Session().UserId != oldHook.CreatorId && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), updatedHook.TeamId, model.PERMISSION_MANAGE_OTHERS_OUTGOING_WEBHOOKS) { if c.AppContext.Session().UserId != oldHook.CreatorId && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), updatedHook.TeamId, model.PermissionManageOthersOutgoingWebhooks) {
c.LogAudit("fail - inappropriate permissions") c.LogAudit("fail - inappropriate permissions")
c.SetPermissionError(model.PERMISSION_MANAGE_OTHERS_OUTGOING_WEBHOOKS) c.SetPermissionError(model.PermissionManageOthersOutgoingWebhooks)
return return
} }
@@ -390,17 +390,17 @@ func createOutgoingHook(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("hook_id", hook.Id) auditRec.AddMeta("hook_id", hook.Id)
c.LogAudit("attempt") c.LogAudit("attempt")
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PermissionManageOutgoingWebhooks) {
c.SetPermissionError(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS) c.SetPermissionError(model.PermissionManageOutgoingWebhooks)
return return
} }
if hook.CreatorId == "" { if hook.CreatorId == "" {
hook.CreatorId = c.AppContext.Session().UserId hook.CreatorId = c.AppContext.Session().UserId
} else { } else {
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PERMISSION_MANAGE_OTHERS_OUTGOING_WEBHOOKS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PermissionManageOthersOutgoingWebhooks) {
c.LogAudit("fail - innapropriate permissions") c.LogAudit("fail - innapropriate permissions")
c.SetPermissionError(model.PERMISSION_MANAGE_OTHERS_OUTGOING_WEBHOOKS) c.SetPermissionError(model.PermissionManageOthersOutgoingWebhooks)
return return
} }
@@ -437,37 +437,37 @@ func getOutgoingHooks(c *Context, w http.ResponseWriter, r *http.Request) {
var err *model.AppError var err *model.AppError
if channelId != "" { if channelId != "" {
if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channelId, model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS) { if !c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channelId, model.PermissionManageOutgoingWebhooks) {
c.SetPermissionError(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS) c.SetPermissionError(model.PermissionManageOutgoingWebhooks)
return return
} }
// Remove userId as a filter if they have permission to manage others. // Remove userId as a filter if they have permission to manage others.
if c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channelId, model.PERMISSION_MANAGE_OTHERS_OUTGOING_WEBHOOKS) { if c.App.SessionHasPermissionToChannel(*c.AppContext.Session(), channelId, model.PermissionManageOthersOutgoingWebhooks) {
userId = "" userId = ""
} }
hooks, err = c.App.GetOutgoingWebhooksForChannelPageByUser(channelId, userId, c.Params.Page, c.Params.PerPage) hooks, err = c.App.GetOutgoingWebhooksForChannelPageByUser(channelId, userId, c.Params.Page, c.Params.PerPage)
} else if teamId != "" { } else if teamId != "" {
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), teamId, model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), teamId, model.PermissionManageOutgoingWebhooks) {
c.SetPermissionError(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS) c.SetPermissionError(model.PermissionManageOutgoingWebhooks)
return return
} }
// Remove userId as a filter if they have permission to manage others. // Remove userId as a filter if they have permission to manage others.
if c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), teamId, model.PERMISSION_MANAGE_OTHERS_OUTGOING_WEBHOOKS) { if c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), teamId, model.PermissionManageOthersOutgoingWebhooks) {
userId = "" userId = ""
} }
hooks, err = c.App.GetOutgoingWebhooksForTeamPageByUser(teamId, userId, c.Params.Page, c.Params.PerPage) hooks, err = c.App.GetOutgoingWebhooksForTeamPageByUser(teamId, userId, c.Params.Page, c.Params.PerPage)
} else { } else {
if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS) { if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageOutgoingWebhooks) {
c.SetPermissionError(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS) c.SetPermissionError(model.PermissionManageOutgoingWebhooks)
return return
} }
// Remove userId as a filter if they have permission to manage others. // Remove userId as a filter if they have permission to manage others.
if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PERMISSION_MANAGE_OTHERS_OUTGOING_WEBHOOKS) { if c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionManageOthersOutgoingWebhooks) {
userId = "" userId = ""
} }
@@ -502,14 +502,14 @@ func getOutgoingHook(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("team_id", hook.TeamId) auditRec.AddMeta("team_id", hook.TeamId)
c.LogAudit("attempt") c.LogAudit("attempt")
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PermissionManageOutgoingWebhooks) {
c.SetPermissionError(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS) c.SetPermissionError(model.PermissionManageOutgoingWebhooks)
return return
} }
if c.AppContext.Session().UserId != hook.CreatorId && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PERMISSION_MANAGE_OTHERS_OUTGOING_WEBHOOKS) { if c.AppContext.Session().UserId != hook.CreatorId && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PermissionManageOthersOutgoingWebhooks) {
c.LogAudit("fail - inappropriate permissions") c.LogAudit("fail - inappropriate permissions")
c.SetPermissionError(model.PERMISSION_MANAGE_OTHERS_OUTGOING_WEBHOOKS) c.SetPermissionError(model.PermissionManageOthersOutgoingWebhooks)
return return
} }
@@ -539,14 +539,14 @@ func regenOutgoingHookToken(c *Context, w http.ResponseWriter, r *http.Request)
auditRec.AddMeta("team_id", hook.TeamId) auditRec.AddMeta("team_id", hook.TeamId)
c.LogAudit("attempt") c.LogAudit("attempt")
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PermissionManageOutgoingWebhooks) {
c.SetPermissionError(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS) c.SetPermissionError(model.PermissionManageOutgoingWebhooks)
return return
} }
if c.AppContext.Session().UserId != hook.CreatorId && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PERMISSION_MANAGE_OTHERS_OUTGOING_WEBHOOKS) { if c.AppContext.Session().UserId != hook.CreatorId && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PermissionManageOthersOutgoingWebhooks) {
c.LogAudit("fail - inappropriate permissions") c.LogAudit("fail - inappropriate permissions")
c.SetPermissionError(model.PERMISSION_MANAGE_OTHERS_OUTGOING_WEBHOOKS) c.SetPermissionError(model.PermissionManageOthersOutgoingWebhooks)
return return
} }
@@ -582,14 +582,14 @@ func deleteOutgoingHook(c *Context, w http.ResponseWriter, r *http.Request) {
auditRec.AddMeta("team_id", hook.TeamId) auditRec.AddMeta("team_id", hook.TeamId)
c.LogAudit("attempt") c.LogAudit("attempt")
if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS) { if !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PermissionManageOutgoingWebhooks) {
c.SetPermissionError(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS) c.SetPermissionError(model.PermissionManageOutgoingWebhooks)
return return
} }
if c.AppContext.Session().UserId != hook.CreatorId && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PERMISSION_MANAGE_OTHERS_OUTGOING_WEBHOOKS) { if c.AppContext.Session().UserId != hook.CreatorId && !c.App.SessionHasPermissionToTeam(*c.AppContext.Session(), hook.TeamId, model.PermissionManageOthersOutgoingWebhooks) {
c.LogAudit("fail - inappropriate permissions") c.LogAudit("fail - inappropriate permissions")
c.SetPermissionError(model.PERMISSION_MANAGE_OTHERS_OUTGOING_WEBHOOKS) c.SetPermissionError(model.PermissionManageOthersOutgoingWebhooks)
return return
} }

Просмотреть файл

@@ -27,8 +27,8 @@ func TestCreateIncomingWebhook(t *testing.T) {
defer func() { defer func() {
th.RestoreDefaultRolePermissions(defaultRolePermissions) th.RestoreDefaultRolePermissions(defaultRolePermissions)
}() }()
th.AddPermissionToRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionManageIncomingWebhooks.Id, model.TeamAdminRoleId)
th.RemovePermissionFromRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionManageIncomingWebhooks.Id, model.TeamUserRoleId)
hook := &model.IncomingWebhook{ChannelId: th.BasicChannel.Id} hook := &model.IncomingWebhook{ChannelId: th.BasicChannel.Id}
@@ -52,7 +52,7 @@ func TestCreateIncomingWebhook(t *testing.T) {
_, resp = Client.CreateIncomingWebhook(hook) _, resp = Client.CreateIncomingWebhook(hook)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
th.AddPermissionToRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageIncomingWebhooks.Id, model.TeamUserRoleId)
_, resp = Client.CreateIncomingWebhook(hook) _, resp = Client.CreateIncomingWebhook(hook)
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -110,9 +110,9 @@ func TestCreateIncomingWebhook_BypassTeamPermissions(t *testing.T) {
defaultRolePermissions := th.SaveDefaultRolePermissions() defaultRolePermissions := th.SaveDefaultRolePermissions()
defer th.RestoreDefaultRolePermissions(defaultRolePermissions) defer th.RestoreDefaultRolePermissions(defaultRolePermissions)
th.RemovePermissionFromRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionManageIncomingWebhooks.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionManageIncomingWebhooks.Id, model.TeamAdminRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageIncomingWebhooks.Id, model.TeamUserRoleId)
hook := &model.IncomingWebhook{ChannelId: th.BasicChannel.Id} hook := &model.IncomingWebhook{ChannelId: th.BasicChannel.Id}
@@ -127,7 +127,7 @@ func TestCreateIncomingWebhook_BypassTeamPermissions(t *testing.T) {
team.AllowOpenInvite = false team.AllowOpenInvite = false
th.Client.UpdateTeam(team) th.Client.UpdateTeam(team)
th.SystemAdminClient.RemoveTeamMember(team.Id, th.BasicUser.Id) th.SystemAdminClient.RemoveTeamMember(team.Id, th.BasicUser.Id)
channel := th.CreateChannelWithClientAndTeam(th.SystemAdminClient, model.CHANNEL_OPEN, team.Id) channel := th.CreateChannelWithClientAndTeam(th.SystemAdminClient, model.ChannelTypeOpen, team.Id)
hook = &model.IncomingWebhook{ChannelId: channel.Id} hook = &model.IncomingWebhook{ChannelId: channel.Id}
rhook, resp = th.Client.CreateIncomingWebhook(hook) rhook, resp = th.Client.CreateIncomingWebhook(hook)
@@ -145,8 +145,8 @@ func TestGetIncomingWebhooks(t *testing.T) {
defer func() { defer func() {
th.RestoreDefaultRolePermissions(defaultRolePermissions) th.RestoreDefaultRolePermissions(defaultRolePermissions)
}() }()
th.AddPermissionToRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionManageIncomingWebhooks.Id, model.TeamAdminRoleId)
th.RemovePermissionFromRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionManageIncomingWebhooks.Id, model.TeamUserRoleId)
hook := &model.IncomingWebhook{ChannelId: th.BasicChannel.Id} hook := &model.IncomingWebhook{ChannelId: th.BasicChannel.Id}
rhook, resp := th.SystemAdminClient.CreateIncomingWebhook(hook) rhook, resp := th.SystemAdminClient.CreateIncomingWebhook(hook)
@@ -191,7 +191,7 @@ func TestGetIncomingWebhooks(t *testing.T) {
_, resp = Client.GetIncomingWebhooks(0, 1000, "") _, resp = Client.GetIncomingWebhooks(0, 1000, "")
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
th.AddPermissionToRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageIncomingWebhooks.Id, model.TeamUserRoleId)
_, resp = Client.GetIncomingWebhooksForTeam(th.BasicTeam.Id, 0, 1000, "") _, resp = Client.GetIncomingWebhooksForTeam(th.BasicTeam.Id, 0, 1000, "")
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -219,8 +219,8 @@ func TestGetIncomingWebhooksListByUser(t *testing.T) {
defer func() { defer func() {
th.RestoreDefaultRolePermissions(defaultRolePermissions) th.RestoreDefaultRolePermissions(defaultRolePermissions)
}() }()
th.AddPermissionToRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionManageIncomingWebhooks.Id, model.TeamAdminRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageIncomingWebhooks.Id, model.SystemUserRoleId)
// Basic user webhook // Basic user webhook
bHook := &model.IncomingWebhook{ChannelId: th.BasicChannel.Id, TeamId: th.BasicTeam.Id, UserId: th.BasicUser.Id} bHook := &model.IncomingWebhook{ChannelId: th.BasicChannel.Id, TeamId: th.BasicTeam.Id, UserId: th.BasicUser.Id}
@@ -261,8 +261,8 @@ func TestGetIncomingWebhooksByTeam(t *testing.T) {
defer func() { defer func() {
th.RestoreDefaultRolePermissions(defaultRolePermissions) th.RestoreDefaultRolePermissions(defaultRolePermissions)
}() }()
th.AddPermissionToRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionManageIncomingWebhooks.Id, model.TeamAdminRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageIncomingWebhooks.Id, model.TeamUserRoleId)
// Basic user webhook // Basic user webhook
bHook := &model.IncomingWebhook{ChannelId: th.BasicChannel.Id, TeamId: th.BasicTeam.Id, UserId: th.BasicUser.Id} bHook := &model.IncomingWebhook{ChannelId: th.BasicChannel.Id, TeamId: th.BasicTeam.Id, UserId: th.BasicUser.Id}
@@ -385,8 +385,8 @@ func TestCreateOutgoingWebhook(t *testing.T) {
defer func() { defer func() {
th.RestoreDefaultRolePermissions(defaultRolePermissions) th.RestoreDefaultRolePermissions(defaultRolePermissions)
}() }()
th.AddPermissionToRole(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOutgoingWebhooks.Id, model.TeamAdminRoleId)
th.RemovePermissionFromRole(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionManageOutgoingWebhooks.Id, model.TeamUserRoleId)
hook := &model.OutgoingWebhook{ChannelId: th.BasicChannel.Id, TeamId: th.BasicChannel.TeamId, CallbackURLs: []string{"http://nowhere.com"}, Username: "some-user-name", IconURL: "http://some-icon-url/"} hook := &model.OutgoingWebhook{ChannelId: th.BasicChannel.Id, TeamId: th.BasicChannel.TeamId, CallbackURLs: []string{"http://nowhere.com"}, Username: "some-user-name", IconURL: "http://some-icon-url/"}
@@ -410,7 +410,7 @@ func TestCreateOutgoingWebhook(t *testing.T) {
_, resp = Client.CreateOutgoingWebhook(hook) _, resp = Client.CreateOutgoingWebhook(hook)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
th.AddPermissionToRole(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOutgoingWebhooks.Id, model.TeamUserRoleId)
_, resp = Client.CreateOutgoingWebhook(hook) _, resp = Client.CreateOutgoingWebhook(hook)
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -461,8 +461,8 @@ func TestGetOutgoingWebhooks(t *testing.T) {
defer func() { defer func() {
th.RestoreDefaultRolePermissions(defaultRolePermissions) th.RestoreDefaultRolePermissions(defaultRolePermissions)
}() }()
th.AddPermissionToRole(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOutgoingWebhooks.Id, model.TeamAdminRoleId)
th.RemovePermissionFromRole(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionManageOutgoingWebhooks.Id, model.TeamUserRoleId)
hook := &model.OutgoingWebhook{ChannelId: th.BasicChannel.Id, TeamId: th.BasicChannel.TeamId, CallbackURLs: []string{"http://nowhere.com"}} hook := &model.OutgoingWebhook{ChannelId: th.BasicChannel.Id, TeamId: th.BasicChannel.TeamId, CallbackURLs: []string{"http://nowhere.com"}}
rhook, resp := th.SystemAdminClient.CreateOutgoingWebhook(hook) rhook, resp := th.SystemAdminClient.CreateOutgoingWebhook(hook)
@@ -522,7 +522,7 @@ func TestGetOutgoingWebhooks(t *testing.T) {
_, resp = th.Client.GetOutgoingWebhooks(0, 1000, "") _, resp = th.Client.GetOutgoingWebhooks(0, 1000, "")
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
th.AddPermissionToRole(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOutgoingWebhooks.Id, model.TeamUserRoleId)
_, resp = th.Client.GetOutgoingWebhooksForTeam(th.BasicTeam.Id, 0, 1000, "") _, resp = th.Client.GetOutgoingWebhooksForTeam(th.BasicTeam.Id, 0, 1000, "")
CheckNoError(t, resp) CheckNoError(t, resp)
@@ -554,8 +554,8 @@ func TestGetOutgoingWebhooksByTeam(t *testing.T) {
defer func() { defer func() {
th.RestoreDefaultRolePermissions(defaultRolePermissions) th.RestoreDefaultRolePermissions(defaultRolePermissions)
}() }()
th.AddPermissionToRole(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOutgoingWebhooks.Id, model.TeamAdminRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOutgoingWebhooks.Id, model.TeamUserRoleId)
// Basic user webhook // Basic user webhook
bHook := &model.OutgoingWebhook{ChannelId: th.BasicChannel.Id, TeamId: th.BasicChannel.TeamId, CallbackURLs: []string{"http://nowhere.com"}} bHook := &model.OutgoingWebhook{ChannelId: th.BasicChannel.Id, TeamId: th.BasicChannel.TeamId, CallbackURLs: []string{"http://nowhere.com"}}
@@ -595,8 +595,8 @@ func TestGetOutgoingWebhooksByChannel(t *testing.T) {
defer func() { defer func() {
th.RestoreDefaultRolePermissions(defaultRolePermissions) th.RestoreDefaultRolePermissions(defaultRolePermissions)
}() }()
th.AddPermissionToRole(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOutgoingWebhooks.Id, model.TeamAdminRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOutgoingWebhooks.Id, model.TeamUserRoleId)
// Basic user webhook // Basic user webhook
bHook := &model.OutgoingWebhook{ChannelId: th.BasicChannel.Id, TeamId: th.BasicChannel.TeamId, CallbackURLs: []string{"http://nowhere.com"}} bHook := &model.OutgoingWebhook{ChannelId: th.BasicChannel.Id, TeamId: th.BasicChannel.TeamId, CallbackURLs: []string{"http://nowhere.com"}}
@@ -637,8 +637,8 @@ func TestGetOutgoingWebhooksListByUser(t *testing.T) {
defer func() { defer func() {
th.RestoreDefaultRolePermissions(defaultRolePermissions) th.RestoreDefaultRolePermissions(defaultRolePermissions)
}() }()
th.AddPermissionToRole(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOutgoingWebhooks.Id, model.TeamAdminRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.SYSTEM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOutgoingWebhooks.Id, model.SystemUserRoleId)
// Basic user webhook // Basic user webhook
bHook := &model.OutgoingWebhook{ChannelId: th.BasicChannel.Id, TeamId: th.BasicChannel.TeamId, CallbackURLs: []string{"http://nowhere.com"}} bHook := &model.OutgoingWebhook{ChannelId: th.BasicChannel.Id, TeamId: th.BasicChannel.TeamId, CallbackURLs: []string{"http://nowhere.com"}}
@@ -710,8 +710,8 @@ func TestUpdateIncomingHook(t *testing.T) {
defer func() { defer func() {
th.RestoreDefaultRolePermissions(defaultRolePermissions) th.RestoreDefaultRolePermissions(defaultRolePermissions)
}() }()
th.AddPermissionToRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionManageIncomingWebhooks.Id, model.TeamAdminRoleId)
th.RemovePermissionFromRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionManageIncomingWebhooks.Id, model.TeamUserRoleId)
hook1 := &model.IncomingWebhook{ChannelId: th.BasicChannel.Id} hook1 := &model.IncomingWebhook{ChannelId: th.BasicChannel.Id}
@@ -814,11 +814,11 @@ func TestUpdateIncomingHook(t *testing.T) {
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
}) })
th.RemovePermissionFromRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionManageIncomingWebhooks.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionManageIncomingWebhooks.Id, model.TeamAdminRoleId)
t.Run("OnlyAdminIntegrationsDisabled", func(t *testing.T) { t.Run("OnlyAdminIntegrationsDisabled", func(t *testing.T) {
th.AddPermissionToRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageIncomingWebhooks.Id, model.TeamUserRoleId)
t.Run("UpdateHookOfSameUser", func(t *testing.T) { t.Run("UpdateHookOfSameUser", func(t *testing.T) {
sameUserHook := &model.IncomingWebhook{ChannelId: th.BasicChannel.Id} sameUserHook := &model.IncomingWebhook{ChannelId: th.BasicChannel.Id}
@@ -837,8 +837,8 @@ func TestUpdateIncomingHook(t *testing.T) {
}) })
}) })
th.RemovePermissionFromRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionManageIncomingWebhooks.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionManageIncomingWebhooks.Id, model.TeamAdminRoleId)
th.Client.Logout() th.Client.Logout()
th.UpdateUserToTeamAdmin(th.BasicUser2, th.BasicTeam) th.UpdateUserToTeamAdmin(th.BasicUser2, th.BasicTeam)
@@ -895,9 +895,9 @@ func TestUpdateIncomingWebhook_BypassTeamPermissions(t *testing.T) {
defaultRolePermissions := th.SaveDefaultRolePermissions() defaultRolePermissions := th.SaveDefaultRolePermissions()
defer th.RestoreDefaultRolePermissions(defaultRolePermissions) defer th.RestoreDefaultRolePermissions(defaultRolePermissions)
th.RemovePermissionFromRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionManageIncomingWebhooks.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionManageIncomingWebhooks.Id, model.TeamAdminRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageIncomingWebhooks.Id, model.TeamUserRoleId)
hook := &model.IncomingWebhook{ChannelId: th.BasicChannel.Id} hook := &model.IncomingWebhook{ChannelId: th.BasicChannel.Id}
@@ -912,7 +912,7 @@ func TestUpdateIncomingWebhook_BypassTeamPermissions(t *testing.T) {
team.AllowOpenInvite = false team.AllowOpenInvite = false
th.Client.UpdateTeam(team) th.Client.UpdateTeam(team)
th.SystemAdminClient.RemoveTeamMember(team.Id, th.BasicUser.Id) th.SystemAdminClient.RemoveTeamMember(team.Id, th.BasicUser.Id)
channel := th.CreateChannelWithClientAndTeam(th.SystemAdminClient, model.CHANNEL_OPEN, team.Id) channel := th.CreateChannelWithClientAndTeam(th.SystemAdminClient, model.ChannelTypeOpen, team.Id)
hook2 := &model.IncomingWebhook{Id: rhook.Id, ChannelId: channel.Id} hook2 := &model.IncomingWebhook{Id: rhook.Id, ChannelId: channel.Id}
rhook, resp = th.Client.UpdateIncomingWebhook(hook2) rhook, resp = th.Client.UpdateIncomingWebhook(hook2)
@@ -958,8 +958,8 @@ func TestUpdateOutgoingHook(t *testing.T) {
defer func() { defer func() {
th.RestoreDefaultRolePermissions(defaultRolePermissions) th.RestoreDefaultRolePermissions(defaultRolePermissions)
}() }()
th.AddPermissionToRole(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOutgoingWebhooks.Id, model.TeamAdminRoleId)
th.RemovePermissionFromRole(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionManageOutgoingWebhooks.Id, model.TeamUserRoleId)
createdHook := &model.OutgoingWebhook{ChannelId: th.BasicChannel.Id, TeamId: th.BasicChannel.TeamId, createdHook := &model.OutgoingWebhook{ChannelId: th.BasicChannel.Id, TeamId: th.BasicChannel.TeamId,
CallbackURLs: []string{"http://nowhere.com"}, TriggerWords: []string{"cats"}} CallbackURLs: []string{"http://nowhere.com"}, TriggerWords: []string{"cats"}}
@@ -1050,7 +1050,7 @@ func TestUpdateOutgoingHook(t *testing.T) {
CheckForbiddenStatus(t, rresp) CheckForbiddenStatus(t, rresp)
}) })
th.AddPermissionToRole(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOutgoingWebhooks.Id, model.TeamUserRoleId)
hook2 := &model.OutgoingWebhook{ChannelId: th.BasicChannel.Id, TeamId: th.BasicChannel.TeamId, hook2 := &model.OutgoingWebhook{ChannelId: th.BasicChannel.Id, TeamId: th.BasicChannel.TeamId,
CallbackURLs: []string{"http://nowhere.com"}, TriggerWords: []string{"rats2"}} CallbackURLs: []string{"http://nowhere.com"}, TriggerWords: []string{"rats2"}}
@@ -1060,8 +1060,8 @@ func TestUpdateOutgoingHook(t *testing.T) {
_, resp = th.Client.UpdateOutgoingWebhook(createdHook2) _, resp = th.Client.UpdateOutgoingWebhook(createdHook2)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
th.RemovePermissionFromRole(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionManageOutgoingWebhooks.Id, model.TeamUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOutgoingWebhooks.Id, model.TeamAdminRoleId)
th.Client.Logout() th.Client.Logout()
th.UpdateUserToTeamAdmin(th.BasicUser2, th.BasicTeam) th.UpdateUserToTeamAdmin(th.BasicUser2, th.BasicTeam)
@@ -1151,9 +1151,9 @@ func TestUpdateOutgoingWebhook_BypassTeamPermissions(t *testing.T) {
defaultRolePermissions := th.SaveDefaultRolePermissions() defaultRolePermissions := th.SaveDefaultRolePermissions()
defer th.RestoreDefaultRolePermissions(defaultRolePermissions) defer th.RestoreDefaultRolePermissions(defaultRolePermissions)
th.RemovePermissionFromRole(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.SYSTEM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionManageOutgoingWebhooks.Id, model.SystemUserRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.TEAM_ADMIN_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOutgoingWebhooks.Id, model.TeamAdminRoleId)
th.AddPermissionToRole(model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.TEAM_USER_ROLE_ID) th.AddPermissionToRole(model.PermissionManageOutgoingWebhooks.Id, model.TeamUserRoleId)
hook := &model.OutgoingWebhook{ChannelId: th.BasicChannel.Id, TeamId: th.BasicChannel.TeamId, hook := &model.OutgoingWebhook{ChannelId: th.BasicChannel.Id, TeamId: th.BasicChannel.TeamId,
CallbackURLs: []string{"http://nowhere.com"}, TriggerWords: []string{"rats2"}} CallbackURLs: []string{"http://nowhere.com"}, TriggerWords: []string{"rats2"}}
@@ -1168,7 +1168,7 @@ func TestUpdateOutgoingWebhook_BypassTeamPermissions(t *testing.T) {
team.AllowOpenInvite = false team.AllowOpenInvite = false
th.Client.UpdateTeam(team) th.Client.UpdateTeam(team)
th.SystemAdminClient.RemoveTeamMember(team.Id, th.BasicUser.Id) th.SystemAdminClient.RemoveTeamMember(team.Id, th.BasicUser.Id)
channel := th.CreateChannelWithClientAndTeam(th.SystemAdminClient, model.CHANNEL_OPEN, team.Id) channel := th.CreateChannelWithClientAndTeam(th.SystemAdminClient, model.ChannelTypeOpen, team.Id)
hook2 := &model.OutgoingWebhook{Id: rhook.Id, ChannelId: channel.Id} hook2 := &model.OutgoingWebhook{Id: rhook.Id, ChannelId: channel.Id}
rhook, resp = th.Client.UpdateOutgoingWebhook(hook2) rhook, resp = th.Client.UpdateOutgoingWebhook(hook2)

Просмотреть файл

@@ -25,8 +25,8 @@ func (api *API) InitWebSocket() {
func connectWebSocket(c *Context, w http.ResponseWriter, r *http.Request) { func connectWebSocket(c *Context, w http.ResponseWriter, r *http.Request) {
upgrader := websocket.Upgrader{ upgrader := websocket.Upgrader{
ReadBufferSize: model.SOCKET_MAX_MESSAGE_SIZE_KB, ReadBufferSize: model.SocketMaxMessageSizeKb,
WriteBufferSize: model.SOCKET_MAX_MESSAGE_SIZE_KB, WriteBufferSize: model.SocketMaxMessageSizeKb,
CheckOrigin: c.App.OriginChecker(), CheckOrigin: c.App.OriginChecker(),
} }

Просмотреть файл

@@ -34,7 +34,7 @@ func TestWebSocket(t *testing.T) {
WebSocketClient.Listen() WebSocketClient.Listen()
resp := <-WebSocketClient.ResponseChannel resp := <-WebSocketClient.ResponseChannel
require.Equal(t, resp.Status, model.STATUS_OK, "should have responded OK to authentication challenge") require.Equal(t, resp.Status, model.StatusOk, "should have responded OK to authentication challenge")
WebSocketClient.SendMessage("ping", nil) WebSocketClient.SendMessage("ping", nil)
resp = <-WebSocketClient.ResponseChannel resp = <-WebSocketClient.ResponseChannel

Просмотреть файл

@@ -21,7 +21,7 @@ func TestWebSocketTrailingSlash(t *testing.T) {
defer th.TearDown() defer th.TearDown()
url := fmt.Sprintf("ws://localhost:%v", th.App.Srv().ListenAddr.Port) url := fmt.Sprintf("ws://localhost:%v", th.App.Srv().ListenAddr.Port)
_, _, err := websocket.DefaultDialer.Dial(url+model.API_URL_SUFFIX+"/websocket/", nil) _, _, err := websocket.DefaultDialer.Dial(url+model.ApiUrlSuffix+"/websocket/", nil)
require.NoError(t, err) require.NoError(t, err)
} }
@@ -36,11 +36,11 @@ func TestWebSocketEvent(t *testing.T) {
WebSocketClient.Listen() WebSocketClient.Listen()
resp := <-WebSocketClient.ResponseChannel resp := <-WebSocketClient.ResponseChannel
require.Equal(t, resp.Status, model.STATUS_OK, "should have responded OK to authentication challenge") require.Equal(t, resp.Status, model.StatusOk, "should have responded OK to authentication challenge")
omitUser := make(map[string]bool, 1) omitUser := make(map[string]bool, 1)
omitUser["somerandomid"] = true omitUser["somerandomid"] = true
evt1 := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_TYPING, "", th.BasicChannel.Id, "", omitUser) evt1 := model.NewWebSocketEvent(model.WebsocketEventTyping, "", th.BasicChannel.Id, "", omitUser)
evt1.Add("user_id", "somerandomid") evt1.Add("user_id", "somerandomid")
th.App.Publish(evt1) th.App.Publish(evt1)
@@ -53,7 +53,7 @@ func TestWebSocketEvent(t *testing.T) {
for { for {
select { select {
case resp := <-WebSocketClient.EventChannel: case resp := <-WebSocketClient.EventChannel:
if resp.EventType() == model.WEBSOCKET_EVENT_TYPING && resp.GetData()["user_id"].(string) == "somerandomid" { if resp.EventType() == model.WebsocketEventTyping && resp.GetData()["user_id"].(string) == "somerandomid" {
eventHit = true eventHit = true
} }
case <-stop: case <-stop:
@@ -68,7 +68,7 @@ func TestWebSocketEvent(t *testing.T) {
require.True(t, eventHit, "did not receive typing event") require.True(t, eventHit, "did not receive typing event")
evt2 := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_TYPING, "", "somerandomid", "", nil) evt2 := model.NewWebSocketEvent(model.WebsocketEventTyping, "", "somerandomid", "", nil)
th.App.Publish(evt2) th.App.Publish(evt2)
time.Sleep(300 * time.Millisecond) time.Sleep(300 * time.Millisecond)
@@ -78,7 +78,7 @@ func TestWebSocketEvent(t *testing.T) {
for { for {
select { select {
case resp := <-WebSocketClient.EventChannel: case resp := <-WebSocketClient.EventChannel:
if resp.EventType() == model.WEBSOCKET_EVENT_TYPING { if resp.EventType() == model.WebsocketEventTyping {
eventHit = true eventHit = true
} }
case <-stop: case <-stop:
@@ -114,10 +114,10 @@ func TestCreateDirectChannelWithSocket(t *testing.T) {
WebSocketClient.Listen() WebSocketClient.Listen()
resp := <-WebSocketClient.ResponseChannel resp := <-WebSocketClient.ResponseChannel
require.Equal(t, resp.Status, model.STATUS_OK, "should have responded OK to authentication challenge") require.Equal(t, resp.Status, model.StatusOk, "should have responded OK to authentication challenge")
wsr := <-WebSocketClient.EventChannel wsr := <-WebSocketClient.EventChannel
require.Equal(t, wsr.EventType(), model.WEBSOCKET_EVENT_HELLO, "missing hello") require.Equal(t, wsr.EventType(), model.WebsocketEventHello, "missing hello")
stop := make(chan bool) stop := make(chan bool)
count := 0 count := 0
@@ -126,7 +126,7 @@ func TestCreateDirectChannelWithSocket(t *testing.T) {
for { for {
select { select {
case wsr := <-WebSocketClient.EventChannel: case wsr := <-WebSocketClient.EventChannel:
if wsr != nil && wsr.EventType() == model.WEBSOCKET_EVENT_DIRECT_ADDED { if wsr != nil && wsr.EventType() == model.WebsocketEventDirectAdded {
count = count + 1 count = count + 1
} }
@@ -156,42 +156,42 @@ func TestWebsocketOriginSecurity(t *testing.T) {
url := fmt.Sprintf("ws://localhost:%v", th.App.Srv().ListenAddr.Port) url := fmt.Sprintf("ws://localhost:%v", th.App.Srv().ListenAddr.Port)
// Should fail because origin doesn't match // Should fail because origin doesn't match
_, _, err := websocket.DefaultDialer.Dial(url+model.API_URL_SUFFIX+"/websocket", http.Header{ _, _, err := websocket.DefaultDialer.Dial(url+model.ApiUrlSuffix+"/websocket", http.Header{
"Origin": []string{"http://www.evil.com"}, "Origin": []string{"http://www.evil.com"},
}) })
require.Error(t, err, "Should have errored because Origin does not match host! SECURITY ISSUE!") require.Error(t, err, "Should have errored because Origin does not match host! SECURITY ISSUE!")
// We are not a browser so we can spoof this just fine // We are not a browser so we can spoof this just fine
_, _, err = websocket.DefaultDialer.Dial(url+model.API_URL_SUFFIX+"/websocket", http.Header{ _, _, err = websocket.DefaultDialer.Dial(url+model.ApiUrlSuffix+"/websocket", http.Header{
"Origin": []string{fmt.Sprintf("http://localhost:%v", th.App.Srv().ListenAddr.Port)}, "Origin": []string{fmt.Sprintf("http://localhost:%v", th.App.Srv().ListenAddr.Port)},
}) })
require.NoError(t, err, err) require.NoError(t, err, err)
// Should succeed now because open CORS // Should succeed now because open CORS
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.AllowCorsFrom = "*" }) th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.AllowCorsFrom = "*" })
_, _, err = websocket.DefaultDialer.Dial(url+model.API_URL_SUFFIX+"/websocket", http.Header{ _, _, err = websocket.DefaultDialer.Dial(url+model.ApiUrlSuffix+"/websocket", http.Header{
"Origin": []string{"http://www.evil.com"}, "Origin": []string{"http://www.evil.com"},
}) })
require.NoError(t, err, err) require.NoError(t, err, err)
// Should succeed now because matching CORS // Should succeed now because matching CORS
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.AllowCorsFrom = "http://www.evil.com" }) th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.AllowCorsFrom = "http://www.evil.com" })
_, _, err = websocket.DefaultDialer.Dial(url+model.API_URL_SUFFIX+"/websocket", http.Header{ _, _, err = websocket.DefaultDialer.Dial(url+model.ApiUrlSuffix+"/websocket", http.Header{
"Origin": []string{"http://www.evil.com"}, "Origin": []string{"http://www.evil.com"},
}) })
require.NoError(t, err, err) require.NoError(t, err, err)
// Should fail because non-matching CORS // Should fail because non-matching CORS
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.AllowCorsFrom = "http://www.good.com" }) th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.AllowCorsFrom = "http://www.good.com" })
_, _, err = websocket.DefaultDialer.Dial(url+model.API_URL_SUFFIX+"/websocket", http.Header{ _, _, err = websocket.DefaultDialer.Dial(url+model.ApiUrlSuffix+"/websocket", http.Header{
"Origin": []string{"http://www.evil.com"}, "Origin": []string{"http://www.evil.com"},
}) })
require.Error(t, err, "Should have errored because Origin contain AllowCorsFrom") require.Error(t, err, "Should have errored because Origin contain AllowCorsFrom")
// Should fail because non-matching CORS // Should fail because non-matching CORS
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.AllowCorsFrom = "http://www.good.com" }) th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.AllowCorsFrom = "http://www.good.com" })
_, _, err = websocket.DefaultDialer.Dial(url+model.API_URL_SUFFIX+"/websocket", http.Header{ _, _, err = websocket.DefaultDialer.Dial(url+model.ApiUrlSuffix+"/websocket", http.Header{
"Origin": []string{"http://www.good.co"}, "Origin": []string{"http://www.good.co"},
}) })
require.Error(t, err, "Should have errored because Origin does not match host! SECURITY ISSUE!") require.Error(t, err, "Should have errored because Origin does not match host! SECURITY ISSUE!")
@@ -210,9 +210,9 @@ func TestWebSocketStatuses(t *testing.T) {
WebSocketClient.Listen() WebSocketClient.Listen()
resp := <-WebSocketClient.ResponseChannel resp := <-WebSocketClient.ResponseChannel
require.Equal(t, resp.Status, model.STATUS_OK, "should have responded OK to authentication challenge") require.Equal(t, resp.Status, model.StatusOk, "should have responded OK to authentication challenge")
team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewRandomTeamName() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewRandomTeamName() + "a", Email: "test@nowhere.com", Type: model.TeamOpen}
rteam, _ := Client.CreateTeam(&team) rteam, _ := Client.CreateTeam(&team)
user := model.User{Email: strings.ToLower(model.NewId()) + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "passwd1"} user := model.User{Email: strings.ToLower(model.NewId()) + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "passwd1"}
@@ -242,7 +242,7 @@ func TestWebSocketStatuses(t *testing.T) {
require.Equal(t, resp.SeqReply, WebSocketClient.Sequence-1, "bad sequence number") require.Equal(t, resp.SeqReply, WebSocketClient.Sequence-1, "bad sequence number")
allowedValues := [4]string{model.STATUS_OFFLINE, model.STATUS_AWAY, model.STATUS_ONLINE, model.STATUS_DND} allowedValues := [4]string{model.StatusOffline, model.StatusAway, model.StatusOnline, model.StatusDnd}
for _, status := range resp.Data { for _, status := range resp.Data {
require.Containsf(t, allowedValues, status, "one of the statuses had an invalid value status=%v", status) require.Containsf(t, allowedValues, status, "one of the statuses had an invalid value status=%v", status)
} }
@@ -250,7 +250,7 @@ func TestWebSocketStatuses(t *testing.T) {
status, ok := resp.Data[th.BasicUser2.Id] status, ok := resp.Data[th.BasicUser2.Id]
require.True(t, ok, "should have had user status") require.True(t, ok, "should have had user status")
require.Equal(t, status, model.STATUS_ONLINE, "status should have been online status=%v", status) require.Equal(t, status, model.StatusOnline, "status should have been online status=%v", status)
WebSocketClient.GetStatusesByIds([]string{th.BasicUser2.Id}) WebSocketClient.GetStatusesByIds([]string{th.BasicUser2.Id})
resp = <-WebSocketClient.ResponseChannel resp = <-WebSocketClient.ResponseChannel
@@ -258,7 +258,7 @@ func TestWebSocketStatuses(t *testing.T) {
require.Equal(t, resp.SeqReply, WebSocketClient.Sequence-1, "bad sequence number") require.Equal(t, resp.SeqReply, WebSocketClient.Sequence-1, "bad sequence number")
allowedValues = [4]string{model.STATUS_OFFLINE, model.STATUS_AWAY, model.STATUS_ONLINE} allowedValues = [4]string{model.StatusOffline, model.StatusAway, model.StatusOnline}
for _, status := range resp.Data { for _, status := range resp.Data {
require.Containsf(t, allowedValues, status, "one of the statuses had an invalid value status") require.Containsf(t, allowedValues, status, "one of the statuses had an invalid value status")
} }
@@ -266,7 +266,7 @@ func TestWebSocketStatuses(t *testing.T) {
status, ok = resp.Data[th.BasicUser2.Id] status, ok = resp.Data[th.BasicUser2.Id]
require.True(t, ok, "should have had user status") require.True(t, ok, "should have had user status")
require.Equal(t, status, model.STATUS_ONLINE, "status should have been online status=%v", status) require.Equal(t, status, model.StatusOnline, "status should have been online status=%v", status)
require.Equal(t, len(resp.Data), 1, "only 1 status should be returned") require.Equal(t, len(resp.Data), 1, "only 1 status should be returned")
WebSocketClient.GetStatusesByIds([]string{ruser2.Id, "junk"}) WebSocketClient.GetStatusesByIds([]string{ruser2.Id, "junk"})
@@ -314,11 +314,11 @@ func TestWebSocketStatuses(t *testing.T) {
for { for {
select { select {
case resp := <-WebSocketClient.EventChannel: case resp := <-WebSocketClient.EventChannel:
if resp.EventType() == model.WEBSOCKET_EVENT_STATUS_CHANGE && resp.GetData()["user_id"].(string) == th.BasicUser.Id { if resp.EventType() == model.WebsocketEventStatusChange && resp.GetData()["user_id"].(string) == th.BasicUser.Id {
status := resp.GetData()["status"].(string) status := resp.GetData()["status"].(string)
if status == model.STATUS_ONLINE { if status == model.StatusOnline {
onlineHit = true onlineHit = true
} else if status == model.STATUS_AWAY { } else if status == model.StatusAway {
awayHit = true awayHit = true
} }
} }

Просмотреть файл

@@ -155,8 +155,8 @@ func (s *Server) InvalidateAllCaches() *model.AppError {
if s.Cluster != nil { if s.Cluster != nil {
msg := &model.ClusterMessage{ msg := &model.ClusterMessage{
Event: model.CLUSTER_EVENT_INVALIDATE_ALL_CACHES, Event: model.ClusterEventInvalidateAllCaches,
SendType: model.CLUSTER_SEND_RELIABLE, SendType: model.ClusterSendReliable,
WaitForAllToSend: true, WaitForAllToSend: true,
} }
@@ -211,7 +211,7 @@ func (a *App) TestEmail(userID string, cfg *model.Config) *model.AppError {
// if the user hasn't changed their email settings, fill in the actual SMTP password so that // if the user hasn't changed their email settings, fill in the actual SMTP password so that
// the user can verify an existing SMTP connection // the user can verify an existing SMTP connection
if *cfg.EmailSettings.SMTPPassword == model.FAKE_SETTING { if *cfg.EmailSettings.SMTPPassword == model.FakeSetting {
if *cfg.EmailSettings.SMTPServer == *a.Config().EmailSettings.SMTPServer && if *cfg.EmailSettings.SMTPServer == *a.Config().EmailSettings.SMTPServer &&
*cfg.EmailSettings.SMTPPort == *a.Config().EmailSettings.SMTPPort && *cfg.EmailSettings.SMTPPort == *a.Config().EmailSettings.SMTPPort &&
*cfg.EmailSettings.SMTPUsername == *a.Config().EmailSettings.SMTPUsername { *cfg.EmailSettings.SMTPUsername == *a.Config().EmailSettings.SMTPUsername {

Просмотреть файл

@@ -48,7 +48,7 @@ func (a *App) GetAnalytics(name string, teamID string) (model.AnalyticsRows, *mo
var openChannelsCount int64 var openChannelsCount int64
g.Go(func() error { g.Go(func() error {
var err error var err error
if openChannelsCount, err = a.Srv().Store.Channel().AnalyticsTypeCount(teamID, model.CHANNEL_OPEN); err != nil { if openChannelsCount, err = a.Srv().Store.Channel().AnalyticsTypeCount(teamID, model.ChannelTypeOpen); err != nil {
return model.NewAppError("GetAnalytics", "app.channel.analytics_type_count.app_error", nil, err.Error(), http.StatusInternalServerError) return model.NewAppError("GetAnalytics", "app.channel.analytics_type_count.app_error", nil, err.Error(), http.StatusInternalServerError)
} }
return nil return nil
@@ -57,7 +57,7 @@ func (a *App) GetAnalytics(name string, teamID string) (model.AnalyticsRows, *mo
var privateChannelsCount int64 var privateChannelsCount int64
g.Go(func() error { g.Go(func() error {
var err error var err error
if privateChannelsCount, err = a.Srv().Store.Channel().AnalyticsTypeCount(teamID, model.CHANNEL_PRIVATE); err != nil { if privateChannelsCount, err = a.Srv().Store.Channel().AnalyticsTypeCount(teamID, model.ChannelTypePrivate); err != nil {
return model.NewAppError("GetAnalytics", "app.channel.analytics_type_count.app_error", nil, err.Error(), http.StatusInternalServerError) return model.NewAppError("GetAnalytics", "app.channel.analytics_type_count.app_error", nil, err.Error(), http.StatusInternalServerError)
} }
return nil return nil

Просмотреть файл

@@ -64,7 +64,7 @@ func (a *App) Handle404(w http.ResponseWriter, r *http.Request) {
} }
func (s *Server) getSystemInstallDate() (int64, *model.AppError) { func (s *Server) getSystemInstallDate() (int64, *model.AppError) {
systemData, err := s.Store.System().GetByName(model.SYSTEM_INSTALLATION_DATE_KEY) systemData, err := s.Store.System().GetByName(model.SystemInstallationDateKey)
if err != nil { if err != nil {
return 0, model.NewAppError("getSystemInstallDate", "app.system.get_by_name.app_error", nil, err.Error(), http.StatusInternalServerError) return 0, model.NewAppError("getSystemInstallDate", "app.system.get_by_name.app_error", nil, err.Error(), http.StatusInternalServerError)
} }
@@ -76,7 +76,7 @@ func (s *Server) getSystemInstallDate() (int64, *model.AppError) {
} }
func (s *Server) getFirstServerRunTimestamp() (int64, *model.AppError) { func (s *Server) getFirstServerRunTimestamp() (int64, *model.AppError) {
systemData, err := s.Store.System().GetByName(model.SYSTEM_FIRST_SERVER_RUN_TIMESTAMP_KEY) systemData, err := s.Store.System().GetByName(model.SystemFirstServerRunTimestampKey)
if err != nil { if err != nil {
return 0, model.NewAppError("getFirstServerRunTimestamp", "app.system.get_by_name.app_error", nil, err.Error(), http.StatusInternalServerError) return 0, model.NewAppError("getFirstServerRunTimestamp", "app.system.get_by_name.app_error", nil, err.Error(), http.StatusInternalServerError)
} }
@@ -89,7 +89,7 @@ func (s *Server) getFirstServerRunTimestamp() (int64, *model.AppError) {
//nolint:golint,unused,deadcode //nolint:golint,unused,deadcode
func (s *Server) getLastWarnMetricTimestamp() (int64, *model.AppError) { func (s *Server) getLastWarnMetricTimestamp() (int64, *model.AppError) {
systemData, err := s.Store.System().GetByName(model.SYSTEM_WARN_METRIC_LAST_RUN_TIMESTAMP_KEY) systemData, err := s.Store.System().GetByName(model.SystemWarnMetricLastRunTimestampKey)
if err != nil { if err != nil {
return 0, model.NewAppError("getLastWarnMetricTimestamp", "app.system.get_by_name.app_error", nil, err.Error(), http.StatusInternalServerError) return 0, model.NewAppError("getLastWarnMetricTimestamp", "app.system.get_by_name.app_error", nil, err.Error(), http.StatusInternalServerError)
} }
@@ -110,9 +110,9 @@ func (a *App) GetWarnMetricsStatus() (map[string]*model.WarnMetricStatus, *model
result := map[string]*model.WarnMetricStatus{} result := map[string]*model.WarnMetricStatus{}
for key, value := range systemDataList { for key, value := range systemDataList {
if strings.HasPrefix(key, model.WARN_METRIC_STATUS_STORE_PREFIX) { if strings.HasPrefix(key, model.WarnMetricStatusStorePrefix) {
if warnMetric, ok := model.WarnMetricsTable[key]; ok { if warnMetric, ok := model.WarnMetricsTable[key]; ok {
if !warnMetric.IsBotOnly && (value == model.WARN_METRIC_STATUS_RUNONCE || value == model.WARN_METRIC_STATUS_LIMIT_REACHED) { if !warnMetric.IsBotOnly && (value == model.WarnMetricStatusRunonce || value == model.WarnMetricStatusLimitReached) {
result[key], _ = a.getWarnMetricStatusAndDisplayTextsForId(key, nil, isE0Edition) result[key], _ = a.getWarnMetricStatusAndDisplayTextsForId(key, nil, isE0Edition)
} }
} }
@@ -141,7 +141,7 @@ func (a *App) getWarnMetricStatusAndDisplayTextsForId(warnMetricId string, T i18
warnMetricDisplayTexts.BotSuccessMessage = T("api.server.warn_metric.bot_response.notification_success.message") warnMetricDisplayTexts.BotSuccessMessage = T("api.server.warn_metric.bot_response.notification_success.message")
switch warnMetricId { switch warnMetricId {
case model.SYSTEM_WARN_METRIC_NUMBER_OF_TEAMS_5: case model.SystemWarnMetricNumberOfTeams5:
warnMetricDisplayTexts.BotTitle = T("api.server.warn_metric.number_of_teams_5.notification_title") warnMetricDisplayTexts.BotTitle = T("api.server.warn_metric.number_of_teams_5.notification_title")
if isE0Edition { if isE0Edition {
warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_teams_5.start_trial.notification_body") warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_teams_5.start_trial.notification_body")
@@ -150,7 +150,7 @@ func (a *App) getWarnMetricStatusAndDisplayTextsForId(warnMetricId string, T i18
warnMetricDisplayTexts.EmailBody = T("api.server.warn_metric.number_of_teams_5.contact_us.email_body") warnMetricDisplayTexts.EmailBody = T("api.server.warn_metric.number_of_teams_5.contact_us.email_body")
warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_teams_5.notification_body") warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_teams_5.notification_body")
} }
case model.SYSTEM_WARN_METRIC_MFA: case model.SystemWarnMetricMfa:
warnMetricDisplayTexts.BotTitle = T("api.server.warn_metric.mfa.notification_title") warnMetricDisplayTexts.BotTitle = T("api.server.warn_metric.mfa.notification_title")
if isE0Edition { if isE0Edition {
warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.mfa.start_trial.notification_body") warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.mfa.start_trial.notification_body")
@@ -159,7 +159,7 @@ func (a *App) getWarnMetricStatusAndDisplayTextsForId(warnMetricId string, T i18
warnMetricDisplayTexts.EmailBody = T("api.server.warn_metric.mfa.contact_us.email_body") warnMetricDisplayTexts.EmailBody = T("api.server.warn_metric.mfa.contact_us.email_body")
warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.mfa.notification_body") warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.mfa.notification_body")
} }
case model.SYSTEM_WARN_METRIC_EMAIL_DOMAIN: case model.SystemWarnMetricEmailDomain:
warnMetricDisplayTexts.BotTitle = T("api.server.warn_metric.email_domain.notification_title") warnMetricDisplayTexts.BotTitle = T("api.server.warn_metric.email_domain.notification_title")
if isE0Edition { if isE0Edition {
warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.email_domain.start_trial.notification_body") warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.email_domain.start_trial.notification_body")
@@ -168,7 +168,7 @@ func (a *App) getWarnMetricStatusAndDisplayTextsForId(warnMetricId string, T i18
warnMetricDisplayTexts.EmailBody = T("api.server.warn_metric.email_domain.contact_us.email_body") warnMetricDisplayTexts.EmailBody = T("api.server.warn_metric.email_domain.contact_us.email_body")
warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.email_domain.notification_body") warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.email_domain.notification_body")
} }
case model.SYSTEM_WARN_METRIC_NUMBER_OF_CHANNELS_50: case model.SystemWarnMetricNumberOfChannels50:
warnMetricDisplayTexts.BotTitle = T("api.server.warn_metric.number_of_channels_50.notification_title") warnMetricDisplayTexts.BotTitle = T("api.server.warn_metric.number_of_channels_50.notification_title")
if isE0Edition { if isE0Edition {
warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_channels_50.start_trial.notification_body") warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_channels_50.start_trial.notification_body")
@@ -177,7 +177,7 @@ func (a *App) getWarnMetricStatusAndDisplayTextsForId(warnMetricId string, T i18
warnMetricDisplayTexts.EmailBody = T("api.server.warn_metric.number_of_channels_50.contact_us.email_body") warnMetricDisplayTexts.EmailBody = T("api.server.warn_metric.number_of_channels_50.contact_us.email_body")
warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_channels_50.notification_body") warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_channels_50.notification_body")
} }
case model.SYSTEM_WARN_METRIC_NUMBER_OF_ACTIVE_USERS_100: case model.SystemWarnMetricNumberOfActiveUsers100:
warnMetricDisplayTexts.BotTitle = T("api.server.warn_metric.number_of_active_users_100.notification_title") warnMetricDisplayTexts.BotTitle = T("api.server.warn_metric.number_of_active_users_100.notification_title")
if isE0Edition { if isE0Edition {
warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_active_users_100.start_trial.notification_body") warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_active_users_100.start_trial.notification_body")
@@ -186,7 +186,7 @@ func (a *App) getWarnMetricStatusAndDisplayTextsForId(warnMetricId string, T i18
warnMetricDisplayTexts.EmailBody = T("api.server.warn_metric.number_of_active_users_100.contact_us.email_body") warnMetricDisplayTexts.EmailBody = T("api.server.warn_metric.number_of_active_users_100.contact_us.email_body")
warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_active_users_100.notification_body") warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_active_users_100.notification_body")
} }
case model.SYSTEM_WARN_METRIC_NUMBER_OF_ACTIVE_USERS_200: case model.SystemWarnMetricNumberOfActiveUsers200:
warnMetricDisplayTexts.BotTitle = T("api.server.warn_metric.number_of_active_users_200.notification_title") warnMetricDisplayTexts.BotTitle = T("api.server.warn_metric.number_of_active_users_200.notification_title")
if isE0Edition { if isE0Edition {
warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_active_users_200.start_trial.notification_body") warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_active_users_200.start_trial.notification_body")
@@ -195,7 +195,7 @@ func (a *App) getWarnMetricStatusAndDisplayTextsForId(warnMetricId string, T i18
warnMetricDisplayTexts.EmailBody = T("api.server.warn_metric.number_of_active_users_200.contact_us.email_body") warnMetricDisplayTexts.EmailBody = T("api.server.warn_metric.number_of_active_users_200.contact_us.email_body")
warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_active_users_200.notification_body") warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_active_users_200.notification_body")
} }
case model.SYSTEM_WARN_METRIC_NUMBER_OF_ACTIVE_USERS_300: case model.SystemWarnMetricNumberOfActiveUsers300:
warnMetricDisplayTexts.BotTitle = T("api.server.warn_metric.number_of_active_users_300.start_trial.notification_title") warnMetricDisplayTexts.BotTitle = T("api.server.warn_metric.number_of_active_users_300.start_trial.notification_title")
if isE0Edition { if isE0Edition {
warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_active_users_300.start_trial.notification_body") warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_active_users_300.start_trial.notification_body")
@@ -204,7 +204,7 @@ func (a *App) getWarnMetricStatusAndDisplayTextsForId(warnMetricId string, T i18
warnMetricDisplayTexts.EmailBody = T("api.server.warn_metric.number_of_active_users_300.contact_us.email_body") warnMetricDisplayTexts.EmailBody = T("api.server.warn_metric.number_of_active_users_300.contact_us.email_body")
warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_active_users_300.notification_body") warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_active_users_300.notification_body")
} }
case model.SYSTEM_WARN_METRIC_NUMBER_OF_ACTIVE_USERS_500: case model.SystemWarnMetricNumberOfActiveUsers500:
warnMetricDisplayTexts.BotTitle = T("api.server.warn_metric.number_of_active_users_500.notification_title") warnMetricDisplayTexts.BotTitle = T("api.server.warn_metric.number_of_active_users_500.notification_title")
if isE0Edition { if isE0Edition {
warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_active_users_500.start_trial.notification_body") warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_active_users_500.start_trial.notification_body")
@@ -213,7 +213,7 @@ func (a *App) getWarnMetricStatusAndDisplayTextsForId(warnMetricId string, T i18
warnMetricDisplayTexts.EmailBody = T("api.server.warn_metric.number_of_active_users_500.contact_us.email_body") warnMetricDisplayTexts.EmailBody = T("api.server.warn_metric.number_of_active_users_500.contact_us.email_body")
warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_active_users_500.notification_body") warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_active_users_500.notification_body")
} }
case model.SYSTEM_WARN_METRIC_NUMBER_OF_POSTS_2M: case model.SystemWarnMetricNumberOfPosts2m:
warnMetricDisplayTexts.BotTitle = T("api.server.warn_metric.number_of_posts_2M.notification_title") warnMetricDisplayTexts.BotTitle = T("api.server.warn_metric.number_of_posts_2M.notification_title")
if isE0Edition { if isE0Edition {
warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_posts_2M.start_trial.notification_body") warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_posts_2M.start_trial.notification_body")
@@ -222,7 +222,7 @@ func (a *App) getWarnMetricStatusAndDisplayTextsForId(warnMetricId string, T i18
warnMetricDisplayTexts.EmailBody = T("api.server.warn_metric.number_of_posts_2M.contact_us.email_body") warnMetricDisplayTexts.EmailBody = T("api.server.warn_metric.number_of_posts_2M.contact_us.email_body")
warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_posts_2M.notification_body") warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_posts_2M.notification_body")
} }
case model.SYSTEM_METRIC_SUPPORT_EMAIL_NOT_CONFIGURED: case model.SystemMetricSupportEmailNotConfigured:
warnMetricDisplayTexts.BotTitle = T("api.server.warn_metric.support_email_not_configured.notification_title") warnMetricDisplayTexts.BotTitle = T("api.server.warn_metric.support_email_not_configured.notification_title")
warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.support_email_not_configured.start_trial.notification_body") warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.support_email_not_configured.start_trial.notification_body")
default: default:
@@ -252,7 +252,7 @@ func (a *App) notifyAdminsOfWarnMetricStatus(c *request.Context, warnMetricId st
userOptions := &model.UserGetOptions{ userOptions := &model.UserGetOptions{
Page: 0, Page: 0,
PerPage: perPage, PerPage: perPage,
Role: model.SYSTEM_ADMIN_ROLE_ID, Role: model.SystemAdminRoleId,
Inactive: false, Inactive: false,
} }
@@ -293,7 +293,7 @@ func (a *App) notifyAdminsOfWarnMetricStatus(c *request.Context, warnMetricId st
botPost := &model.Post{ botPost := &model.Post{
UserId: warnMetricsBot.UserId, UserId: warnMetricsBot.UserId,
ChannelId: channel.Id, ChannelId: channel.Id,
Type: model.POST_SYSTEM_WARN_METRIC_STATUS, Type: model.PostTypeSystemWarnMetricStatus,
Message: "", Message: "",
} }
@@ -314,7 +314,7 @@ func (a *App) notifyAdminsOfWarnMetricStatus(c *request.Context, warnMetricId st
&model.PostAction{ &model.PostAction{
Id: actionId, Id: actionId,
Name: actionName, Name: actionName,
Type: model.POST_ACTION_TYPE_BUTTON, Type: model.PostActionTypeButton,
Options: []*model.PostActionOptions{ Options: []*model.PostActionOptions{
{ {
Text: "TrackEventId", Text: "TrackEventId",
@@ -359,7 +359,7 @@ func (a *App) notifyAdminsOfWarnMetricStatus(c *request.Context, warnMetricId st
func (a *App) NotifyAndSetWarnMetricAck(warnMetricId string, sender *model.User, forceAck bool, isBot bool) *model.AppError { func (a *App) NotifyAndSetWarnMetricAck(warnMetricId string, sender *model.User, forceAck bool, isBot bool) *model.AppError {
if warnMetric, ok := model.WarnMetricsTable[warnMetricId]; ok { if warnMetric, ok := model.WarnMetricsTable[warnMetricId]; ok {
data, nErr := a.Srv().Store.System().GetByName(warnMetric.Id) data, nErr := a.Srv().Store.System().GetByName(warnMetric.Id)
if nErr == nil && data != nil && data.Value == model.WARN_METRIC_STATUS_ACK { if nErr == nil && data != nil && data.Value == model.WarnMetricStatusAck {
mlog.Debug("This metric warning has already been acknowledged", mlog.String("id", warnMetric.Id)) mlog.Debug("This metric warning has already been acknowledged", mlog.String("id", warnMetric.Id))
return nil return nil
} }
@@ -404,7 +404,7 @@ func (a *App) NotifyAndSetWarnMetricAck(warnMetricId string, sender *model.User,
return model.NewAppError("NotifyAndSetWarnMetricAck", "api.email.send_warn_metric_ack.failure.app_error", map[string]interface{}{"Error": err.Error()}, "", http.StatusInternalServerError) return model.NewAppError("NotifyAndSetWarnMetricAck", "api.email.send_warn_metric_ack.failure.app_error", map[string]interface{}{"Error": err.Error()}, "", http.StatusInternalServerError)
} }
if err := mail.SendMailUsingConfig(model.MM_SUPPORT_ADVISOR_ADDRESS, subject, body, mailConfig, false, sender.Email); err != nil { if err := mail.SendMailUsingConfig(model.MmSupportAdvisorAddress, subject, body, mailConfig, false, sender.Email); err != nil {
return model.NewAppError("NotifyAndSetWarnMetricAck", "api.email.send_warn_metric_ack.failure.app_error", map[string]interface{}{"Error": err.Error()}, "", http.StatusInternalServerError) return model.NewAppError("NotifyAndSetWarnMetricAck", "api.email.send_warn_metric_ack.failure.app_error", map[string]interface{}{"Error": err.Error()}, "", http.StatusInternalServerError)
} }
} }
@@ -418,12 +418,12 @@ func (a *App) NotifyAndSetWarnMetricAck(warnMetricId string, sender *model.User,
func (a *App) setWarnMetricsStatusAndNotify(warnMetricId string) *model.AppError { func (a *App) setWarnMetricsStatusAndNotify(warnMetricId string) *model.AppError {
// Ack all metric warnings on the server // Ack all metric warnings on the server
if err := a.setWarnMetricsStatus(model.WARN_METRIC_STATUS_ACK); err != nil { if err := a.setWarnMetricsStatus(model.WarnMetricStatusAck); err != nil {
return err return err
} }
// Inform client that this metric warning has been acked // Inform client that this metric warning has been acked
message := model.NewWebSocketEvent(model.WEBSOCKET_WARN_METRIC_STATUS_REMOVED, "", "", "", nil) message := model.NewWebSocketEvent(model.WebsocketWarnMetricStatusRemoved, "", "", "", nil)
message.Add("warnMetricId", warnMetricId) message.Add("warnMetricId", warnMetricId)
a.Publish(message) a.Publish(message)
@@ -468,7 +468,7 @@ func (a *App) RequestLicenseAndAckWarnMetric(c *request.Context, warnMetricId st
trialLicenseRequest := &model.TrialLicenseRequest{ trialLicenseRequest := &model.TrialLicenseRequest{
ServerID: a.TelemetryId(), ServerID: a.TelemetryId(),
Name: currentUser.GetDisplayName(model.SHOW_FULLNAME), Name: currentUser.GetDisplayName(model.ShowFullName),
Email: currentUser.Email, Email: currentUser.Email,
SiteName: *a.Config().TeamSettings.SiteName, SiteName: *a.Config().TeamSettings.SiteName,
SiteURL: *a.Config().ServiceSettings.SiteURL, SiteURL: *a.Config().ServiceSettings.SiteURL,

Просмотреть файл

@@ -1058,8 +1058,8 @@ type AppIface interface {
UpdateLastActivityAtIfNeeded(session model.Session) UpdateLastActivityAtIfNeeded(session model.Session)
UpdateMfa(activate bool, userID, token string) *model.AppError UpdateMfa(activate bool, userID, token string) *model.AppError
UpdateMobileAppBadge(userID string) UpdateMobileAppBadge(userID string)
UpdateOAuthUserAttrs(userData io.Reader, user *model.User, provider einterfaces.OauthProvider, service string, tokenUser *model.User) *model.AppError UpdateOAuthApp(oldApp, updatedApp *model.OAuthApp) (*model.OAuthApp, *model.AppError)
UpdateOauthApp(oldApp, updatedApp *model.OAuthApp) (*model.OAuthApp, *model.AppError) UpdateOAuthUserAttrs(userData io.Reader, user *model.User, provider einterfaces.OAuthProvider, service string, tokenUser *model.User) *model.AppError
UpdateOutgoingWebhook(oldHook, updatedHook *model.OutgoingWebhook) (*model.OutgoingWebhook, *model.AppError) UpdateOutgoingWebhook(oldHook, updatedHook *model.OutgoingWebhook) (*model.OutgoingWebhook, *model.AppError)
UpdatePassword(user *model.User, newPassword string) *model.AppError UpdatePassword(user *model.User, newPassword string) *model.AppError
UpdatePasswordAsUser(userID, currentPassword, newPassword string) *model.AppError UpdatePasswordAsUser(userID, currentPassword, newPassword string) *model.AppError

Просмотреть файл

@@ -98,87 +98,87 @@ func TestDoAdvancedPermissionsMigration(t *testing.T) {
expected1 := map[string][]string{ expected1 := map[string][]string{
"channel_user": { "channel_user": {
model.PERMISSION_READ_CHANNEL.Id, model.PermissionReadChannel.Id,
model.PERMISSION_ADD_REACTION.Id, model.PermissionAddReaction.Id,
model.PERMISSION_REMOVE_REACTION.Id, model.PermissionRemoveReaction.Id,
model.PERMISSION_MANAGE_PUBLIC_CHANNEL_MEMBERS.Id, model.PermissionManagePublicChannelMembers.Id,
model.PERMISSION_UPLOAD_FILE.Id, model.PermissionUploadFile.Id,
model.PERMISSION_GET_PUBLIC_LINK.Id, model.PermissionGetPublicLink.Id,
model.PERMISSION_CREATE_POST.Id, model.PermissionCreatePost.Id,
model.PERMISSION_USE_CHANNEL_MENTIONS.Id, model.PermissionUseChannelMentions.Id,
model.PERMISSION_USE_SLASH_COMMANDS.Id, model.PermissionUseSlashCommands.Id,
model.PERMISSION_MANAGE_PUBLIC_CHANNEL_PROPERTIES.Id, model.PermissionManagePublicChannelProperties.Id,
model.PERMISSION_DELETE_PUBLIC_CHANNEL.Id, model.PermissionDeletePublicChannel.Id,
model.PERMISSION_MANAGE_PRIVATE_CHANNEL_PROPERTIES.Id, model.PermissionManagePrivateChannelProperties.Id,
model.PERMISSION_DELETE_PRIVATE_CHANNEL.Id, model.PermissionDeletePrivateChannel.Id,
model.PERMISSION_MANAGE_PRIVATE_CHANNEL_MEMBERS.Id, model.PermissionManagePrivateChannelMembers.Id,
model.PERMISSION_DELETE_POST.Id, model.PermissionDeletePost.Id,
model.PERMISSION_EDIT_POST.Id, model.PermissionEditPost.Id,
}, },
"channel_admin": { "channel_admin": {
model.PERMISSION_MANAGE_CHANNEL_ROLES.Id, model.PermissionManageChannelRoles.Id,
model.PERMISSION_USE_GROUP_MENTIONS.Id, model.PermissionUseGroupMentions.Id,
}, },
"team_user": { "team_user": {
model.PERMISSION_LIST_TEAM_CHANNELS.Id, model.PermissionListTeamChannels.Id,
model.PERMISSION_JOIN_PUBLIC_CHANNELS.Id, model.PermissionJoinPublicChannels.Id,
model.PERMISSION_READ_PUBLIC_CHANNEL.Id, model.PermissionReadPublicChannel.Id,
model.PERMISSION_VIEW_TEAM.Id, model.PermissionViewTeam.Id,
model.PERMISSION_CREATE_PUBLIC_CHANNEL.Id, model.PermissionCreatePublicChannel.Id,
model.PERMISSION_CREATE_PRIVATE_CHANNEL.Id, model.PermissionCreatePrivateChannel.Id,
model.PERMISSION_INVITE_USER.Id, model.PermissionInviteUser.Id,
model.PERMISSION_ADD_USER_TO_TEAM.Id, model.PermissionAddUserToTeam.Id,
}, },
"team_post_all": { "team_post_all": {
model.PERMISSION_CREATE_POST.Id, model.PermissionCreatePost.Id,
model.PERMISSION_USE_CHANNEL_MENTIONS.Id, model.PermissionUseChannelMentions.Id,
}, },
"team_post_all_public": { "team_post_all_public": {
model.PERMISSION_CREATE_POST_PUBLIC.Id, model.PermissionCreatePostPublic.Id,
model.PERMISSION_USE_CHANNEL_MENTIONS.Id, model.PermissionUseChannelMentions.Id,
}, },
"team_admin": { "team_admin": {
model.PERMISSION_REMOVE_USER_FROM_TEAM.Id, model.PermissionRemoveUserFromTeam.Id,
model.PERMISSION_MANAGE_TEAM.Id, model.PermissionManageTeam.Id,
model.PERMISSION_IMPORT_TEAM.Id, model.PermissionImportTeam.Id,
model.PERMISSION_MANAGE_TEAM_ROLES.Id, model.PermissionManageTeamRoles.Id,
model.PERMISSION_MANAGE_CHANNEL_ROLES.Id, model.PermissionManageChannelRoles.Id,
model.PERMISSION_MANAGE_OTHERS_INCOMING_WEBHOOKS.Id, model.PermissionManageOthersIncomingWebhooks.Id,
model.PERMISSION_MANAGE_OTHERS_OUTGOING_WEBHOOKS.Id, model.PermissionManageOthersOutgoingWebhooks.Id,
model.PERMISSION_MANAGE_SLASH_COMMANDS.Id, model.PermissionManageSlashCommands.Id,
model.PERMISSION_MANAGE_OTHERS_SLASH_COMMANDS.Id, model.PermissionManageOthersSlashCommands.Id,
model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.PermissionManageIncomingWebhooks.Id,
model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.PermissionManageOutgoingWebhooks.Id,
model.PERMISSION_CONVERT_PUBLIC_CHANNEL_TO_PRIVATE.Id, model.PermissionConvertPublicChannelToPrivate.Id,
model.PERMISSION_CONVERT_PRIVATE_CHANNEL_TO_PUBLIC.Id, model.PermissionConvertPrivateChannelToPublic.Id,
model.PERMISSION_DELETE_POST.Id, model.PermissionDeletePost.Id,
model.PERMISSION_DELETE_OTHERS_POSTS.Id, model.PermissionDeleteOthersPosts.Id,
}, },
"system_user": { "system_user": {
model.PERMISSION_LIST_PUBLIC_TEAMS.Id, model.PermissionListPublicTeams.Id,
model.PERMISSION_JOIN_PUBLIC_TEAMS.Id, model.PermissionJoinPublicTeams.Id,
model.PERMISSION_CREATE_DIRECT_CHANNEL.Id, model.PermissionCreateDirectChannel.Id,
model.PERMISSION_CREATE_GROUP_CHANNEL.Id, model.PermissionCreateGroupChannel.Id,
model.PERMISSION_VIEW_MEMBERS.Id, model.PermissionViewMembers.Id,
model.PERMISSION_CREATE_TEAM.Id, model.PermissionCreateTeam.Id,
}, },
"system_post_all": { "system_post_all": {
model.PERMISSION_CREATE_POST.Id, model.PermissionCreatePost.Id,
model.PERMISSION_USE_CHANNEL_MENTIONS.Id, model.PermissionUseChannelMentions.Id,
}, },
"system_post_all_public": { "system_post_all_public": {
model.PERMISSION_CREATE_POST_PUBLIC.Id, model.PermissionCreatePostPublic.Id,
model.PERMISSION_USE_CHANNEL_MENTIONS.Id, model.PermissionUseChannelMentions.Id,
}, },
"system_user_access_token": { "system_user_access_token": {
model.PERMISSION_CREATE_USER_ACCESS_TOKEN.Id, model.PermissionCreateUserAccessToken.Id,
model.PERMISSION_READ_USER_ACCESS_TOKEN.Id, model.PermissionReadUserAccessToken.Id,
model.PERMISSION_REVOKE_USER_ACCESS_TOKEN.Id, model.PermissionRevokeUserAccessToken.Id,
}, },
"system_admin": allPermissionIDs, "system_admin": allPermissionIDs,
} }
assert.Contains(t, allPermissionIDs, model.PERMISSION_MANAGE_SHARED_CHANNELS.Id, "manage_shared_channels permission not found") assert.Contains(t, allPermissionIDs, model.PermissionManageSharedChannels.Id, "manage_shared_channels permission not found")
assert.Contains(t, allPermissionIDs, model.PERMISSION_MANAGE_SECURE_CONNECTIONS.Id, "manage_secure_connections permission not found") assert.Contains(t, allPermissionIDs, model.PermissionManageSecureConnections.Id, "manage_secure_connections permission not found")
// Check the migration matches what's expected. // Check the migration matches what's expected.
for name, permissions := range expected1 { for name, permissions := range expected1 {
@@ -200,10 +200,10 @@ func TestDoAdvancedPermissionsMigration(t *testing.T) {
}() }()
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.TeamSettings.DEPRECATED_DO_NOT_USE_RestrictPublicChannelManagement = model.PERMISSIONS_TEAM_ADMIN *cfg.TeamSettings.DEPRECATED_DO_NOT_USE_RestrictPublicChannelManagement = model.PermissionsTeamAdmin
}) })
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.TeamSettings.DEPRECATED_DO_NOT_USE_RestrictPrivateChannelManagement = model.PERMISSIONS_TEAM_ADMIN *cfg.TeamSettings.DEPRECATED_DO_NOT_USE_RestrictPrivateChannelManagement = model.PermissionsTeamAdmin
}) })
th.App.Srv().SetLicense(model.NewTestLicense()) th.App.Srv().SetLicense(model.NewTestLicense())
@@ -229,82 +229,82 @@ func TestDoAdvancedPermissionsMigration(t *testing.T) {
// Check the role permissions. // Check the role permissions.
expected2 := map[string][]string{ expected2 := map[string][]string{
"channel_user": { "channel_user": {
model.PERMISSION_READ_CHANNEL.Id, model.PermissionReadChannel.Id,
model.PERMISSION_ADD_REACTION.Id, model.PermissionAddReaction.Id,
model.PERMISSION_REMOVE_REACTION.Id, model.PermissionRemoveReaction.Id,
model.PERMISSION_MANAGE_PUBLIC_CHANNEL_MEMBERS.Id, model.PermissionManagePublicChannelMembers.Id,
model.PERMISSION_UPLOAD_FILE.Id, model.PermissionUploadFile.Id,
model.PERMISSION_GET_PUBLIC_LINK.Id, model.PermissionGetPublicLink.Id,
model.PERMISSION_CREATE_POST.Id, model.PermissionCreatePost.Id,
model.PERMISSION_USE_CHANNEL_MENTIONS.Id, model.PermissionUseChannelMentions.Id,
model.PERMISSION_USE_SLASH_COMMANDS.Id, model.PermissionUseSlashCommands.Id,
model.PERMISSION_DELETE_PUBLIC_CHANNEL.Id, model.PermissionDeletePublicChannel.Id,
model.PERMISSION_DELETE_PRIVATE_CHANNEL.Id, model.PermissionDeletePrivateChannel.Id,
model.PERMISSION_MANAGE_PRIVATE_CHANNEL_MEMBERS.Id, model.PermissionManagePrivateChannelMembers.Id,
model.PERMISSION_DELETE_POST.Id, model.PermissionDeletePost.Id,
model.PERMISSION_EDIT_POST.Id, model.PermissionEditPost.Id,
}, },
"channel_admin": { "channel_admin": {
model.PERMISSION_MANAGE_CHANNEL_ROLES.Id, model.PermissionManageChannelRoles.Id,
model.PERMISSION_USE_GROUP_MENTIONS.Id, model.PermissionUseGroupMentions.Id,
}, },
"team_user": { "team_user": {
model.PERMISSION_LIST_TEAM_CHANNELS.Id, model.PermissionListTeamChannels.Id,
model.PERMISSION_JOIN_PUBLIC_CHANNELS.Id, model.PermissionJoinPublicChannels.Id,
model.PERMISSION_READ_PUBLIC_CHANNEL.Id, model.PermissionReadPublicChannel.Id,
model.PERMISSION_VIEW_TEAM.Id, model.PermissionViewTeam.Id,
model.PERMISSION_CREATE_PUBLIC_CHANNEL.Id, model.PermissionCreatePublicChannel.Id,
model.PERMISSION_CREATE_PRIVATE_CHANNEL.Id, model.PermissionCreatePrivateChannel.Id,
model.PERMISSION_INVITE_USER.Id, model.PermissionInviteUser.Id,
model.PERMISSION_ADD_USER_TO_TEAM.Id, model.PermissionAddUserToTeam.Id,
}, },
"team_post_all": { "team_post_all": {
model.PERMISSION_CREATE_POST.Id, model.PermissionCreatePost.Id,
model.PERMISSION_USE_CHANNEL_MENTIONS.Id, model.PermissionUseChannelMentions.Id,
}, },
"team_post_all_public": { "team_post_all_public": {
model.PERMISSION_CREATE_POST_PUBLIC.Id, model.PermissionCreatePostPublic.Id,
model.PERMISSION_USE_CHANNEL_MENTIONS.Id, model.PermissionUseChannelMentions.Id,
}, },
"team_admin": { "team_admin": {
model.PERMISSION_REMOVE_USER_FROM_TEAM.Id, model.PermissionRemoveUserFromTeam.Id,
model.PERMISSION_MANAGE_TEAM.Id, model.PermissionManageTeam.Id,
model.PERMISSION_IMPORT_TEAM.Id, model.PermissionImportTeam.Id,
model.PERMISSION_MANAGE_TEAM_ROLES.Id, model.PermissionManageTeamRoles.Id,
model.PERMISSION_MANAGE_CHANNEL_ROLES.Id, model.PermissionManageChannelRoles.Id,
model.PERMISSION_MANAGE_OTHERS_INCOMING_WEBHOOKS.Id, model.PermissionManageOthersIncomingWebhooks.Id,
model.PERMISSION_MANAGE_OTHERS_OUTGOING_WEBHOOKS.Id, model.PermissionManageOthersOutgoingWebhooks.Id,
model.PERMISSION_MANAGE_SLASH_COMMANDS.Id, model.PermissionManageSlashCommands.Id,
model.PERMISSION_MANAGE_OTHERS_SLASH_COMMANDS.Id, model.PermissionManageOthersSlashCommands.Id,
model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.PermissionManageIncomingWebhooks.Id,
model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.PermissionManageOutgoingWebhooks.Id,
model.PERMISSION_CONVERT_PUBLIC_CHANNEL_TO_PRIVATE.Id, model.PermissionConvertPublicChannelToPrivate.Id,
model.PERMISSION_CONVERT_PRIVATE_CHANNEL_TO_PUBLIC.Id, model.PermissionConvertPrivateChannelToPublic.Id,
model.PERMISSION_MANAGE_PUBLIC_CHANNEL_PROPERTIES.Id, model.PermissionManagePublicChannelProperties.Id,
model.PERMISSION_MANAGE_PRIVATE_CHANNEL_PROPERTIES.Id, model.PermissionManagePrivateChannelProperties.Id,
model.PERMISSION_DELETE_POST.Id, model.PermissionDeletePost.Id,
model.PERMISSION_DELETE_OTHERS_POSTS.Id, model.PermissionDeleteOthersPosts.Id,
}, },
"system_user": { "system_user": {
model.PERMISSION_LIST_PUBLIC_TEAMS.Id, model.PermissionListPublicTeams.Id,
model.PERMISSION_JOIN_PUBLIC_TEAMS.Id, model.PermissionJoinPublicTeams.Id,
model.PERMISSION_CREATE_DIRECT_CHANNEL.Id, model.PermissionCreateDirectChannel.Id,
model.PERMISSION_CREATE_GROUP_CHANNEL.Id, model.PermissionCreateGroupChannel.Id,
model.PERMISSION_VIEW_MEMBERS.Id, model.PermissionViewMembers.Id,
model.PERMISSION_CREATE_TEAM.Id, model.PermissionCreateTeam.Id,
}, },
"system_post_all": { "system_post_all": {
model.PERMISSION_CREATE_POST.Id, model.PermissionCreatePost.Id,
model.PERMISSION_USE_CHANNEL_MENTIONS.Id, model.PermissionUseChannelMentions.Id,
}, },
"system_post_all_public": { "system_post_all_public": {
model.PERMISSION_CREATE_POST_PUBLIC.Id, model.PermissionCreatePostPublic.Id,
model.PERMISSION_USE_CHANNEL_MENTIONS.Id, model.PermissionUseChannelMentions.Id,
}, },
"system_user_access_token": { "system_user_access_token": {
model.PERMISSION_CREATE_USER_ACCESS_TOKEN.Id, model.PermissionCreateUserAccessToken.Id,
model.PERMISSION_READ_USER_ACCESS_TOKEN.Id, model.PermissionReadUserAccessToken.Id,
model.PERMISSION_REVOKE_USER_ACCESS_TOKEN.Id, model.PermissionRevokeUserAccessToken.Id,
}, },
"system_admin": allPermissionIDs, "system_admin": allPermissionIDs,
} }
@@ -384,7 +384,7 @@ func TestDoEmojisPermissionsMigration(t *testing.T) {
}() }()
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.DEPRECATED_DO_NOT_USE_RestrictCustomEmojiCreation = model.RESTRICT_EMOJI_CREATION_SYSTEM_ADMIN *cfg.ServiceSettings.DEPRECATED_DO_NOT_USE_RestrictCustomEmojiCreation = model.RestrictEmojiCreationSystemAdmin
}) })
th.ResetEmojisMigration() th.ResetEmojisMigration()
@@ -393,84 +393,84 @@ func TestDoEmojisPermissionsMigration(t *testing.T) {
expectedSystemAdmin := allPermissionIDs expectedSystemAdmin := allPermissionIDs
sort.Strings(expectedSystemAdmin) sort.Strings(expectedSystemAdmin)
role1, err1 := th.App.GetRoleByName(context.Background(), model.SYSTEM_ADMIN_ROLE_ID) role1, err1 := th.App.GetRoleByName(context.Background(), model.SystemAdminRoleId)
assert.Nil(t, err1) assert.Nil(t, err1)
sort.Strings(role1.Permissions) sort.Strings(role1.Permissions)
assert.Equal(t, expectedSystemAdmin, role1.Permissions, fmt.Sprintf("'%v' did not have expected permissions", model.SYSTEM_ADMIN_ROLE_ID)) assert.Equal(t, expectedSystemAdmin, role1.Permissions, fmt.Sprintf("'%v' did not have expected permissions", model.SystemAdminRoleId))
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.DEPRECATED_DO_NOT_USE_RestrictCustomEmojiCreation = model.RESTRICT_EMOJI_CREATION_ADMIN *cfg.ServiceSettings.DEPRECATED_DO_NOT_USE_RestrictCustomEmojiCreation = model.RestrictEmojiCreationAdmin
}) })
th.ResetEmojisMigration() th.ResetEmojisMigration()
th.App.DoEmojisPermissionsMigration() th.App.DoEmojisPermissionsMigration()
role2, err2 := th.App.GetRoleByName(context.Background(), model.TEAM_ADMIN_ROLE_ID) role2, err2 := th.App.GetRoleByName(context.Background(), model.TeamAdminRoleId)
assert.Nil(t, err2) assert.Nil(t, err2)
expected2 := []string{ expected2 := []string{
model.PERMISSION_REMOVE_USER_FROM_TEAM.Id, model.PermissionRemoveUserFromTeam.Id,
model.PERMISSION_MANAGE_TEAM.Id, model.PermissionManageTeam.Id,
model.PERMISSION_IMPORT_TEAM.Id, model.PermissionImportTeam.Id,
model.PERMISSION_MANAGE_TEAM_ROLES.Id, model.PermissionManageTeamRoles.Id,
model.PERMISSION_READ_PUBLIC_CHANNEL_GROUPS.Id, model.PermissionReadPublicChannelGroups.Id,
model.PERMISSION_READ_PRIVATE_CHANNEL_GROUPS.Id, model.PermissionReadPrivateChannelGroups.Id,
model.PERMISSION_MANAGE_CHANNEL_ROLES.Id, model.PermissionManageChannelRoles.Id,
model.PERMISSION_MANAGE_OTHERS_INCOMING_WEBHOOKS.Id, model.PermissionManageOthersIncomingWebhooks.Id,
model.PERMISSION_MANAGE_OTHERS_OUTGOING_WEBHOOKS.Id, model.PermissionManageOthersOutgoingWebhooks.Id,
model.PERMISSION_MANAGE_SLASH_COMMANDS.Id, model.PermissionManageSlashCommands.Id,
model.PERMISSION_MANAGE_OTHERS_SLASH_COMMANDS.Id, model.PermissionManageOthersSlashCommands.Id,
model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.PermissionManageIncomingWebhooks.Id,
model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, model.PermissionManageOutgoingWebhooks.Id,
model.PERMISSION_DELETE_POST.Id, model.PermissionDeletePost.Id,
model.PERMISSION_DELETE_OTHERS_POSTS.Id, model.PermissionDeleteOthersPosts.Id,
model.PERMISSION_CREATE_EMOJIS.Id, model.PermissionCreateEmojis.Id,
model.PERMISSION_DELETE_EMOJIS.Id, model.PermissionDeleteEmojis.Id,
model.PERMISSION_ADD_REACTION.Id, model.PermissionAddReaction.Id,
model.PERMISSION_CREATE_POST.Id, model.PermissionCreatePost.Id,
model.PERMISSION_MANAGE_PUBLIC_CHANNEL_MEMBERS.Id, model.PermissionManagePublicChannelMembers.Id,
model.PERMISSION_MANAGE_PRIVATE_CHANNEL_MEMBERS.Id, model.PermissionManagePrivateChannelMembers.Id,
model.PERMISSION_REMOVE_REACTION.Id, model.PermissionRemoveReaction.Id,
model.PERMISSION_USE_CHANNEL_MENTIONS.Id, model.PermissionUseChannelMentions.Id,
model.PERMISSION_USE_GROUP_MENTIONS.Id, model.PermissionUseGroupMentions.Id,
model.PERMISSION_CONVERT_PUBLIC_CHANNEL_TO_PRIVATE.Id, model.PermissionConvertPublicChannelToPrivate.Id,
model.PERMISSION_CONVERT_PRIVATE_CHANNEL_TO_PUBLIC.Id, model.PermissionConvertPrivateChannelToPublic.Id,
} }
sort.Strings(expected2) sort.Strings(expected2)
sort.Strings(role2.Permissions) sort.Strings(role2.Permissions)
assert.Equal(t, expected2, role2.Permissions, fmt.Sprintf("'%v' did not have expected permissions", model.TEAM_ADMIN_ROLE_ID)) assert.Equal(t, expected2, role2.Permissions, fmt.Sprintf("'%v' did not have expected permissions", model.TeamAdminRoleId))
systemAdmin1, systemAdminErr1 := th.App.GetRoleByName(context.Background(), model.SYSTEM_ADMIN_ROLE_ID) systemAdmin1, systemAdminErr1 := th.App.GetRoleByName(context.Background(), model.SystemAdminRoleId)
assert.Nil(t, systemAdminErr1) assert.Nil(t, systemAdminErr1)
sort.Strings(systemAdmin1.Permissions) sort.Strings(systemAdmin1.Permissions)
assert.Equal(t, expectedSystemAdmin, systemAdmin1.Permissions, fmt.Sprintf("'%v' did not have expected permissions", model.SYSTEM_ADMIN_ROLE_ID)) assert.Equal(t, expectedSystemAdmin, systemAdmin1.Permissions, fmt.Sprintf("'%v' did not have expected permissions", model.SystemAdminRoleId))
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.DEPRECATED_DO_NOT_USE_RestrictCustomEmojiCreation = model.RESTRICT_EMOJI_CREATION_ALL *cfg.ServiceSettings.DEPRECATED_DO_NOT_USE_RestrictCustomEmojiCreation = model.RestrictEmojiCreationAll
}) })
th.ResetEmojisMigration() th.ResetEmojisMigration()
th.App.DoEmojisPermissionsMigration() th.App.DoEmojisPermissionsMigration()
role3, err3 := th.App.GetRoleByName(context.Background(), model.SYSTEM_USER_ROLE_ID) role3, err3 := th.App.GetRoleByName(context.Background(), model.SystemUserRoleId)
assert.Nil(t, err3) assert.Nil(t, err3)
expected3 := []string{ expected3 := []string{
model.PERMISSION_LIST_PUBLIC_TEAMS.Id, model.PermissionListPublicTeams.Id,
model.PERMISSION_JOIN_PUBLIC_TEAMS.Id, model.PermissionJoinPublicTeams.Id,
model.PERMISSION_CREATE_DIRECT_CHANNEL.Id, model.PermissionCreateDirectChannel.Id,
model.PERMISSION_CREATE_GROUP_CHANNEL.Id, model.PermissionCreateGroupChannel.Id,
model.PERMISSION_CREATE_TEAM.Id, model.PermissionCreateTeam.Id,
model.PERMISSION_CREATE_EMOJIS.Id, model.PermissionCreateEmojis.Id,
model.PERMISSION_DELETE_EMOJIS.Id, model.PermissionDeleteEmojis.Id,
model.PERMISSION_VIEW_MEMBERS.Id, model.PermissionViewMembers.Id,
} }
sort.Strings(expected3) sort.Strings(expected3)
sort.Strings(role3.Permissions) sort.Strings(role3.Permissions)
assert.Equal(t, expected3, role3.Permissions, fmt.Sprintf("'%v' did not have expected permissions", model.SYSTEM_USER_ROLE_ID)) assert.Equal(t, expected3, role3.Permissions, fmt.Sprintf("'%v' did not have expected permissions", model.SystemUserRoleId))
systemAdmin2, systemAdminErr2 := th.App.GetRoleByName(context.Background(), model.SYSTEM_ADMIN_ROLE_ID) systemAdmin2, systemAdminErr2 := th.App.GetRoleByName(context.Background(), model.SystemAdminRoleId)
assert.Nil(t, systemAdminErr2) assert.Nil(t, systemAdminErr2)
sort.Strings(systemAdmin2.Permissions) sort.Strings(systemAdmin2.Permissions)
assert.Equal(t, expectedSystemAdmin, systemAdmin2.Permissions, fmt.Sprintf("'%v' did not have expected permissions", model.SYSTEM_ADMIN_ROLE_ID)) assert.Equal(t, expectedSystemAdmin, systemAdmin2.Permissions, fmt.Sprintf("'%v' did not have expected permissions", model.SystemAdminRoleId))
} }
func TestDBHealthCheckWriteAndDelete(t *testing.T) { func TestDBHealthCheckWriteAndDelete(t *testing.T) {

Просмотреть файл

@@ -249,7 +249,7 @@ func (a *App) authenticateUser(c *request.Context, user *model.User, password, m
license := a.Srv().License() license := a.Srv().License()
ldapAvailable := *a.Config().LdapSettings.Enable && a.Ldap() != nil && license != nil && *license.Features.LDAP ldapAvailable := *a.Config().LdapSettings.Enable && a.Ldap() != nil && license != nil && *license.Features.LDAP
if user.AuthService == model.USER_AUTH_SERVICE_LDAP { if user.AuthService == model.UserAuthServiceLdap {
if !ldapAvailable { if !ldapAvailable {
err := model.NewAppError("login", "api.user.login_ldap.not_available.app_error", nil, "", http.StatusNotImplemented) err := model.NewAppError("login", "api.user.login_ldap.not_available.app_error", nil, "", http.StatusNotImplemented)
return user, err return user, err
@@ -267,7 +267,7 @@ func (a *App) authenticateUser(c *request.Context, user *model.User, password, m
if user.AuthService != "" { if user.AuthService != "" {
authService := user.AuthService authService := user.AuthService
if authService == model.USER_AUTH_SERVICE_SAML { if authService == model.UserAuthServiceSaml {
authService = strings.ToUpper(authService) authService = strings.ToUpper(authService)
} }
err := model.NewAppError("login", "api.user.login.use_auth_service.app_error", map[string]interface{}{"AuthService": authService}, "", http.StatusBadRequest) err := model.NewAppError("login", "api.user.login.use_auth_service.app_error", map[string]interface{}{"AuthService": authService}, "", http.StatusBadRequest)
@@ -283,20 +283,20 @@ func (a *App) authenticateUser(c *request.Context, user *model.User, password, m
} }
func ParseAuthTokenFromRequest(r *http.Request) (string, TokenLocation) { func ParseAuthTokenFromRequest(r *http.Request) (string, TokenLocation) {
authHeader := r.Header.Get(model.HEADER_AUTH) authHeader := r.Header.Get(model.HeaderAuth)
// Attempt to parse the token from the cookie // Attempt to parse the token from the cookie
if cookie, err := r.Cookie(model.SESSION_COOKIE_TOKEN); err == nil { if cookie, err := r.Cookie(model.SessionCookieToken); err == nil {
return cookie.Value, TokenLocationCookie return cookie.Value, TokenLocationCookie
} }
// Parse the token from the header // Parse the token from the header
if len(authHeader) > 6 && strings.ToUpper(authHeader[0:6]) == model.HEADER_BEARER { if len(authHeader) > 6 && strings.ToUpper(authHeader[0:6]) == model.HeaderBearer {
// Default session token // Default session token
return authHeader[7:], TokenLocationHeader return authHeader[7:], TokenLocationHeader
} }
if len(authHeader) > 5 && strings.ToLower(authHeader[0:5]) == model.HEADER_TOKEN { if len(authHeader) > 5 && strings.ToLower(authHeader[0:5]) == model.HeaderToken {
// OAuth token // OAuth token
return authHeader[6:], TokenLocationHeader return authHeader[6:], TokenLocationHeader
} }
@@ -306,11 +306,11 @@ func ParseAuthTokenFromRequest(r *http.Request) (string, TokenLocation) {
return token, TokenLocationQueryString return token, TokenLocationQueryString
} }
if token := r.Header.Get(model.HEADER_CLOUD_TOKEN); token != "" { if token := r.Header.Get(model.HeaderCloudToken); token != "" {
return token, TokenLocationCloudHeader return token, TokenLocationCloudHeader
} }
if token := r.Header.Get(model.HEADER_REMOTECLUSTER_TOKEN); token != "" { if token := r.Header.Get(model.HeaderRemoteclusterToken); token != "" {
return token, TokenLocationRemoteClusterHeader return token, TokenLocationRemoteClusterHeader
} }

Просмотреть файл

@@ -38,12 +38,12 @@ func TestParseAuthTokenFromRequest(t *testing.T) {
req := httptest.NewRequest("GET", pathname, nil) req := httptest.NewRequest("GET", pathname, nil)
switch tc.expectedLocation { switch tc.expectedLocation {
case TokenLocationHeader: case TokenLocationHeader:
req.Header.Add(model.HEADER_AUTH, tc.header) req.Header.Add(model.HeaderAuth, tc.header)
case TokenLocationCloudHeader: case TokenLocationCloudHeader:
req.Header.Add(model.HEADER_CLOUD_TOKEN, tc.header) req.Header.Add(model.HeaderCloudToken, tc.header)
case TokenLocationCookie: case TokenLocationCookie:
req.AddCookie(&http.Cookie{ req.AddCookie(&http.Cookie{
Name: model.SESSION_COOKIE_TOKEN, Name: model.SessionCookieToken,
Value: tc.cookie, Value: tc.cookie,
}) })
} }

Просмотреть файл

@@ -106,7 +106,7 @@ func (a *App) SessionHasPermissionToChannelByPost(session model.Session, postID
} }
func (a *App) SessionHasPermissionToCategory(session model.Session, userID, teamID, categoryId string) bool { func (a *App) SessionHasPermissionToCategory(session model.Session, userID, teamID, categoryId string) bool {
if a.SessionHasPermissionTo(session, model.PERMISSION_EDIT_OTHER_USERS) { if a.SessionHasPermissionTo(session, model.PermissionEditOtherUsers) {
return true return true
} }
category, err := a.GetSidebarCategory(categoryId) category, err := a.GetSidebarCategory(categoryId)
@@ -125,7 +125,7 @@ func (a *App) SessionHasPermissionToUser(session model.Session, userID string) b
return true return true
} }
if a.SessionHasPermissionTo(session, model.PERMISSION_EDIT_OTHER_USERS) { if a.SessionHasPermissionTo(session, model.PermissionEditOtherUsers) {
return true return true
} }
@@ -212,7 +212,7 @@ func (a *App) HasPermissionToUser(askingUserId string, userID string) bool {
return true return true
} }
if a.HasPermissionTo(askingUserId, model.PERMISSION_EDIT_OTHER_USERS) { if a.HasPermissionTo(askingUserId, model.PermissionEditOtherUsers) {
return true return true
} }
@@ -257,22 +257,22 @@ func (a *App) SessionHasPermissionToManageBot(session model.Session, botUserId s
} }
if existingBot.OwnerId == session.UserId { if existingBot.OwnerId == session.UserId {
if !a.SessionHasPermissionTo(session, model.PERMISSION_MANAGE_BOTS) { if !a.SessionHasPermissionTo(session, model.PermissionManageBots) {
if !a.SessionHasPermissionTo(session, model.PERMISSION_READ_BOTS) { if !a.SessionHasPermissionTo(session, model.PermissionReadBots) {
// If the user doesn't have permission to read bots, pretend as if // If the user doesn't have permission to read bots, pretend as if
// the bot doesn't exist at all. // the bot doesn't exist at all.
return model.MakeBotNotFoundError(botUserId) return model.MakeBotNotFoundError(botUserId)
} }
return a.MakePermissionError(&session, []*model.Permission{model.PERMISSION_MANAGE_BOTS}) return a.MakePermissionError(&session, []*model.Permission{model.PermissionManageBots})
} }
} else { } else {
if !a.SessionHasPermissionTo(session, model.PERMISSION_MANAGE_OTHERS_BOTS) { if !a.SessionHasPermissionTo(session, model.PermissionManageOthersBots) {
if !a.SessionHasPermissionTo(session, model.PERMISSION_READ_OTHERS_BOTS) { if !a.SessionHasPermissionTo(session, model.PermissionReadOthersBots) {
// If the user doesn't have permission to read others' bots, // If the user doesn't have permission to read others' bots,
// pretend as if the bot doesn't exist at all. // pretend as if the bot doesn't exist at all.
return model.MakeBotNotFoundError(botUserId) return model.MakeBotNotFoundError(botUserId)
} }
return a.MakePermissionError(&session, []*model.Permission{model.PERMISSION_MANAGE_OTHERS_BOTS}) return a.MakePermissionError(&session, []*model.Permission{model.PermissionManageOthersBots})
} }
} }

Просмотреть файл

@@ -24,14 +24,14 @@ func TestCheckIfRolesGrantPermission(t *testing.T) {
permissionId string permissionId string
shouldGrant bool shouldGrant bool
}{ }{
{[]string{model.SYSTEM_ADMIN_ROLE_ID}, model.PERMISSION_MANAGE_SYSTEM.Id, true}, {[]string{model.SystemAdminRoleId}, model.PermissionManageSystem.Id, true},
{[]string{model.SYSTEM_ADMIN_ROLE_ID}, "non-existent-permission", false}, {[]string{model.SystemAdminRoleId}, "non-existent-permission", false},
{[]string{model.CHANNEL_USER_ROLE_ID}, model.PERMISSION_READ_CHANNEL.Id, true}, {[]string{model.ChannelUserRoleId}, model.PermissionReadChannel.Id, true},
{[]string{model.CHANNEL_USER_ROLE_ID}, model.PERMISSION_MANAGE_SYSTEM.Id, false}, {[]string{model.ChannelUserRoleId}, model.PermissionManageSystem.Id, false},
{[]string{model.SYSTEM_ADMIN_ROLE_ID, model.CHANNEL_USER_ROLE_ID}, model.PERMISSION_MANAGE_SYSTEM.Id, true}, {[]string{model.SystemAdminRoleId, model.ChannelUserRoleId}, model.PermissionManageSystem.Id, true},
{[]string{model.CHANNEL_USER_ROLE_ID, model.SYSTEM_ADMIN_ROLE_ID}, model.PERMISSION_MANAGE_SYSTEM.Id, true}, {[]string{model.ChannelUserRoleId, model.SystemAdminRoleId}, model.PermissionManageSystem.Id, true},
{[]string{model.TEAM_USER_ROLE_ID, model.TEAM_ADMIN_ROLE_ID}, model.PERMISSION_MANAGE_SLASH_COMMANDS.Id, true}, {[]string{model.TeamUserRoleId, model.TeamAdminRoleId}, model.PermissionManageSlashCommands.Id, true},
{[]string{model.TEAM_ADMIN_ROLE_ID, model.TEAM_USER_ROLE_ID}, model.PERMISSION_MANAGE_SLASH_COMMANDS.Id, true}, {[]string{model.TeamAdminRoleId, model.TeamUserRoleId}, model.PermissionManageSlashCommands.Id, true},
} }
for _, testcase := range cases { for _, testcase := range cases {
@@ -50,17 +50,17 @@ func TestHasPermissionToTeam(t *testing.T) {
th := Setup(t).InitBasic() th := Setup(t).InitBasic()
defer th.TearDown() defer th.TearDown()
assert.True(t, th.App.HasPermissionToTeam(th.BasicUser.Id, th.BasicTeam.Id, model.PERMISSION_LIST_TEAM_CHANNELS)) assert.True(t, th.App.HasPermissionToTeam(th.BasicUser.Id, th.BasicTeam.Id, model.PermissionListTeamChannels))
th.RemoveUserFromTeam(th.BasicUser, th.BasicTeam) th.RemoveUserFromTeam(th.BasicUser, th.BasicTeam)
assert.False(t, th.App.HasPermissionToTeam(th.BasicUser.Id, th.BasicTeam.Id, model.PERMISSION_LIST_TEAM_CHANNELS)) assert.False(t, th.App.HasPermissionToTeam(th.BasicUser.Id, th.BasicTeam.Id, model.PermissionListTeamChannels))
assert.True(t, th.App.HasPermissionToTeam(th.SystemAdminUser.Id, th.BasicTeam.Id, model.PERMISSION_LIST_TEAM_CHANNELS)) assert.True(t, th.App.HasPermissionToTeam(th.SystemAdminUser.Id, th.BasicTeam.Id, model.PermissionListTeamChannels))
th.LinkUserToTeam(th.SystemAdminUser, th.BasicTeam) th.LinkUserToTeam(th.SystemAdminUser, th.BasicTeam)
assert.True(t, th.App.HasPermissionToTeam(th.SystemAdminUser.Id, th.BasicTeam.Id, model.PERMISSION_LIST_TEAM_CHANNELS)) assert.True(t, th.App.HasPermissionToTeam(th.SystemAdminUser.Id, th.BasicTeam.Id, model.PermissionListTeamChannels))
th.RemovePermissionFromRole(model.PERMISSION_LIST_TEAM_CHANNELS.Id, model.TEAM_USER_ROLE_ID) th.RemovePermissionFromRole(model.PermissionListTeamChannels.Id, model.TeamUserRoleId)
assert.True(t, th.App.HasPermissionToTeam(th.SystemAdminUser.Id, th.BasicTeam.Id, model.PERMISSION_LIST_TEAM_CHANNELS)) assert.True(t, th.App.HasPermissionToTeam(th.SystemAdminUser.Id, th.BasicTeam.Id, model.PermissionListTeamChannels))
th.RemoveUserFromTeam(th.SystemAdminUser, th.BasicTeam) th.RemoveUserFromTeam(th.SystemAdminUser, th.BasicTeam)
assert.True(t, th.App.HasPermissionToTeam(th.SystemAdminUser.Id, th.BasicTeam.Id, model.PERMISSION_LIST_TEAM_CHANNELS)) assert.True(t, th.App.HasPermissionToTeam(th.SystemAdminUser.Id, th.BasicTeam.Id, model.PermissionListTeamChannels))
} }
func TestSessionHasPermissionToChannel(t *testing.T) { func TestSessionHasPermissionToChannel(t *testing.T) {
@@ -72,7 +72,7 @@ func TestSessionHasPermissionToChannel(t *testing.T) {
} }
t.Run("basic user can access basic channel", func(t *testing.T) { t.Run("basic user can access basic channel", func(t *testing.T) {
assert.True(t, th.App.SessionHasPermissionToChannel(session, th.BasicChannel.Id, model.PERMISSION_ADD_REACTION)) assert.True(t, th.App.SessionHasPermissionToChannel(session, th.BasicChannel.Id, model.PermissionAddReaction))
}) })
t.Run("does not panic if fetching channel causes an error", func(t *testing.T) { t.Run("does not panic if fetching channel causes an error", func(t *testing.T) {
@@ -97,7 +97,7 @@ func TestSessionHasPermissionToChannel(t *testing.T) {
// If there's an error returned from the GetChannel call the code should continue to cascade and since there // If there's an error returned from the GetChannel call the code should continue to cascade and since there
// are no session level permissions in this test case, the permission should be denied. // are no session level permissions in this test case, the permission should be denied.
assert.False(t, th.App.SessionHasPermissionToChannel(session, th.BasicUser.Id, model.PERMISSION_ADD_REACTION)) assert.False(t, th.App.SessionHasPermissionToChannel(session, th.BasicUser.Id, model.PermissionAddReaction))
}) })
} }

Просмотреть файл

@@ -22,7 +22,7 @@ func (a *App) checkIfRespondedToday(createdAt int64, channelId, userId string) (
} }
func (a *App) SendAutoResponseIfNecessary(c *request.Context, channel *model.Channel, sender *model.User, post *model.Post) (bool, *model.AppError) { func (a *App) SendAutoResponseIfNecessary(c *request.Context, channel *model.Channel, sender *model.User, post *model.Post) (bool, *model.AppError) {
if channel.Type != model.CHANNEL_DIRECT { if channel.Type != model.ChannelTypeDirect {
return false, nil return false, nil
} }
@@ -57,8 +57,8 @@ func (a *App) SendAutoResponse(c *request.Context, channel *model.Channel, recei
return false, nil return false, nil
} }
active := receiver.NotifyProps[model.AUTO_RESPONDER_ACTIVE_NOTIFY_PROP] == "true" active := receiver.NotifyProps[model.AutoResponderActiveNotifyProp] == "true"
message := receiver.NotifyProps[model.AUTO_RESPONDER_MESSAGE_NOTIFY_PROP] message := receiver.NotifyProps[model.AutoResponderMessageNotifyProp]
if !active || message == "" { if !active || message == "" {
return false, nil return false, nil
@@ -73,7 +73,7 @@ func (a *App) SendAutoResponse(c *request.Context, channel *model.Channel, recei
ChannelId: channel.Id, ChannelId: channel.Id,
Message: message, Message: message,
RootId: rootID, RootId: rootID,
Type: model.POST_AUTO_RESPONDER, Type: model.PostTypeAutoResponder,
UserId: receiver.Id, UserId: receiver.Id,
} }
@@ -85,8 +85,8 @@ func (a *App) SendAutoResponse(c *request.Context, channel *model.Channel, recei
} }
func (a *App) SetAutoResponderStatus(user *model.User, oldNotifyProps model.StringMap) { func (a *App) SetAutoResponderStatus(user *model.User, oldNotifyProps model.StringMap) {
active := user.NotifyProps[model.AUTO_RESPONDER_ACTIVE_NOTIFY_PROP] == "true" active := user.NotifyProps[model.AutoResponderActiveNotifyProp] == "true"
oldActive := oldNotifyProps[model.AUTO_RESPONDER_ACTIVE_NOTIFY_PROP] == "true" oldActive := oldNotifyProps[model.AutoResponderActiveNotifyProp] == "true"
autoResponderEnabled := !oldActive && active autoResponderEnabled := !oldActive && active
autoResponderDisabled := oldActive && !active autoResponderDisabled := oldActive && !active
@@ -104,12 +104,12 @@ func (a *App) DisableAutoResponder(userID string, asAdmin bool) *model.AppError
return err return err
} }
active := user.NotifyProps[model.AUTO_RESPONDER_ACTIVE_NOTIFY_PROP] == "true" active := user.NotifyProps[model.AutoResponderActiveNotifyProp] == "true"
if active { if active {
patch := &model.UserPatch{} patch := &model.UserPatch{}
patch.NotifyProps = user.NotifyProps patch.NotifyProps = user.NotifyProps
patch.NotifyProps[model.AUTO_RESPONDER_ACTIVE_NOTIFY_PROP] = "false" patch.NotifyProps[model.AutoResponderActiveNotifyProp] = "false"
_, err := a.PatchUser(userID, patch, asAdmin) _, err := a.PatchUser(userID, patch, asAdmin)
if err != nil { if err != nil {

Просмотреть файл

@@ -33,7 +33,7 @@ func TestSetAutoResponderStatus(t *testing.T) {
status, err := th.App.GetStatus(userUpdated1.Id) status, err := th.App.GetStatus(userUpdated1.Id)
require.Nil(t, err) require.Nil(t, err)
assert.Equal(t, model.STATUS_OUT_OF_OFFICE, status.Status) assert.Equal(t, model.StatusOutOfOffice, status.Status)
patch2 := &model.UserPatch{} patch2 := &model.UserPatch{}
patch2.NotifyProps = make(map[string]string) patch2.NotifyProps = make(map[string]string)
@@ -47,7 +47,7 @@ func TestSetAutoResponderStatus(t *testing.T) {
status, err = th.App.GetStatus(userUpdated2.Id) status, err = th.App.GetStatus(userUpdated2.Id)
require.Nil(t, err) require.Nil(t, err)
assert.Equal(t, model.STATUS_ONLINE, status.Status) assert.Equal(t, model.StatusOnline, status.Status)
} }
@@ -268,7 +268,7 @@ func TestSendAutoResponseSuccess(t *testing.T) {
autoResponderPostFound := false autoResponderPostFound := false
for _, post := range list.Posts { for _, post := range list.Posts {
if post.Type == model.POST_AUTO_RESPONDER { if post.Type == model.PostTypeAutoResponder {
autoResponderPostFound = true autoResponderPostFound = true
assert.Equal(t, savedPost.Id, post.RootId) assert.Equal(t, savedPost.Id, post.RootId)
assert.Equal(t, savedPost.Id, post.ParentId) assert.Equal(t, savedPost.Id, post.ParentId)
@@ -318,7 +318,7 @@ func TestSendAutoResponseSuccessOnThread(t *testing.T) {
autoResponderPostFound := false autoResponderPostFound := false
for _, post := range list.Posts { for _, post := range list.Posts {
if post.Type == model.POST_AUTO_RESPONDER { if post.Type == model.PostTypeAutoResponder {
autoResponderPostFound = true autoResponderPostFound = true
assert.Equal(t, savedPost.RootId, post.RootId) assert.Equal(t, savedPost.RootId, post.RootId)
assert.Equal(t, savedPost.ParentId, post.ParentId) assert.Equal(t, savedPost.ParentId, post.ParentId)
@@ -359,7 +359,7 @@ func TestSendAutoResponseFailure(t *testing.T) {
} else { } else {
autoResponderPostFound := false autoResponderPostFound := false
for _, post := range list.Posts { for _, post := range list.Posts {
if post.Type == model.POST_AUTO_RESPONDER { if post.Type == model.PostTypeAutoResponder {
autoResponderPostFound = true autoResponderPostFound = true
} }
} }

Просмотреть файл

@@ -76,7 +76,7 @@ func (a *App) CreateBot(c *request.Context, bot *model.Bot) (*model.Bot, *model.
T := i18n.GetUserTranslations(ownerUser.Locale) T := i18n.GetUserTranslations(ownerUser.Locale)
botAddPost := &model.Post{ botAddPost := &model.Post{
Type: model.POST_ADD_BOT_TEAMS_CHANNELS, Type: model.PostTypeAddBotTeamsChannels,
UserId: savedBot.UserId, UserId: savedBot.UserId,
ChannelId: channel.Id, ChannelId: channel.Id,
Message: T("api.bot.teams_channels.add_message_mobile"), Message: T("api.bot.teams_channels.add_message_mobile"),
@@ -96,7 +96,7 @@ func (a *App) GetWarnMetricsBot() (*model.Bot, *model.AppError) {
userOptions := &model.UserGetOptions{ userOptions := &model.UserGetOptions{
Page: 0, Page: 0,
PerPage: perPage, PerPage: perPage,
Role: model.SYSTEM_ADMIN_ROLE_ID, Role: model.SystemAdminRoleId,
Inactive: false, Inactive: false,
} }
@@ -111,7 +111,7 @@ func (a *App) GetWarnMetricsBot() (*model.Bot, *model.AppError) {
T := i18n.GetUserTranslations(sysAdminList[0].Locale) T := i18n.GetUserTranslations(sysAdminList[0].Locale)
warnMetricsBot := &model.Bot{ warnMetricsBot := &model.Bot{
Username: model.BOT_WARN_METRIC_BOT_USERNAME, Username: model.BotWarnMetricBotUsername,
DisplayName: T("app.system.warn_metric.bot_displayname"), DisplayName: T("app.system.warn_metric.bot_displayname"),
Description: "", Description: "",
OwnerId: sysAdminList[0].Id, OwnerId: sysAdminList[0].Id,
@@ -125,7 +125,7 @@ func (a *App) GetSystemBot() (*model.Bot, *model.AppError) {
userOptions := &model.UserGetOptions{ userOptions := &model.UserGetOptions{
Page: 0, Page: 0,
PerPage: perPage, PerPage: perPage,
Role: model.SYSTEM_ADMIN_ROLE_ID, Role: model.SystemAdminRoleId,
Inactive: false, Inactive: false,
} }
@@ -140,7 +140,7 @@ func (a *App) GetSystemBot() (*model.Bot, *model.AppError) {
T := i18n.GetUserTranslations(sysAdminList[0].Locale) T := i18n.GetUserTranslations(sysAdminList[0].Locale)
systemBot := &model.Bot{ systemBot := &model.Bot{
Username: model.BOT_SYSTEM_BOT_USERNAME, Username: model.BotSystemBotUsername,
DisplayName: T("app.system.system_bot.bot_displayname"), DisplayName: T("app.system.system_bot.bot_displayname"),
Description: "", Description: "",
OwnerId: sysAdminList[0].Id, OwnerId: sysAdminList[0].Id,
@@ -478,7 +478,7 @@ func (a *App) notifySysadminsBotOwnerDeactivated(c *request.Context, userID stri
userOptions := &model.UserGetOptions{ userOptions := &model.UserGetOptions{
Page: 0, Page: 0,
PerPage: perPage, PerPage: perPage,
Role: model.SYSTEM_ADMIN_ROLE_ID, Role: model.SystemAdminRoleId,
Inactive: false, Inactive: false,
} }
// get sysadmins // get sysadmins
@@ -515,7 +515,7 @@ func (a *App) notifySysadminsBotOwnerDeactivated(c *request.Context, userID stri
UserId: sysAdmin.Id, UserId: sysAdmin.Id,
ChannelId: channel.Id, ChannelId: channel.Id,
Message: a.getDisableBotSysadminMessage(user, userBots), Message: a.getDisableBotSysadminMessage(user, userBots),
Type: model.POST_SYSTEM_GENERIC, Type: model.PostTypeSystemGeneric,
} }
_, appErr = a.CreatePost(c, post, channel, false, true) _, appErr = a.CreatePost(c, post, channel, false, true)

Просмотреть файл

@@ -87,7 +87,7 @@ func TestCreateBot(t *testing.T) {
postArray := posts.ToSlice() postArray := posts.ToSlice()
assert.Len(t, postArray, 1) assert.Len(t, postArray, 1)
assert.Equal(t, postArray[0].Type, model.POST_ADD_BOT_TEAMS_CHANNELS) assert.Equal(t, postArray[0].Type, model.PostTypeAddBotTeamsChannels)
}) })
t.Run("create bot, username already used by a non-bot user", func(t *testing.T) { t.Run("create bot, username already used by a non-bot user", func(t *testing.T) {
@@ -595,20 +595,20 @@ func TestNotifySysadminsBotOwnerDisabled(t *testing.T) {
Nickname: "nn_sysadmin1", Nickname: "nn_sysadmin1",
Password: "hello1", Password: "hello1",
Username: "un_sysadmin1", Username: "un_sysadmin1",
Roles: model.SYSTEM_ADMIN_ROLE_ID + " " + model.SYSTEM_USER_ROLE_ID} Roles: model.SystemAdminRoleId + " " + model.SystemUserRoleId}
_, err := th.App.CreateUser(th.Context, &sysadmin1) _, err := th.App.CreateUser(th.Context, &sysadmin1)
require.Nil(t, err, "failed to create user") require.Nil(t, err, "failed to create user")
th.App.UpdateUserRoles(sysadmin1.Id, model.SYSTEM_USER_ROLE_ID+" "+model.SYSTEM_ADMIN_ROLE_ID, false) th.App.UpdateUserRoles(sysadmin1.Id, model.SystemUserRoleId+" "+model.SystemAdminRoleId, false)
sysadmin2 := model.User{ sysadmin2 := model.User{
Email: "sys2@example.com", Email: "sys2@example.com",
Nickname: "nn_sysadmin2", Nickname: "nn_sysadmin2",
Password: "hello1", Password: "hello1",
Username: "un_sysadmin2", Username: "un_sysadmin2",
Roles: model.SYSTEM_ADMIN_ROLE_ID + " " + model.SYSTEM_USER_ROLE_ID} Roles: model.SystemAdminRoleId + " " + model.SystemUserRoleId}
_, err = th.App.CreateUser(th.Context, &sysadmin2) _, err = th.App.CreateUser(th.Context, &sysadmin2)
require.Nil(t, err, "failed to create user") require.Nil(t, err, "failed to create user")
th.App.UpdateUserRoles(sysadmin2.Id, model.SYSTEM_USER_ROLE_ID+" "+model.SYSTEM_ADMIN_ROLE_ID, false) th.App.UpdateUserRoles(sysadmin2.Id, model.SystemUserRoleId+" "+model.SystemAdminRoleId, false)
// create user to be disabled // create user to be disabled
user1, err := th.App.CreateUser(th.Context, &model.User{ user1, err := th.App.CreateUser(th.Context, &model.User{
@@ -932,23 +932,23 @@ func TestGetSystemBot(t *testing.T) {
t.Run("The bot should be created the first time it's retrieved", func(t *testing.T) { t.Run("The bot should be created the first time it's retrieved", func(t *testing.T) {
// assert no bot with username exists // assert no bot with username exists
_, err := th.App.GetUserByUsername(model.BOT_SYSTEM_BOT_USERNAME) _, err := th.App.GetUserByUsername(model.BotSystemBotUsername)
require.NotNil(t, err) require.NotNil(t, err)
bot, err := th.App.GetSystemBot() bot, err := th.App.GetSystemBot()
require.Nil(t, err) require.Nil(t, err)
require.Equal(t, bot.Username, model.BOT_SYSTEM_BOT_USERNAME) require.Equal(t, bot.Username, model.BotSystemBotUsername)
}) })
t.Run("The bot should be correctly retrieved if it exists already", func(t *testing.T) { t.Run("The bot should be correctly retrieved if it exists already", func(t *testing.T) {
// assert that the bot is now present // assert that the bot is now present
botUser, err := th.App.GetUserByUsername(model.BOT_SYSTEM_BOT_USERNAME) botUser, err := th.App.GetUserByUsername(model.BotSystemBotUsername)
require.Nil(t, err) require.Nil(t, err)
require.True(t, botUser.IsBot) require.True(t, botUser.IsBot)
bot, err := th.App.GetSystemBot() bot, err := th.App.GetSystemBot()
require.Nil(t, err) require.Nil(t, err)
require.Equal(t, bot.Username, model.BOT_SYSTEM_BOT_USERNAME) require.Equal(t, bot.Username, model.BotSystemBotUsername)
require.Equal(t, bot.UserId, botUser.Id) require.Equal(t, bot.UserId, botUser.Id)
}) })
} }

Просмотреть файл

@@ -55,7 +55,7 @@ func (b *Busy) Set(dur time.Duration) {
b.setWithoutNotify(dur) b.setWithoutNotify(dur)
if b.cluster != nil { if b.cluster != nil {
sbs := &model.ServerBusyState{Busy: true, Expires: b.expires.Unix(), Expires_ts: b.expires.UTC().Format(TimestampFormat)} sbs := &model.ServerBusyState{Busy: true, Expires: b.expires.Unix(), ExpiresTS: b.expires.UTC().Format(TimestampFormat)}
b.notifyServerBusyChange(sbs) b.notifyServerBusyChange(sbs)
} }
} }
@@ -80,7 +80,7 @@ func (b *Busy) Clear() {
b.clearWithoutNotify() b.clearWithoutNotify()
if b.cluster != nil { if b.cluster != nil {
sbs := &model.ServerBusyState{Busy: false, Expires: time.Time{}.Unix(), Expires_ts: ""} sbs := &model.ServerBusyState{Busy: false, Expires: time.Time{}.Unix(), ExpiresTS: ""}
b.notifyServerBusyChange(sbs) b.notifyServerBusyChange(sbs)
} }
} }
@@ -110,8 +110,8 @@ func (b *Busy) notifyServerBusyChange(sbs *model.ServerBusyState) {
return return
} }
msg := &model.ClusterMessage{ msg := &model.ClusterMessage{
Event: model.CLUSTER_EVENT_BUSY_STATE_CHANGED, Event: model.ClusterEventBusyStateChanged,
SendType: model.CLUSTER_SEND_RELIABLE, SendType: model.ClusterSendReliable,
WaitForAllToSend: true, WaitForAllToSend: true,
Data: sbs.ToJson(), Data: sbs.ToJson(),
} }
@@ -139,9 +139,9 @@ func (b *Busy) ToJson() string {
defer b.mux.RUnlock() defer b.mux.RUnlock()
sbs := &model.ServerBusyState{ sbs := &model.ServerBusyState{
Busy: atomic.LoadInt32(&b.busy) != 0, Busy: atomic.LoadInt32(&b.busy) != 0,
Expires: b.expires.Unix(), Expires: b.expires.Unix(),
Expires_ts: b.expires.UTC().Format(TimestampFormat), ExpiresTS: b.expires.UTC().Format(TimestampFormat),
} }
return sbs.ToJson() return sbs.ToJson()
} }

Просмотреть файл

@@ -31,7 +31,7 @@ func (a *App) CreateDefaultChannels(c *request.Context, teamID string) ([]*model
defaultChannelNames := a.DefaultChannelNames() defaultChannelNames := a.DefaultChannelNames()
for _, name := range defaultChannelNames { for _, name := range defaultChannelNames {
displayName := i18n.TDefault(displayNames[name], name) displayName := i18n.TDefault(displayNames[name], name)
channel := &model.Channel{DisplayName: displayName, Name: name, Type: model.CHANNEL_OPEN, TeamId: teamID} channel := &model.Channel{DisplayName: displayName, Name: name, Type: model.ChannelTypeOpen, TeamId: teamID}
if _, err := a.CreateChannel(c, channel, false); err != nil { if _, err := a.CreateChannel(c, channel, false); err != nil {
return nil, err return nil, err
} }
@@ -96,7 +96,7 @@ func (a *App) JoinDefaultChannels(c *request.Context, teamID string, user *model
continue continue
} }
if channel.Type != model.CHANNEL_OPEN { if channel.Type != model.ChannelTypeOpen {
continue continue
} }
@@ -122,7 +122,7 @@ func (a *App) JoinDefaultChannels(c *request.Context, teamID string, user *model
a.invalidateCacheForChannelMembers(channel.Id) a.invalidateCacheForChannelMembers(channel.Id)
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_USER_ADDED, "", channel.Id, "", nil) message := model.NewWebSocketEvent(model.WebsocketEventUserAdded, "", channel.Id, "", nil)
message.Add("user_id", user.Id) message.Add("user_id", user.Id)
message.Add("team_id", channel.TeamId) message.Add("team_id", channel.TeamId)
a.Publish(message) a.Publish(message)
@@ -147,7 +147,7 @@ func (a *App) JoinDefaultChannels(c *request.Context, teamID string, user *model
} }
func (a *App) postJoinMessageForDefaultChannel(c *request.Context, user *model.User, requestor *model.User, channel *model.Channel) *model.AppError { func (a *App) postJoinMessageForDefaultChannel(c *request.Context, user *model.User, requestor *model.User, channel *model.Channel) *model.AppError {
if channel.Name == model.DEFAULT_CHANNEL { if channel.Name == model.DefaultChannelName {
if requestor == nil { if requestor == nil {
if err := a.postJoinTeamMessage(c, user, channel); err != nil { if err := a.postJoinTeamMessage(c, user, channel); err != nil {
return err return err
@@ -205,7 +205,7 @@ func (a *App) CreateChannelWithUser(c *request.Context, channel *model.Channel,
a.postJoinChannelMessage(c, user, channel) a.postJoinChannelMessage(c, user, channel)
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_CHANNEL_CREATED, "", "", userID, nil) message := model.NewWebSocketEvent(model.WebsocketEventChannelCreated, "", "", userID, nil)
message.Add("channel_id", channel.Id) message.Add("channel_id", channel.Id)
message.Add("team_id", channel.TeamId) message.Add("team_id", channel.TeamId)
a.Publish(message) a.Publish(message)
@@ -215,11 +215,11 @@ func (a *App) CreateChannelWithUser(c *request.Context, channel *model.Channel,
// RenameChannel is used to rename the channel Name and the DisplayName fields // RenameChannel is used to rename the channel Name and the DisplayName fields
func (a *App) RenameChannel(channel *model.Channel, newChannelName string, newDisplayName string) (*model.Channel, *model.AppError) { func (a *App) RenameChannel(channel *model.Channel, newChannelName string, newDisplayName string) (*model.Channel, *model.AppError) {
if channel.Type == model.CHANNEL_DIRECT { if channel.Type == model.ChannelTypeDirect {
return nil, model.NewAppError("RenameChannel", "api.channel.rename_channel.cant_rename_direct_messages.app_error", nil, "", http.StatusBadRequest) return nil, model.NewAppError("RenameChannel", "api.channel.rename_channel.cant_rename_direct_messages.app_error", nil, "", http.StatusBadRequest)
} }
if channel.Type == model.CHANNEL_GROUP { if channel.Type == model.ChannelTypeGroup {
return nil, model.NewAppError("RenameChannel", "api.channel.rename_channel.cant_rename_group_messages.app_error", nil, "", http.StatusBadRequest) return nil, model.NewAppError("RenameChannel", "api.channel.rename_channel.cant_rename_group_messages.app_error", nil, "", http.StatusBadRequest)
} }
@@ -332,8 +332,8 @@ func (a *App) GetOrCreateDirectChannel(c *request.Context, userID, otherUserID s
return channel, nil return channel, nil
} }
if *a.Config().TeamSettings.RestrictDirectMessage == model.DIRECT_MESSAGE_TEAM && if *a.Config().TeamSettings.RestrictDirectMessage == model.DirectMessageTeam &&
!a.SessionHasPermissionTo(*c.Session(), model.PERMISSION_MANAGE_SYSTEM) { !a.SessionHasPermissionTo(*c.Session(), model.PermissionManageSystem) {
commonTeamIDs, err := a.GetCommonTeamIDsForTwoUsers(userID, otherUserID) commonTeamIDs, err := a.GetCommonTeamIDsForTwoUsers(userID, otherUserID)
if err != nil { if err != nil {
return nil, err return nil, err
@@ -391,7 +391,7 @@ func (a *App) handleCreationEvent(c *request.Context, userID, otherUserID string
}) })
} }
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_DIRECT_ADDED, "", channel.Id, "", nil) message := model.NewWebSocketEvent(model.WebsocketEventDirectAdded, "", channel.Id, "", nil)
message.Add("creator_id", userID) message.Add("creator_id", userID)
message.Add("teammate_id", otherUserID) message.Add("teammate_id", otherUserID)
a.Publish(message) a.Publish(message)
@@ -509,7 +509,7 @@ func (a *App) CreateGroupChannel(userIDs []string, creatorId string) (*model.Cha
a.InvalidateCacheForUser(userID) a.InvalidateCacheForUser(userID)
} }
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_GROUP_ADDED, "", channel.Id, "", nil) message := model.NewWebSocketEvent(model.WebsocketEventGroupAdded, "", channel.Id, "", nil)
message.Add("teammate_ids", model.ArrayToJson(userIDs)) message.Add("teammate_ids", model.ArrayToJson(userIDs))
a.Publish(message) a.Publish(message)
@@ -517,7 +517,7 @@ func (a *App) CreateGroupChannel(userIDs []string, creatorId string) (*model.Cha
} }
func (a *App) createGroupChannel(userIDs []string) (*model.Channel, *model.AppError) { func (a *App) createGroupChannel(userIDs []string) (*model.Channel, *model.AppError) {
if len(userIDs) > model.CHANNEL_GROUP_MAX_USERS || len(userIDs) < model.CHANNEL_GROUP_MIN_USERS { if len(userIDs) > model.ChannelGroupMaxUsers || len(userIDs) < model.ChannelGroupMinUsers {
return nil, model.NewAppError("CreateGroupChannel", "api.channel.create_group.bad_size.app_error", nil, "", http.StatusBadRequest) return nil, model.NewAppError("CreateGroupChannel", "api.channel.create_group.bad_size.app_error", nil, "", http.StatusBadRequest)
} }
@@ -533,7 +533,7 @@ func (a *App) createGroupChannel(userIDs []string) (*model.Channel, *model.AppEr
group := &model.Channel{ group := &model.Channel{
Name: model.GetGroupNameFromUserIds(userIDs), Name: model.GetGroupNameFromUserIds(userIDs),
DisplayName: model.GetGroupDisplayNameFromUsers(users, true), DisplayName: model.GetGroupDisplayNameFromUsers(users, true),
Type: model.CHANNEL_GROUP, Type: model.ChannelTypeGroup,
} }
channel, nErr := a.Srv().Store.Channel().Save(group, *a.Config().TeamSettings.MaxChannelsPerTeam) channel, nErr := a.Srv().Store.Channel().Save(group, *a.Config().TeamSettings.MaxChannelsPerTeam)
@@ -596,7 +596,7 @@ func (a *App) createGroupChannel(userIDs []string) (*model.Channel, *model.AppEr
} }
func (a *App) GetGroupChannel(userIDs []string) (*model.Channel, *model.AppError) { func (a *App) GetGroupChannel(userIDs []string) (*model.Channel, *model.AppError) {
if len(userIDs) > model.CHANNEL_GROUP_MAX_USERS || len(userIDs) < model.CHANNEL_GROUP_MIN_USERS { if len(userIDs) > model.ChannelGroupMaxUsers || len(userIDs) < model.ChannelGroupMinUsers {
return nil, model.NewAppError("GetGroupChannel", "api.channel.create_group.bad_size.app_error", nil, "", http.StatusBadRequest) return nil, model.NewAppError("GetGroupChannel", "api.channel.create_group.bad_size.app_error", nil, "", http.StatusBadRequest)
} }
@@ -635,7 +635,7 @@ func (a *App) UpdateChannel(channel *model.Channel) (*model.Channel, *model.AppE
a.invalidateCacheForChannel(channel) a.invalidateCacheForChannel(channel)
messageWs := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_CHANNEL_UPDATED, "", channel.Id, "", nil) messageWs := model.NewWebSocketEvent(model.WebsocketEventChannelUpdated, "", channel.Id, "", nil)
messageWs.Add("channel", channel.ToJson()) messageWs.Add("channel", channel.ToJson())
a.Publish(messageWs) a.Publish(messageWs)
@@ -647,7 +647,7 @@ func (a *App) CreateChannelScheme(channel *model.Channel) (*model.Scheme, *model
scheme, err := a.CreateScheme(&model.Scheme{ scheme, err := a.CreateScheme(&model.Scheme{
Name: model.NewId(), Name: model.NewId(),
DisplayName: model.NewId(), DisplayName: model.NewId(),
Scope: model.SCHEME_SCOPE_CHANNEL, Scope: model.SchemeScopeChannel,
}) })
if err != nil { if err != nil {
return nil, err return nil, err
@@ -690,10 +690,10 @@ func (a *App) UpdateChannelPrivacy(c *request.Context, oldChannel *model.Channel
} }
if err := a.postChannelPrivacyMessage(c, user, channel); err != nil { if err := a.postChannelPrivacyMessage(c, user, channel); err != nil {
if channel.Type == model.CHANNEL_OPEN { if channel.Type == model.ChannelTypeOpen {
channel.Type = model.CHANNEL_PRIVATE channel.Type = model.ChannelTypePrivate
} else { } else {
channel.Type = model.CHANNEL_OPEN channel.Type = model.ChannelTypeOpen
} }
// revert to previous channel privacy // revert to previous channel privacy
a.UpdateChannel(channel) a.UpdateChannel(channel)
@@ -702,7 +702,7 @@ func (a *App) UpdateChannelPrivacy(c *request.Context, oldChannel *model.Channel
a.invalidateCacheForChannel(channel) a.invalidateCacheForChannel(channel)
messageWs := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_CHANNEL_CONVERTED, channel.TeamId, "", "", nil) messageWs := model.NewWebSocketEvent(model.WebsocketEventChannelConverted, channel.TeamId, "", "", nil)
messageWs.Add("channel_id", channel.Id) messageWs.Add("channel_id", channel.Id)
a.Publish(messageWs) a.Publish(messageWs)
@@ -726,13 +726,13 @@ func (a *App) postChannelPrivacyMessage(c *request.Context, user *model.User, ch
} }
message := (map[string]string{ message := (map[string]string{
model.CHANNEL_OPEN: i18n.T("api.channel.change_channel_privacy.private_to_public"), model.ChannelTypeOpen: i18n.T("api.channel.change_channel_privacy.private_to_public"),
model.CHANNEL_PRIVATE: i18n.T("api.channel.change_channel_privacy.public_to_private"), model.ChannelTypePrivate: i18n.T("api.channel.change_channel_privacy.public_to_private"),
})[channel.Type] })[channel.Type]
post := &model.Post{ post := &model.Post{
ChannelId: channel.Id, ChannelId: channel.Id,
Message: message, Message: message,
Type: model.POST_CHANGE_CHANNEL_PRIVACY, Type: model.PostTypeChangeChannelPrivacy,
UserId: authorId, UserId: authorId,
Props: model.StringInterface{ Props: model.StringInterface{
"username": authorUsername, "username": authorUsername,
@@ -757,7 +757,7 @@ func (a *App) RestoreChannel(c *request.Context, channel *model.Channel, userID
channel.DeleteAt = 0 channel.DeleteAt = 0
a.invalidateCacheForChannel(channel) a.invalidateCacheForChannel(channel)
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_CHANNEL_RESTORED, channel.TeamId, "", "", nil) message := model.NewWebSocketEvent(model.WebsocketEventChannelRestored, channel.TeamId, "", "", nil)
message.Add("channel_id", channel.Id) message.Add("channel_id", channel.Id)
a.Publish(message) a.Publish(message)
@@ -782,7 +782,7 @@ func (a *App) RestoreChannel(c *request.Context, channel *model.Channel, userID
post := &model.Post{ post := &model.Post{
ChannelId: channel.Id, ChannelId: channel.Id,
Message: T("api.channel.restore_channel.unarchived", map[string]interface{}{"Username": user.Username}), Message: T("api.channel.restore_channel.unarchived", map[string]interface{}{"Username": user.Username}),
Type: model.POST_CHANNEL_RESTORED, Type: model.PostTypeChannelRestored,
UserId: userID, UserId: userID,
Props: model.StringInterface{ Props: model.StringInterface{
"username": user.Username, "username": user.Username,
@@ -803,7 +803,7 @@ func (a *App) RestoreChannel(c *request.Context, channel *model.Channel, userID
post := &model.Post{ post := &model.Post{
ChannelId: channel.Id, ChannelId: channel.Id,
Message: i18n.T("api.channel.restore_channel.unarchived", map[string]interface{}{"Username": systemBot.Username}), Message: i18n.T("api.channel.restore_channel.unarchived", map[string]interface{}{"Username": systemBot.Username}),
Type: model.POST_CHANNEL_RESTORED, Type: model.PostTypeChannelRestored,
UserId: systemBot.UserId, UserId: systemBot.UserId,
Props: model.StringInterface{ Props: model.StringInterface{
"username": systemBot.Username, "username": systemBot.Username,
@@ -893,9 +893,9 @@ func (a *App) GetTeamSchemeChannelRoles(teamID string) (guestRoleName, userRoleN
userRoleName = scheme.DefaultChannelUserRole userRoleName = scheme.DefaultChannelUserRole
adminRoleName = scheme.DefaultChannelAdminRole adminRoleName = scheme.DefaultChannelAdminRole
} else { } else {
guestRoleName = model.CHANNEL_GUEST_ROLE_ID guestRoleName = model.ChannelGuestRoleId
userRoleName = model.CHANNEL_USER_ROLE_ID userRoleName = model.ChannelUserRoleId
adminRoleName = model.CHANNEL_ADMIN_ROLE_ID adminRoleName = model.ChannelAdminRoleId
} }
return return
@@ -994,7 +994,7 @@ func (a *App) PatchChannelModerationsForChannel(channel *model.Channel, channelM
} }
a.sendUpdatedRoleEvent(adminRole) a.sendUpdatedRoleEvent(adminRole)
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_CHANNEL_SCHEME_UPDATED, "", channel.Id, "", nil) message := model.NewWebSocketEvent(model.WebsocketEventChannelSchemeUpdated, "", channel.Id, "", nil)
a.Publish(message) a.Publish(message)
mlog.Info("Permission scheme created.", mlog.String("channel_id", channel.Id), mlog.String("channel_name", channel.Name)) mlog.Info("Permission scheme created.", mlog.String("channel_id", channel.Id), mlog.String("channel_name", channel.Name))
} else { } else {
@@ -1052,7 +1052,7 @@ func (a *App) PatchChannelModerationsForChannel(channel *model.Channel, channelM
return nil, err return nil, err
} }
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_CHANNEL_SCHEME_UPDATED, "", channel.Id, "", nil) message := model.NewWebSocketEvent(model.WebsocketEventChannelSchemeUpdated, "", channel.Id, "", nil)
a.Publish(message) a.Publish(message)
memberRole = higherScopedMemberRole memberRole = higherScopedMemberRole
@@ -1199,7 +1199,7 @@ func (a *App) UpdateChannelMemberSchemeRoles(channelID string, userID string, is
// If the migration is not completed, we also need to check the default channel_admin/channel_user roles are not present in the roles field. // If the migration is not completed, we also need to check the default channel_admin/channel_user roles are not present in the roles field.
if err = a.IsPhase2MigrationCompleted(); err != nil { if err = a.IsPhase2MigrationCompleted(); err != nil {
member.ExplicitRoles = RemoveRoles([]string{model.CHANNEL_GUEST_ROLE_ID, model.CHANNEL_USER_ROLE_ID, model.CHANNEL_ADMIN_ROLE_ID}, member.ExplicitRoles) member.ExplicitRoles = RemoveRoles([]string{model.ChannelGuestRoleId, model.ChannelUserRoleId, model.ChannelAdminRoleId}, member.ExplicitRoles)
} }
return a.updateChannelMember(member) return a.updateChannelMember(member)
@@ -1213,24 +1213,24 @@ func (a *App) UpdateChannelMemberNotifyProps(data map[string]string, channelID s
} }
// update whichever notify properties have been provided, but don't change the others // update whichever notify properties have been provided, but don't change the others
if markUnread, exists := data[model.MARK_UNREAD_NOTIFY_PROP]; exists { if markUnread, exists := data[model.MarkUnreadNotifyProp]; exists {
member.NotifyProps[model.MARK_UNREAD_NOTIFY_PROP] = markUnread member.NotifyProps[model.MarkUnreadNotifyProp] = markUnread
} }
if desktop, exists := data[model.DESKTOP_NOTIFY_PROP]; exists { if desktop, exists := data[model.DesktopNotifyProp]; exists {
member.NotifyProps[model.DESKTOP_NOTIFY_PROP] = desktop member.NotifyProps[model.DesktopNotifyProp] = desktop
} }
if email, exists := data[model.EMAIL_NOTIFY_PROP]; exists { if email, exists := data[model.EmailNotifyProp]; exists {
member.NotifyProps[model.EMAIL_NOTIFY_PROP] = email member.NotifyProps[model.EmailNotifyProp] = email
} }
if push, exists := data[model.PUSH_NOTIFY_PROP]; exists { if push, exists := data[model.PushNotifyProp]; exists {
member.NotifyProps[model.PUSH_NOTIFY_PROP] = push member.NotifyProps[model.PushNotifyProp] = push
} }
if ignoreChannelMentions, exists := data[model.IGNORE_CHANNEL_MENTIONS_NOTIFY_PROP]; exists { if ignoreChannelMentions, exists := data[model.IgnoreChannelMentionsNotifyProp]; exists {
member.NotifyProps[model.IGNORE_CHANNEL_MENTIONS_NOTIFY_PROP] = ignoreChannelMentions member.NotifyProps[model.IgnoreChannelMentionsNotifyProp] = ignoreChannelMentions
} }
member, err = a.updateChannelMember(member) member, err = a.updateChannelMember(member)
@@ -1261,7 +1261,7 @@ func (a *App) updateChannelMember(member *model.ChannelMember) (*model.ChannelMe
a.InvalidateCacheForUser(member.UserId) a.InvalidateCacheForUser(member.UserId)
// Notify the clients that the member notify props changed // Notify the clients that the member notify props changed
evt := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_CHANNEL_MEMBER_UPDATED, "", "", member.UserId, nil) evt := model.NewWebSocketEvent(model.WebsocketEventChannelMemberUpdated, "", "", member.UserId, nil)
evt.Add("channelMember", member.ToJson()) evt.Add("channelMember", member.ToJson())
a.Publish(evt) a.Publish(evt)
@@ -1317,8 +1317,8 @@ func (a *App) DeleteChannel(c *request.Context, channel *model.Channel, userID s
return err return err
} }
if channel.Name == model.DEFAULT_CHANNEL { if channel.Name == model.DefaultChannelName {
err := model.NewAppError("deleteChannel", "api.channel.delete_channel.cannot.app_error", map[string]interface{}{"Channel": model.DEFAULT_CHANNEL}, "", http.StatusBadRequest) err := model.NewAppError("deleteChannel", "api.channel.delete_channel.cannot.app_error", map[string]interface{}{"Channel": model.DefaultChannelName}, "", http.StatusBadRequest)
return err return err
} }
@@ -1328,7 +1328,7 @@ func (a *App) DeleteChannel(c *request.Context, channel *model.Channel, userID s
post := &model.Post{ post := &model.Post{
ChannelId: channel.Id, ChannelId: channel.Id,
Message: fmt.Sprintf(T("api.channel.delete_channel.archived"), user.Username), Message: fmt.Sprintf(T("api.channel.delete_channel.archived"), user.Username),
Type: model.POST_CHANNEL_DELETED, Type: model.PostTypeChannelDeleted,
UserId: userID, UserId: userID,
Props: model.StringInterface{ Props: model.StringInterface{
"username": user.Username, "username": user.Username,
@@ -1349,7 +1349,7 @@ func (a *App) DeleteChannel(c *request.Context, channel *model.Channel, userID s
post := &model.Post{ post := &model.Post{
ChannelId: channel.Id, ChannelId: channel.Id,
Message: fmt.Sprintf(i18n.T("api.channel.delete_channel.archived"), systemBot.Username), Message: fmt.Sprintf(i18n.T("api.channel.delete_channel.archived"), systemBot.Username),
Type: model.POST_CHANNEL_DELETED, Type: model.PostTypeChannelDeleted,
UserId: systemBot.UserId, UserId: systemBot.UserId,
Props: model.StringInterface{ Props: model.StringInterface{
"username": systemBot.Username, "username": systemBot.Username,
@@ -1383,7 +1383,7 @@ func (a *App) DeleteChannel(c *request.Context, channel *model.Channel, userID s
} }
a.invalidateCacheForChannel(channel) a.invalidateCacheForChannel(channel)
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_CHANNEL_DELETED, channel.TeamId, "", "", nil) message := model.NewWebSocketEvent(model.WebsocketEventChannelDeleted, channel.TeamId, "", "", nil)
message.Add("channel_id", channel.Id) message.Add("channel_id", channel.Id)
message.Add("delete_at", deleteAt) message.Add("delete_at", deleteAt)
a.Publish(message) a.Publish(message)
@@ -1392,7 +1392,7 @@ func (a *App) DeleteChannel(c *request.Context, channel *model.Channel, userID s
} }
func (a *App) addUserToChannel(user *model.User, channel *model.Channel) (*model.ChannelMember, *model.AppError) { func (a *App) addUserToChannel(user *model.User, channel *model.Channel) (*model.ChannelMember, *model.AppError) {
if channel.Type != model.CHANNEL_OPEN && channel.Type != model.CHANNEL_PRIVATE { if channel.Type != model.ChannelTypeOpen && channel.Type != model.ChannelTypePrivate {
return nil, model.NewAppError("AddUserToChannel", "api.channel.add_user_to_channel.type.app_error", nil, "", http.StatusBadRequest) return nil, model.NewAppError("AddUserToChannel", "api.channel.add_user_to_channel.type.app_error", nil, "", http.StatusBadRequest)
} }
@@ -1472,7 +1472,7 @@ func (a *App) AddUserToChannel(user *model.User, channel *model.Channel, skipTea
return nil, err return nil, err
} }
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_USER_ADDED, "", channel.Id, "", nil) message := model.NewWebSocketEvent(model.WebsocketEventUserAdded, "", channel.Id, "", nil)
message.Add("user_id", user.Id) message.Add("user_id", user.Id)
message.Add("team_id", channel.TeamId) message.Add("team_id", channel.TeamId)
a.Publish(message) a.Publish(message)
@@ -1560,7 +1560,7 @@ func (a *App) AddDirectChannels(teamID string, user *model.User) *model.AppError
preference := model.Preference{ preference := model.Preference{
UserId: user.Id, UserId: user.Id,
Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW, Category: model.PreferenceCategoryDirectChannelShow,
Name: profile.Id, Name: profile.Id,
Value: "true", Value: "true",
} }
@@ -1597,7 +1597,7 @@ func (a *App) PostUpdateChannelHeaderMessage(c *request.Context, userID string,
post := &model.Post{ post := &model.Post{
ChannelId: channel.Id, ChannelId: channel.Id,
Message: message, Message: message,
Type: model.POST_HEADER_CHANGE, Type: model.PostTypeHeaderChange,
UserId: userID, UserId: userID,
Props: model.StringInterface{ Props: model.StringInterface{
"username": user.Username, "username": user.Username,
@@ -1631,7 +1631,7 @@ func (a *App) PostUpdateChannelPurposeMessage(c *request.Context, userID string,
post := &model.Post{ post := &model.Post{
ChannelId: channel.Id, ChannelId: channel.Id,
Message: message, Message: message,
Type: model.POST_PURPOSE_CHANGE, Type: model.PostTypePurposeChange,
UserId: userID, UserId: userID,
Props: model.StringInterface{ Props: model.StringInterface{
"username": user.Username, "username": user.Username,
@@ -1657,7 +1657,7 @@ func (a *App) PostUpdateChannelDisplayNameMessage(c *request.Context, userID str
post := &model.Post{ post := &model.Post{
ChannelId: channel.Id, ChannelId: channel.Id,
Message: message, Message: message,
Type: model.POST_DISPLAYNAME_CHANGE, Type: model.PostTypeDisplaynameChange,
UserId: userID, UserId: userID,
Props: model.StringInterface{ Props: model.StringInterface{
"username": user.Username, "username": user.Username,
@@ -1984,7 +1984,7 @@ func (a *App) GetChannelUnread(channelID, userID string) (*model.ChannelUnread,
} }
} }
if channelUnread.NotifyProps[model.MARK_UNREAD_NOTIFY_PROP] == model.CHANNEL_MARK_UNREAD_MENTION { if channelUnread.NotifyProps[model.MarkUnreadNotifyProp] == model.ChannelMarkUnreadMention {
channelUnread.MsgCount = 0 channelUnread.MsgCount = 0
channelUnread.MsgCountRoot = 0 channelUnread.MsgCountRoot = 0
} }
@@ -2024,7 +2024,7 @@ func (a *App) JoinChannel(c *request.Context, channel *model.Channel, userID str
user := uresult.Data.(*model.User) user := uresult.Data.(*model.User)
if channel.Type != model.CHANNEL_OPEN { if channel.Type != model.ChannelTypeOpen {
return model.NewAppError("JoinChannel", "api.channel.join_channel.permissions.app_error", nil, "", http.StatusBadRequest) return model.NewAppError("JoinChannel", "api.channel.join_channel.permissions.app_error", nil, "", http.StatusBadRequest)
} }
@@ -2052,11 +2052,11 @@ func (a *App) JoinChannel(c *request.Context, channel *model.Channel, userID str
func (a *App) postJoinChannelMessage(c *request.Context, user *model.User, channel *model.Channel) *model.AppError { func (a *App) postJoinChannelMessage(c *request.Context, user *model.User, channel *model.Channel) *model.AppError {
message := fmt.Sprintf(i18n.T("api.channel.join_channel.post_and_forget"), user.Username) message := fmt.Sprintf(i18n.T("api.channel.join_channel.post_and_forget"), user.Username)
postType := model.POST_JOIN_CHANNEL postType := model.PostTypeJoinChannel
if user.IsGuest() { if user.IsGuest() {
message = fmt.Sprintf(i18n.T("api.channel.guest_join_channel.post_and_forget"), user.Username) message = fmt.Sprintf(i18n.T("api.channel.guest_join_channel.post_and_forget"), user.Username)
postType = model.POST_GUEST_JOIN_CHANNEL postType = model.PostTypeGuestJoinChannel
} }
post := &model.Post{ post := &model.Post{
@@ -2080,7 +2080,7 @@ func (a *App) postJoinTeamMessage(c *request.Context, user *model.User, channel
post := &model.Post{ post := &model.Post{
ChannelId: channel.Id, ChannelId: channel.Id,
Message: fmt.Sprintf(i18n.T("api.team.join_team.post_and_forget"), user.Username), Message: fmt.Sprintf(i18n.T("api.team.join_team.post_and_forget"), user.Username),
Type: model.POST_JOIN_TEAM, Type: model.PostTypeJoinTeam,
UserId: user.Id, UserId: user.Id,
Props: model.StringInterface{ Props: model.StringInterface{
"username": user.Username, "username": user.Username,
@@ -2150,7 +2150,7 @@ func (a *App) LeaveChannel(c *request.Context, channelID string, userID string)
return err return err
} }
if channel.Type == model.CHANNEL_PRIVATE && membersCount == 1 { if channel.Type == model.ChannelTypePrivate && membersCount == 1 {
err := model.NewAppError("LeaveChannel", "api.channel.leave.last_member.app_error", nil, "userId="+user.Id, http.StatusBadRequest) err := model.NewAppError("LeaveChannel", "api.channel.leave.last_member.app_error", nil, "userId="+user.Id, http.StatusBadRequest)
return err return err
} }
@@ -2159,7 +2159,7 @@ func (a *App) LeaveChannel(c *request.Context, channelID string, userID string)
return err return err
} }
if channel.Name == model.DEFAULT_CHANNEL && !*a.Config().ServiceSettings.ExperimentalEnableDefaultChannelLeaveJoinMessages { if channel.Name == model.DefaultChannelName && !*a.Config().ServiceSettings.ExperimentalEnableDefaultChannelLeaveJoinMessages {
return nil return nil
} }
@@ -2177,7 +2177,7 @@ func (a *App) postLeaveChannelMessage(c *request.Context, user *model.User, chan
// treat this as a username mention even though the user has now left the channel. // treat this as a username mention even though the user has now left the channel.
// The client renders its own system message, ignoring this value altogether. // The client renders its own system message, ignoring this value altogether.
Message: fmt.Sprintf(i18n.T("api.channel.leave.left"), fmt.Sprintf("@%s", user.Username)), Message: fmt.Sprintf(i18n.T("api.channel.leave.left"), fmt.Sprintf("@%s", user.Username)),
Type: model.POST_LEAVE_CHANNEL, Type: model.PostTypeLeaveChannel,
UserId: user.Id, UserId: user.Id,
Props: model.StringInterface{ Props: model.StringInterface{
"username": user.Username, "username": user.Username,
@@ -2193,11 +2193,11 @@ func (a *App) postLeaveChannelMessage(c *request.Context, user *model.User, chan
func (a *App) PostAddToChannelMessage(c *request.Context, user *model.User, addedUser *model.User, channel *model.Channel, postRootId string) *model.AppError { func (a *App) PostAddToChannelMessage(c *request.Context, user *model.User, addedUser *model.User, channel *model.Channel, postRootId string) *model.AppError {
message := fmt.Sprintf(i18n.T("api.channel.add_member.added"), addedUser.Username, user.Username) message := fmt.Sprintf(i18n.T("api.channel.add_member.added"), addedUser.Username, user.Username)
postType := model.POST_ADD_TO_CHANNEL postType := model.PostTypeAddToChannel
if addedUser.IsGuest() { if addedUser.IsGuest() {
message = fmt.Sprintf(i18n.T("api.channel.add_guest.added"), addedUser.Username, user.Username) message = fmt.Sprintf(i18n.T("api.channel.add_guest.added"), addedUser.Username, user.Username)
postType = model.POST_ADD_GUEST_TO_CHANNEL postType = model.PostTypeAddGuestToChannel
} }
post := &model.Post{ post := &model.Post{
@@ -2207,10 +2207,10 @@ func (a *App) PostAddToChannelMessage(c *request.Context, user *model.User, adde
UserId: user.Id, UserId: user.Id,
RootId: postRootId, RootId: postRootId,
Props: model.StringInterface{ Props: model.StringInterface{
"userId": user.Id, "userId": user.Id,
"username": user.Username, "username": user.Username,
model.POST_PROPS_ADDED_USER_ID: addedUser.Id, model.PostPropsAddedUserId: addedUser.Id,
"addedUsername": addedUser.Username, "addedUsername": addedUser.Username,
}, },
} }
@@ -2225,14 +2225,14 @@ func (a *App) postAddToTeamMessage(c *request.Context, user *model.User, addedUs
post := &model.Post{ post := &model.Post{
ChannelId: channel.Id, ChannelId: channel.Id,
Message: fmt.Sprintf(i18n.T("api.team.add_user_to_team.added"), addedUser.Username, user.Username), Message: fmt.Sprintf(i18n.T("api.team.add_user_to_team.added"), addedUser.Username, user.Username),
Type: model.POST_ADD_TO_TEAM, Type: model.PostTypeAddToTeam,
UserId: user.Id, UserId: user.Id,
RootId: postRootId, RootId: postRootId,
Props: model.StringInterface{ Props: model.StringInterface{
"userId": user.Id, "userId": user.Id,
"username": user.Username, "username": user.Username,
model.POST_PROPS_ADDED_USER_ID: addedUser.Id, model.PostPropsAddedUserId: addedUser.Id,
"addedUsername": addedUser.Username, "addedUsername": addedUser.Username,
}, },
} }
@@ -2260,7 +2260,7 @@ func (a *App) postRemoveFromChannelMessage(c *request.Context, removerUserId str
// treat this as a username mention even though the user has now left the channel. // treat this as a username mention even though the user has now left the channel.
// The client renders its own system message, ignoring this value altogether. // The client renders its own system message, ignoring this value altogether.
Message: fmt.Sprintf(i18n.T("api.channel.remove_member.removed"), fmt.Sprintf("@%s", removedUser.Username)), Message: fmt.Sprintf(i18n.T("api.channel.remove_member.removed"), fmt.Sprintf("@%s", removedUser.Username)),
Type: model.POST_REMOVE_FROM_CHANNEL, Type: model.PostTypeRemoveFromChannel,
UserId: messageUserId, UserId: messageUserId,
Props: model.StringInterface{ Props: model.StringInterface{
"removedUserId": removedUser.Id, "removedUserId": removedUser.Id,
@@ -2288,9 +2288,9 @@ func (a *App) removeUserFromChannel(c *request.Context, userIDToRemove string, r
} }
isGuest := user.IsGuest() isGuest := user.IsGuest()
if channel.Name == model.DEFAULT_CHANNEL { if channel.Name == model.DefaultChannelName {
if !isGuest { if !isGuest {
return model.NewAppError("RemoveUserFromChannel", "api.channel.remove.default.app_error", map[string]interface{}{"Channel": model.DEFAULT_CHANNEL}, "", http.StatusBadRequest) return model.NewAppError("RemoveUserFromChannel", "api.channel.remove.default.app_error", map[string]interface{}{"Channel": model.DefaultChannelName}, "", http.StatusBadRequest)
} }
} }
@@ -2351,13 +2351,13 @@ func (a *App) removeUserFromChannel(c *request.Context, userIDToRemove string, r
}) })
} }
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_USER_REMOVED, "", channel.Id, "", nil) message := model.NewWebSocketEvent(model.WebsocketEventUserRemoved, "", channel.Id, "", nil)
message.Add("user_id", userIDToRemove) message.Add("user_id", userIDToRemove)
message.Add("remover_id", removerUserId) message.Add("remover_id", removerUserId)
a.Publish(message) a.Publish(message)
// because the removed user no longer belongs to the channel we need to send a separate websocket event // because the removed user no longer belongs to the channel we need to send a separate websocket event
userMsg := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_USER_REMOVED, "", "", userIDToRemove, nil) userMsg := model.NewWebSocketEvent(model.WebsocketEventUserRemoved, "", "", userIDToRemove, nil)
userMsg.Add("channel_id", channel.Id) userMsg.Add("channel_id", channel.Id)
userMsg.Add("remover_id", removerUserId) userMsg.Add("remover_id", removerUserId)
a.Publish(userMsg) a.Publish(userMsg)
@@ -2410,15 +2410,15 @@ func (a *App) GetNumberOfChannelsOnTeam(teamID string) (int, *model.AppError) {
func (a *App) SetActiveChannel(userID string, channelID string) *model.AppError { func (a *App) SetActiveChannel(userID string, channelID string) *model.AppError {
status, err := a.GetStatus(userID) status, err := a.GetStatus(userID)
oldStatus := model.STATUS_OFFLINE oldStatus := model.StatusOffline
if err != nil { if err != nil {
status = &model.Status{UserId: userID, Status: model.STATUS_ONLINE, Manual: false, LastActivityAt: model.GetMillis(), ActiveChannel: channelID} status = &model.Status{UserId: userID, Status: model.StatusOnline, Manual: false, LastActivityAt: model.GetMillis(), ActiveChannel: channelID}
} else { } else {
oldStatus = status.Status oldStatus = status.Status
status.ActiveChannel = channelID status.ActiveChannel = channelID
if !status.Manual && channelID != "" { if !status.Manual && channelID != "" {
status.Status = model.STATUS_ONLINE status.Status = model.StatusOnline
} }
status.LastActivityAt = model.GetMillis() status.LastActivityAt = model.GetMillis()
} }
@@ -2445,7 +2445,7 @@ func (a *App) UpdateChannelLastViewedAt(channelIDs []string, userID string) *mod
if *a.Config().ServiceSettings.EnableChannelViewedMessages { if *a.Config().ServiceSettings.EnableChannelViewedMessages {
for _, channelID := range channelIDs { for _, channelID := range channelIDs {
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_CHANNEL_VIEWED, "", "", userID, nil) message := model.NewWebSocketEvent(model.WebsocketEventChannelViewed, "", "", userID, nil)
message.Add("channel_id", channelID) message.Add("channel_id", channelID)
a.Publish(message) a.Publish(message)
} }
@@ -2455,12 +2455,12 @@ func (a *App) UpdateChannelLastViewedAt(channelIDs []string, userID string) *mod
} }
func (a *App) isCRTEnabledForUser(userID string) bool { func (a *App) isCRTEnabledForUser(userID string) bool {
if *a.Config().ServiceSettings.CollapsedThreads == model.COLLAPSED_THREADS_DISABLED { if *a.Config().ServiceSettings.CollapsedThreads == model.CollapsedThreadsDisabled {
return false return false
} }
threadsEnabled := *a.Config().ServiceSettings.CollapsedThreads == model.COLLAPSED_THREADS_DEFAULT_ON threadsEnabled := *a.Config().ServiceSettings.CollapsedThreads == model.CollapsedThreadsDefaultOn
// check if a participant has overridden collapsed threads settings // check if a participant has overridden collapsed threads settings
if preference, err := a.Srv().Store.Preference().Get(userID, model.PREFERENCE_CATEGORY_DISPLAY_SETTINGS, model.PREFERENCE_NAME_COLLAPSED_THREADS_ENABLED); err == nil { if preference, err := a.Srv().Store.Preference().Get(userID, model.PreferenceCategoryDisplaySettings, model.PreferenceNameCollapsedThreadsEnabled); err == nil {
threadsEnabled = preference.Value == "on" threadsEnabled = preference.Value == "on"
} }
return threadsEnabled return threadsEnabled
@@ -2537,7 +2537,7 @@ func (a *App) MarkChannelAsUnreadFromPost(postID string, userID string, collapse
thread.Post.SanitizeProps() thread.Post.SanitizeProps()
payload := thread.ToJson() payload := thread.ToJson()
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_THREAD_UPDATED, channel.TeamId, "", userID, nil) message := model.NewWebSocketEvent(model.WebsocketEventThreadUpdated, channel.TeamId, "", userID, nil)
message.Add("thread", payload) message.Add("thread", payload)
a.Publish(message) a.Publish(message)
} }
@@ -2653,7 +2653,7 @@ func (a *App) markChannelAsUnreadFromPostCRTUnsupported(postID string, userID st
payload := thread.ToJson() payload := thread.ToJson()
if a.isCRTEnabledForUser(userID) { if a.isCRTEnabledForUser(userID) {
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_THREAD_UPDATED, channel.TeamId, "", userID, nil) message := model.NewWebSocketEvent(model.WebsocketEventThreadUpdated, channel.TeamId, "", userID, nil)
message.Add("thread", payload) message.Add("thread", payload)
a.Publish(message) a.Publish(message)
} }
@@ -2665,7 +2665,7 @@ func (a *App) markChannelAsUnreadFromPostCRTUnsupported(postID string, userID st
} }
func (a *App) sendWebSocketPostUnreadEvent(channelUnread *model.ChannelUnreadAt, postID string, withMsgCountRoot bool) { func (a *App) sendWebSocketPostUnreadEvent(channelUnread *model.ChannelUnreadAt, postID string, withMsgCountRoot bool) {
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_POST_UNREAD, channelUnread.TeamId, channelUnread.ChannelId, channelUnread.UserId, nil) message := model.NewWebSocketEvent(model.WebsocketEventPostUnread, channelUnread.TeamId, channelUnread.ChannelId, channelUnread.UserId, nil)
message.Add("msg_count", channelUnread.MsgCount) message.Add("msg_count", channelUnread.MsgCount)
if withMsgCountRoot { if withMsgCountRoot {
message.Add("msg_count_root", channelUnread.MsgCountRoot) message.Add("msg_count_root", channelUnread.MsgCountRoot)
@@ -2810,22 +2810,22 @@ func (a *App) MarkChannelsAsViewed(channelIDs []string, userID string, currentSe
continue continue
} }
notify := member.NotifyProps[model.PUSH_NOTIFY_PROP] notify := member.NotifyProps[model.PushNotifyProp]
if notify == model.CHANNEL_NOTIFY_DEFAULT { if notify == model.ChannelNotifyDefault {
user, err := a.GetUser(userID) user, err := a.GetUser(userID)
if err != nil { if err != nil {
mlog.Warn("Failed to get user", mlog.String("user_id", userID), mlog.Err(err)) mlog.Warn("Failed to get user", mlog.String("user_id", userID), mlog.Err(err))
continue continue
} }
notify = user.NotifyProps[model.PUSH_NOTIFY_PROP] notify = user.NotifyProps[model.PushNotifyProp]
} }
if notify == model.USER_NOTIFY_ALL { if notify == model.UserNotifyAll {
if count, err := a.Srv().Store.User().GetAnyUnreadPostCountForChannel(userID, channelID); err == nil { if count, err := a.Srv().Store.User().GetAnyUnreadPostCountForChannel(userID, channelID); err == nil {
if count > 0 { if count > 0 {
channelsToClearPushNotifications = append(channelsToClearPushNotifications, channelID) channelsToClearPushNotifications = append(channelsToClearPushNotifications, channelID)
} }
} }
} else if notify == model.USER_NOTIFY_MENTION || channel.Type == model.CHANNEL_DIRECT { } else if notify == model.UserNotifyMention || channel.Type == model.ChannelTypeDirect {
if count, err := a.Srv().Store.User().GetUnreadCountForChannel(userID, channelID); err == nil { if count, err := a.Srv().Store.User().GetUnreadCountForChannel(userID, channelID); err == nil {
if count > 0 { if count > 0 {
channelsToClearPushNotifications = append(channelsToClearPushNotifications, channelID) channelsToClearPushNotifications = append(channelsToClearPushNotifications, channelID)
@@ -2847,7 +2847,7 @@ func (a *App) MarkChannelsAsViewed(channelIDs []string, userID string, currentSe
if *a.Config().ServiceSettings.EnableChannelViewedMessages { if *a.Config().ServiceSettings.EnableChannelViewedMessages {
for _, channelID := range channelIDs { for _, channelID := range channelIDs {
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_CHANNEL_VIEWED, "", "", userID, nil) message := model.NewWebSocketEvent(model.WebsocketEventChannelViewed, "", "", userID, nil)
message.Add("channel_id", channelID) message.Add("channel_id", channelID)
a.Publish(message) a.Publish(message)
} }
@@ -2864,7 +2864,7 @@ func (a *App) MarkChannelsAsViewed(channelIDs []string, userID string, currentSe
if a.isCRTEnabledForUser(userID) { if a.isCRTEnabledForUser(userID) {
timestamp := model.GetMillis() timestamp := model.GetMillis()
for _, channelID := range channelIDs { for _, channelID := range channelIDs {
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_THREAD_READ_CHANGED, "", channelID, userID, nil) message := model.NewWebSocketEvent(model.WebsocketEventThreadReadChanged, "", channelID, userID, nil)
message.Add("timestamp", timestamp) message.Add("timestamp", timestamp)
a.Publish(message) a.Publish(message)
} }
@@ -2920,7 +2920,7 @@ func (a *App) PermanentDeleteChannel(channel *model.Channel) *model.AppError {
} }
a.invalidateCacheForChannel(channel) a.invalidateCacheForChannel(channel)
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_CHANNEL_DELETED, channel.TeamId, "", "", nil) message := model.NewWebSocketEvent(model.WebsocketEventChannelDeleted, channel.TeamId, "", "", nil)
message.Add("channel_id", channel.Id) message.Add("channel_id", channel.Id)
message.Add("delete_at", deleteAt) message.Add("delete_at", deleteAt)
a.Publish(message) a.Publish(message)
@@ -3045,7 +3045,7 @@ func (a *App) postChannelMoveMessage(c *request.Context, user *model.User, chann
post := &model.Post{ post := &model.Post{
ChannelId: channel.Id, ChannelId: channel.Id,
Message: fmt.Sprintf(i18n.T("api.team.move_channel.success"), previousTeam.Name), Message: fmt.Sprintf(i18n.T("api.team.move_channel.success"), previousTeam.Name),
Type: model.POST_MOVE_CHANNEL, Type: model.PostTypeMoveChannel,
UserId: user.Id, UserId: user.Id,
Props: model.StringInterface{ Props: model.StringInterface{
"username": user.Username, "username": user.Username,
@@ -3179,7 +3179,7 @@ func (a *App) setChannelsMuted(channelIDs []string, userID string, muted bool) (
for _, member := range updated { for _, member := range updated {
a.invalidateCacheForChannelMembersNotifyProps(member.ChannelId) a.invalidateCacheForChannelMembersNotifyProps(member.ChannelId)
evt := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_CHANNEL_MEMBER_UPDATED, "", "", member.UserId, nil) evt := model.NewWebSocketEvent(model.WebsocketEventChannelMemberUpdated, "", "", member.UserId, nil)
evt.Add("channelMember", member.ToJson()) evt.Add("channelMember", member.ToJson())
a.Publish(evt) a.Publish(evt)
} }
@@ -3231,7 +3231,7 @@ func (a *App) FillInChannelsProps(channelList *model.ChannelList) *model.AppErro
channelMentionsProp := make(map[string]interface{}, len(channelMentions[channel])) channelMentionsProp := make(map[string]interface{}, len(channelMentions[channel]))
for _, channelMention := range channelMentions[channel] { for _, channelMention := range channelMentions[channel] {
if mentioned, ok := mentionedChannelsByName[channelMention]; ok { if mentioned, ok := mentionedChannelsByName[channelMention]; ok {
if mentioned.Type == model.CHANNEL_OPEN { if mentioned.Type == model.ChannelTypeOpen {
channelMentionsProp[mentioned.Name] = map[string]interface{}{ channelMentionsProp[mentioned.Name] = map[string]interface{}{
"display_name": mentioned.DisplayName, "display_name": mentioned.DisplayName,
} }
@@ -3281,7 +3281,7 @@ func (a *App) forEachChannelMember(channelID string, f func(model.ChannelMember)
func (a *App) ClearChannelMembersCache(channelID string) { func (a *App) ClearChannelMembersCache(channelID string) {
clearSessionCache := func(channelMember model.ChannelMember) error { clearSessionCache := func(channelMember model.ChannelMember) error {
a.ClearSessionCacheForUser(channelMember.UserId) a.ClearSessionCacheForUser(channelMember.UserId)
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_CHANNEL_MEMBER_UPDATED, "", "", channelMember.UserId, nil) message := model.NewWebSocketEvent(model.WebsocketEventChannelMemberUpdated, "", "", channelMember.UserId, nil)
message.Add("channelMember", channelMember.ToJson()) message.Add("channelMember", channelMember.ToJson())
a.Publish(message) a.Publish(message)
return nil return nil

Просмотреть файл

@@ -86,7 +86,7 @@ func (a *App) CreateSidebarCategory(userID, teamID string, newCategory *model.Si
return nil, model.NewAppError("CreateSidebarCategory", "app.channel.sidebar_categories.app_error", nil, err.Error(), http.StatusInternalServerError) return nil, model.NewAppError("CreateSidebarCategory", "app.channel.sidebar_categories.app_error", nil, err.Error(), http.StatusInternalServerError)
} }
} }
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_SIDEBAR_CATEGORY_CREATED, teamID, "", userID, nil) message := model.NewWebSocketEvent(model.WebsocketEventSidebarCategoryCreated, teamID, "", userID, nil)
message.Add("category_id", category.Id) message.Add("category_id", category.Id)
a.Publish(message) a.Publish(message)
return category, nil return category, nil
@@ -106,7 +106,7 @@ func (a *App) UpdateSidebarCategoryOrder(userID, teamID string, categoryOrder []
return model.NewAppError("UpdateSidebarCategoryOrder", "app.channel.sidebar_categories.app_error", nil, err.Error(), http.StatusInternalServerError) return model.NewAppError("UpdateSidebarCategoryOrder", "app.channel.sidebar_categories.app_error", nil, err.Error(), http.StatusInternalServerError)
} }
} }
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_SIDEBAR_CATEGORY_ORDER_UPDATED, teamID, "", userID, nil) message := model.NewWebSocketEvent(model.WebsocketEventSidebarCategoryOrderUpdated, teamID, "", userID, nil)
message.Add("order", categoryOrder) message.Add("order", categoryOrder)
a.Publish(message) a.Publish(message)
return nil return nil
@@ -118,7 +118,7 @@ func (a *App) UpdateSidebarCategories(userID, teamID string, categories []*model
return nil, model.NewAppError("UpdateSidebarCategories", "app.channel.sidebar_categories.app_error", nil, err.Error(), http.StatusInternalServerError) return nil, model.NewAppError("UpdateSidebarCategories", "app.channel.sidebar_categories.app_error", nil, err.Error(), http.StatusInternalServerError)
} }
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_SIDEBAR_CATEGORY_UPDATED, teamID, "", userID, nil) message := model.NewWebSocketEvent(model.WebsocketEventSidebarCategoryUpdated, teamID, "", userID, nil)
a.Publish(message) a.Publish(message)
a.muteChannelsForUpdatedCategories(userID, updatedCategories, originalCategories) a.muteChannelsForUpdatedCategories(userID, updatedCategories, originalCategories)
@@ -243,7 +243,7 @@ func (a *App) DeleteSidebarCategory(userID, teamID, categoryId string) *model.Ap
} }
} }
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_SIDEBAR_CATEGORY_DELETED, teamID, "", userID, nil) message := model.NewWebSocketEvent(model.WebsocketEventSidebarCategoryDeleted, teamID, "", userID, nil)
message.Add("category_id", categoryId) message.Add("category_id", categoryId)
a.Publish(message) a.Publish(message)

Просмотреть файл

@@ -31,7 +31,7 @@ func TestPermanentDeleteChannel(t *testing.T) {
*cfg.ServiceSettings.EnableOutgoingWebhooks = true *cfg.ServiceSettings.EnableOutgoingWebhooks = true
}) })
channel, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: "deletion-test", Name: "deletion-test", Type: model.CHANNEL_OPEN, TeamId: th.BasicTeam.Id}, false) channel, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: "deletion-test", Name: "deletion-test", Type: model.ChannelTypeOpen, TeamId: th.BasicTeam.Id}, false)
require.NotNil(t, channel, "Channel shouldn't be nil") require.NotNil(t, channel, "Channel shouldn't be nil")
require.Nil(t, err) require.Nil(t, err)
defer func() { defer func() {
@@ -169,7 +169,7 @@ func TestMoveChannel(t *testing.T) {
channel3 := &model.Channel{ channel3 := &model.Channel{
DisplayName: "dn_" + model.NewId(), DisplayName: "dn_" + model.NewId(),
Name: "name_" + model.NewId(), Name: "name_" + model.NewId(),
Type: model.CHANNEL_OPEN, Type: model.ChannelTypeOpen,
TeamId: sourceTeam.Id, TeamId: sourceTeam.Id,
CreatorId: th.BasicUser.Id, CreatorId: th.BasicUser.Id,
} }
@@ -352,7 +352,7 @@ func TestCreateChannelPublicCreatesChannelMemberHistoryRecord(t *testing.T) {
defer th.TearDown() defer th.TearDown()
// creates a public channel and adds basic user to it // creates a public channel and adds basic user to it
publicChannel := th.createChannel(th.BasicTeam, model.CHANNEL_OPEN) publicChannel := th.createChannel(th.BasicTeam, model.ChannelTypeOpen)
// there should be a ChannelMemberHistory record for the user // there should be a ChannelMemberHistory record for the user
histories, err := th.App.Srv().Store.ChannelMemberHistory().GetUsersInChannelDuring(model.GetMillis()-100, model.GetMillis()+100, publicChannel.Id) histories, err := th.App.Srv().Store.ChannelMemberHistory().GetUsersInChannelDuring(model.GetMillis()-100, model.GetMillis()+100, publicChannel.Id)
@@ -367,7 +367,7 @@ func TestCreateChannelPrivateCreatesChannelMemberHistoryRecord(t *testing.T) {
defer th.TearDown() defer th.TearDown()
// creates a private channel and adds basic user to it // creates a private channel and adds basic user to it
privateChannel := th.createChannel(th.BasicTeam, model.CHANNEL_PRIVATE) privateChannel := th.createChannel(th.BasicTeam, model.ChannelTypePrivate)
// there should be a ChannelMemberHistory record for the user // there should be a ChannelMemberHistory record for the user
histories, err := th.App.Srv().Store.ChannelMemberHistory().GetUsersInChannelDuring(model.GetMillis()-100, model.GetMillis()+100, privateChannel.Id) histories, err := th.App.Srv().Store.ChannelMemberHistory().GetUsersInChannelDuring(model.GetMillis()-100, model.GetMillis()+100, privateChannel.Id)
@@ -380,7 +380,7 @@ func TestCreateChannelDisplayNameTrimsWhitespace(t *testing.T) {
th := Setup(t).InitBasic() th := Setup(t).InitBasic()
defer th.TearDown() defer th.TearDown()
channel, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: " Public 1 ", Name: "public1", Type: model.CHANNEL_OPEN, TeamId: th.BasicTeam.Id}, false) channel, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: " Public 1 ", Name: "public1", Type: model.ChannelTypeOpen, TeamId: th.BasicTeam.Id}, false)
defer th.App.PermanentDeleteChannel(channel) defer th.App.PermanentDeleteChannel(channel)
require.Nil(t, err) require.Nil(t, err)
require.Equal(t, channel.DisplayName, "Public 1") require.Equal(t, channel.DisplayName, "Public 1")
@@ -390,13 +390,13 @@ func TestUpdateChannelPrivacy(t *testing.T) {
th := Setup(t).InitBasic() th := Setup(t).InitBasic()
defer th.TearDown() defer th.TearDown()
privateChannel := th.createChannel(th.BasicTeam, model.CHANNEL_PRIVATE) privateChannel := th.createChannel(th.BasicTeam, model.ChannelTypePrivate)
privateChannel.Type = model.CHANNEL_OPEN privateChannel.Type = model.ChannelTypeOpen
publicChannel, err := th.App.UpdateChannelPrivacy(th.Context, privateChannel, th.BasicUser) publicChannel, err := th.App.UpdateChannelPrivacy(th.Context, privateChannel, th.BasicUser)
require.Nil(t, err, "Failed to update channel privacy.") require.Nil(t, err, "Failed to update channel privacy.")
assert.Equal(t, publicChannel.Id, privateChannel.Id) assert.Equal(t, publicChannel.Id, privateChannel.Id)
assert.Equal(t, publicChannel.Type, model.CHANNEL_OPEN) assert.Equal(t, publicChannel.Type, model.ChannelTypeOpen)
} }
func TestCreateGroupChannelCreatesChannelMemberHistoryRecord(t *testing.T) { func TestCreateGroupChannelCreatesChannelMemberHistoryRecord(t *testing.T) {
@@ -496,7 +496,7 @@ func TestAddUserToChannelCreatesChannelMemberHistoryRecord(t *testing.T) {
groupUserIds = append(groupUserIds, th.BasicUser.Id) groupUserIds = append(groupUserIds, th.BasicUser.Id)
groupUserIds = append(groupUserIds, user.Id) groupUserIds = append(groupUserIds, user.Id)
channel := th.createChannel(th.BasicTeam, model.CHANNEL_OPEN) channel := th.createChannel(th.BasicTeam, model.ChannelTypeOpen)
_, err = th.App.AddUserToChannel(user, channel, false) _, err = th.App.AddUserToChannel(user, channel, false)
require.Nil(t, err, "Failed to add user to channel.") require.Nil(t, err, "Failed to add user to channel.")
@@ -583,7 +583,7 @@ func TestAddChannelMemberNoUserRequestor(t *testing.T) {
groupUserIds = append(groupUserIds, th.BasicUser.Id) groupUserIds = append(groupUserIds, th.BasicUser.Id)
groupUserIds = append(groupUserIds, user.Id) groupUserIds = append(groupUserIds, user.Id)
channel := th.createChannel(th.BasicTeam, model.CHANNEL_OPEN) channel := th.createChannel(th.BasicTeam, model.ChannelTypeOpen)
_, err = th.App.AddChannelMember(th.Context, user.Id, channel, ChannelMemberOpts{}) _, err = th.App.AddChannelMember(th.Context, user.Id, channel, ChannelMemberOpts{})
require.Nil(t, err, "Failed to add user to channel.") require.Nil(t, err, "Failed to add user to channel.")
@@ -605,7 +605,7 @@ func TestAddChannelMemberNoUserRequestor(t *testing.T) {
if assert.Len(t, postList.Order, 1) { if assert.Len(t, postList.Order, 1) {
post := postList.Posts[postList.Order[0]] post := postList.Posts[postList.Order[0]]
assert.Equal(t, model.POST_JOIN_CHANNEL, post.Type) assert.Equal(t, model.PostTypeJoinChannel, post.Type)
assert.Equal(t, user.Id, post.UserId) assert.Equal(t, user.Id, post.UserId)
assert.Equal(t, user.Username, post.GetProp("username")) assert.Equal(t, user.Username, post.GetProp("username"))
} }
@@ -682,15 +682,15 @@ func TestFillInChannelProps(t *testing.T) {
th := Setup(t).InitBasic() th := Setup(t).InitBasic()
defer th.TearDown() defer th.TearDown()
channelPublic1, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: "Public 1", Name: "public1", Type: model.CHANNEL_OPEN, TeamId: th.BasicTeam.Id}, false) channelPublic1, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: "Public 1", Name: "public1", Type: model.ChannelTypeOpen, TeamId: th.BasicTeam.Id}, false)
require.Nil(t, err) require.Nil(t, err)
defer th.App.PermanentDeleteChannel(channelPublic1) defer th.App.PermanentDeleteChannel(channelPublic1)
channelPublic2, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: "Public 2", Name: "public2", Type: model.CHANNEL_OPEN, TeamId: th.BasicTeam.Id}, false) channelPublic2, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: "Public 2", Name: "public2", Type: model.ChannelTypeOpen, TeamId: th.BasicTeam.Id}, false)
require.Nil(t, err) require.Nil(t, err)
defer th.App.PermanentDeleteChannel(channelPublic2) defer th.App.PermanentDeleteChannel(channelPublic2)
channelPrivate, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: "Private", Name: "private", Type: model.CHANNEL_PRIVATE, TeamId: th.BasicTeam.Id}, false) channelPrivate, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: "Private", Name: "private", Type: model.ChannelTypePrivate, TeamId: th.BasicTeam.Id}, false)
require.Nil(t, err) require.Nil(t, err)
defer th.App.PermanentDeleteChannel(channelPrivate) defer th.App.PermanentDeleteChannel(channelPrivate)
@@ -699,13 +699,13 @@ func TestFillInChannelProps(t *testing.T) {
DisplayName: "dn_" + otherTeamId, DisplayName: "dn_" + otherTeamId,
Name: "name" + otherTeamId, Name: "name" + otherTeamId,
Email: "success+" + otherTeamId + "@simulator.amazonses.com", Email: "success+" + otherTeamId + "@simulator.amazonses.com",
Type: model.TEAM_OPEN, Type: model.TeamOpen,
} }
otherTeam, err = th.App.CreateTeam(th.Context, otherTeam) otherTeam, err = th.App.CreateTeam(th.Context, otherTeam)
require.Nil(t, err) require.Nil(t, err)
defer th.App.PermanentDeleteTeam(otherTeam) defer th.App.PermanentDeleteTeam(otherTeam)
channelOtherTeam, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: "Other Team Channel", Name: "other-team", Type: model.CHANNEL_OPEN, TeamId: otherTeam.Id}, false) channelOtherTeam, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: "Other Team Channel", Name: "other-team", Type: model.ChannelTypeOpen, TeamId: otherTeam.Id}, false)
require.Nil(t, err) require.Nil(t, err)
defer th.App.PermanentDeleteChannel(channelOtherTeam) defer th.App.PermanentDeleteChannel(channelOtherTeam)
@@ -897,7 +897,7 @@ func TestRenameChannel(t *testing.T) {
}{ }{
{ {
"Rename open channel", "Rename open channel",
th.createChannel(th.BasicTeam, model.CHANNEL_OPEN), th.createChannel(th.BasicTeam, model.ChannelTypeOpen),
false, false,
"newchannelname", "newchannelname",
"newchannelname", "newchannelname",
@@ -905,7 +905,7 @@ func TestRenameChannel(t *testing.T) {
}, },
{ {
"Fail on rename open channel with bad name", "Fail on rename open channel with bad name",
th.createChannel(th.BasicTeam, model.CHANNEL_OPEN), th.createChannel(th.BasicTeam, model.ChannelTypeOpen),
true, true,
"6zii9a9g6pruzj451x3esok54h__wr4j4g8zqtnhmkw771pfpynqwo", "6zii9a9g6pruzj451x3esok54h__wr4j4g8zqtnhmkw771pfpynqwo",
"", "",
@@ -913,7 +913,7 @@ func TestRenameChannel(t *testing.T) {
}, },
{ {
"Success on rename open channel with consecutive underscores in name", "Success on rename open channel with consecutive underscores in name",
th.createChannel(th.BasicTeam, model.CHANNEL_OPEN), th.createChannel(th.BasicTeam, model.ChannelTypeOpen),
false, false,
"foo__bar", "foo__bar",
"foo__bar", "foo__bar",
@@ -988,7 +988,7 @@ func TestGetChannelsForUser(t *testing.T) {
channel := &model.Channel{ channel := &model.Channel{
DisplayName: "Public", DisplayName: "Public",
Name: "public", Name: "public",
Type: model.CHANNEL_OPEN, Type: model.ChannelTypeOpen,
CreatorId: th.BasicUser.Id, CreatorId: th.BasicUser.Id,
TeamId: th.BasicTeam.Id, TeamId: th.BasicTeam.Id,
} }
@@ -1034,7 +1034,7 @@ func TestGetPublicChannelsForTeam(t *testing.T) {
channel := model.Channel{ channel := model.Channel{
DisplayName: fmt.Sprintf("Public %v", i), DisplayName: fmt.Sprintf("Public %v", i),
Name: fmt.Sprintf("public_%v", i), Name: fmt.Sprintf("public_%v", i),
Type: model.CHANNEL_OPEN, Type: model.ChannelTypeOpen,
TeamId: team.Id, TeamId: team.Id,
} }
var rchannel *model.Channel var rchannel *model.Channel
@@ -1067,7 +1067,7 @@ func TestGetPrivateChannelsForTeam(t *testing.T) {
channel := model.Channel{ channel := model.Channel{
DisplayName: fmt.Sprintf("Private %v", i), DisplayName: fmt.Sprintf("Private %v", i),
Name: fmt.Sprintf("private_%v", i), Name: fmt.Sprintf("private_%v", i),
Type: model.CHANNEL_PRIVATE, Type: model.ChannelTypePrivate,
TeamId: team.Id, TeamId: team.Id,
} }
var rchannel *model.Channel var rchannel *model.Channel
@@ -1189,13 +1189,13 @@ func TestSearchChannelsForUser(t *testing.T) {
th := Setup(t).InitBasic() th := Setup(t).InitBasic()
defer th.TearDown() defer th.TearDown()
c1, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: "test-dev-1", Name: "test-dev-1", Type: model.CHANNEL_OPEN, TeamId: th.BasicTeam.Id}, false) c1, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: "test-dev-1", Name: "test-dev-1", Type: model.ChannelTypeOpen, TeamId: th.BasicTeam.Id}, false)
require.Nil(t, err) require.Nil(t, err)
c2, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: "test-dev-2", Name: "test-dev-2", Type: model.CHANNEL_OPEN, TeamId: th.BasicTeam.Id}, false) c2, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: "test-dev-2", Name: "test-dev-2", Type: model.ChannelTypeOpen, TeamId: th.BasicTeam.Id}, false)
require.Nil(t, err) require.Nil(t, err)
c3, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: "dev-3", Name: "dev-3", Type: model.CHANNEL_OPEN, TeamId: th.BasicTeam.Id}, false) c3, err := th.App.CreateChannel(th.Context, &model.Channel{DisplayName: "dev-3", Name: "dev-3", Type: model.ChannelTypeOpen, TeamId: th.BasicTeam.Id}, false)
require.Nil(t, err) require.Nil(t, err)
defer func() { defer func() {
@@ -1539,7 +1539,7 @@ func TestPatchChannelModerationsForChannel(t *testing.T) {
manageMembers := model.ChannelModeratedPermissions[2] manageMembers := model.ChannelModeratedPermissions[2]
channelMentions := model.ChannelModeratedPermissions[3] channelMentions := model.ChannelModeratedPermissions[3]
nonChannelModeratedPermission := model.PERMISSION_CREATE_BOT.Id nonChannelModeratedPermission := model.PermissionCreateBot.Id
testCases := []struct { testCases := []struct {
Name string Name string
@@ -1942,11 +1942,11 @@ func TestPatchChannelModerationsForChannel(t *testing.T) {
_, err := th.App.PatchChannelModerationsForChannel(channel.DeepCopy(), addCreatePosts) _, err := th.App.PatchChannelModerationsForChannel(channel.DeepCopy(), addCreatePosts)
require.Nil(t, err) require.Nil(t, err)
require.True(t, th.App.SessionHasPermissionToChannel(mockSession, channel.Id, model.PERMISSION_CREATE_POST)) require.True(t, th.App.SessionHasPermissionToChannel(mockSession, channel.Id, model.PermissionCreatePost))
_, err = th.App.PatchChannelModerationsForChannel(channel.DeepCopy(), removeCreatePosts) _, err = th.App.PatchChannelModerationsForChannel(channel.DeepCopy(), removeCreatePosts)
require.Nil(t, err) require.Nil(t, err)
require.False(t, th.App.SessionHasPermissionToChannel(mockSession, channel.Id, model.PERMISSION_CREATE_POST)) require.False(t, th.App.SessionHasPermissionToChannel(mockSession, channel.Id, model.PermissionCreatePost))
}) })
} }
@@ -1963,7 +1963,7 @@ func TestMarkChannelsAsViewedPanic(t *testing.T) {
mockChannelStore.On("Get", "channelID", true).Return(&model.Channel{}, nil) mockChannelStore.On("Get", "channelID", true).Return(&model.Channel{}, nil)
mockChannelStore.On("GetMember", context.Background(), "channelID", "userID").Return(&model.ChannelMember{ mockChannelStore.On("GetMember", context.Background(), "channelID", "userID").Return(&model.ChannelMember{
NotifyProps: model.StringMap{ NotifyProps: model.StringMap{
model.PUSH_NOTIFY_PROP: model.CHANNEL_NOTIFY_DEFAULT, model.PushNotifyProp: model.ChannelNotifyDefault,
}}, nil) }}, nil)
times := map[string]int64{ times := map[string]int64{
"userID": 1, "userID": 1,
@@ -2049,14 +2049,14 @@ func TestViewChannelCollapsedThreadsTurnedOff(t *testing.T) {
defer os.Unsetenv("MM_FEATUREFLAGS_COLLAPSEDTHREADS") defer os.Unsetenv("MM_FEATUREFLAGS_COLLAPSEDTHREADS")
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.ThreadAutoFollow = true *cfg.ServiceSettings.ThreadAutoFollow = true
*cfg.ServiceSettings.CollapsedThreads = model.COLLAPSED_THREADS_DEFAULT_ON *cfg.ServiceSettings.CollapsedThreads = model.CollapsedThreadsDefaultOn
}) })
// Turn off CRT for user // Turn off CRT for user
preference := model.Preference{ preference := model.Preference{
UserId: u1.Id, UserId: u1.Id,
Category: model.PREFERENCE_CATEGORY_DISPLAY_SETTINGS, Category: model.PreferenceCategoryDisplaySettings,
Name: model.PREFERENCE_NAME_COLLAPSED_THREADS_ENABLED, Name: model.PreferenceNameCollapsedThreadsEnabled,
Value: "off", Value: "off",
} }
var preferences model.Preferences var preferences model.Preferences
@@ -2123,7 +2123,7 @@ func TestMarkChannelAsUnreadFromPostCollapsedThreadsTurnedOff(t *testing.T) {
defer th.TearDown() defer th.TearDown()
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.ThreadAutoFollow = true *cfg.ServiceSettings.ThreadAutoFollow = true
*cfg.ServiceSettings.CollapsedThreads = model.COLLAPSED_THREADS_DEFAULT_ON *cfg.ServiceSettings.CollapsedThreads = model.CollapsedThreadsDefaultOn
}) })
th.AddUserToChannel(th.BasicUser2, th.BasicChannel) th.AddUserToChannel(th.BasicUser2, th.BasicChannel)
@@ -2131,8 +2131,8 @@ func TestMarkChannelAsUnreadFromPostCollapsedThreadsTurnedOff(t *testing.T) {
// Turn off CRT for user // Turn off CRT for user
preference := model.Preference{ preference := model.Preference{
UserId: th.BasicUser.Id, UserId: th.BasicUser.Id,
Category: model.PREFERENCE_CATEGORY_DISPLAY_SETTINGS, Category: model.PreferenceCategoryDisplaySettings,
Name: model.PREFERENCE_NAME_COLLAPSED_THREADS_ENABLED, Name: model.PreferenceNameCollapsedThreadsEnabled,
Value: "off", Value: "off",
} }
var preferences model.Preferences var preferences model.Preferences
@@ -2210,7 +2210,7 @@ func TestMarkUnreadWithThreads(t *testing.T) {
defer th.TearDown() defer th.TearDown()
th.App.UpdateConfig(func(cfg *model.Config) { th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.ServiceSettings.ThreadAutoFollow = true *cfg.ServiceSettings.ThreadAutoFollow = true
*cfg.ServiceSettings.CollapsedThreads = model.COLLAPSED_THREADS_DEFAULT_ON *cfg.ServiceSettings.CollapsedThreads = model.CollapsedThreadsDefaultOn
}) })
t.Run("Follow threads only if specified", func(t *testing.T) { t.Run("Follow threads only if specified", func(t *testing.T) {

Просмотреть файл

@@ -17,7 +17,7 @@ func (a *App) getSysAdminsEmailRecipients() ([]*model.User, *model.AppError) {
userOptions := &model.UserGetOptions{ userOptions := &model.UserGetOptions{
Page: 0, Page: 0,
PerPage: 100, PerPage: 100,
Role: model.SYSTEM_ADMIN_ROLE_ID, Role: model.SystemAdminRoleId,
Inactive: false, Inactive: false,
} }
return a.GetUsers(userOptions) return a.GetUsers(userOptions)

Просмотреть файл

@@ -15,7 +15,7 @@ func TestClusterDiscoveryService(t *testing.T) {
defer th.TearDown() defer th.TearDown()
ds := th.App.NewClusterDiscoveryService() ds := th.App.NewClusterDiscoveryService()
ds.Type = model.CDS_TYPE_APP ds.Type = model.CDSTypeApp
ds.ClusterName = "ClusterA" ds.ClusterName = "ClusterA"
ds.AutoFillHostname() ds.AutoFillHostname()

Просмотреть файл

@@ -53,19 +53,19 @@ func (s *Server) clusterPluginEventHandler(msg *model.ClusterMessage) {
// The cluster event handlers are spread across this function and NewLocalCacheLayer. // The cluster event handlers are spread across this function and NewLocalCacheLayer.
// Be careful to not have duplicated handlers here and there. // Be careful to not have duplicated handlers here and there.
func (s *Server) registerClusterHandlers() { func (s *Server) registerClusterHandlers() {
s.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_PUBLISH, s.clusterPublishHandler) s.Cluster.RegisterClusterMessageHandler(model.ClusterEventPublish, s.clusterPublishHandler)
s.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_UPDATE_STATUS, s.clusterUpdateStatusHandler) s.Cluster.RegisterClusterMessageHandler(model.ClusterEventUpdateStatus, s.clusterUpdateStatusHandler)
s.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_INVALIDATE_ALL_CACHES, s.clusterInvalidateAllCachesHandler) s.Cluster.RegisterClusterMessageHandler(model.ClusterEventInvalidateAllCaches, s.clusterInvalidateAllCachesHandler)
s.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_INVALIDATE_CACHE_FOR_CHANNEL_MEMBERS_NOTIFY_PROPS, s.clusterInvalidateCacheForChannelMembersNotifyPropHandler) s.Cluster.RegisterClusterMessageHandler(model.ClusterEventInvalidateCacheForChannelMembersNotifyProps, s.clusterInvalidateCacheForChannelMembersNotifyPropHandler)
s.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_INVALIDATE_CACHE_FOR_CHANNEL_BY_NAME, s.clusterInvalidateCacheForChannelByNameHandler) s.Cluster.RegisterClusterMessageHandler(model.ClusterEventInvalidateCacheForChannelByName, s.clusterInvalidateCacheForChannelByNameHandler)
s.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_INVALIDATE_CACHE_FOR_USER, s.clusterInvalidateCacheForUserHandler) s.Cluster.RegisterClusterMessageHandler(model.ClusterEventInvalidateCacheForUser, s.clusterInvalidateCacheForUserHandler)
s.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_INVALIDATE_CACHE_FOR_USER_TEAMS, s.clusterInvalidateCacheForUserTeamsHandler) s.Cluster.RegisterClusterMessageHandler(model.ClusterEventInvalidateCacheForUserTeams, s.clusterInvalidateCacheForUserTeamsHandler)
s.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_BUSY_STATE_CHANGED, s.clusterBusyStateChgHandler) s.Cluster.RegisterClusterMessageHandler(model.ClusterEventBusyStateChanged, s.clusterBusyStateChgHandler)
s.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_CLEAR_SESSION_CACHE_FOR_USER, s.clusterClearSessionCacheForUserHandler) s.Cluster.RegisterClusterMessageHandler(model.ClusterEventClearSessionCacheForUser, s.clusterClearSessionCacheForUserHandler)
s.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_CLEAR_SESSION_CACHE_FOR_ALL_USERS, s.clusterClearSessionCacheForAllUsersHandler) s.Cluster.RegisterClusterMessageHandler(model.ClusterEventClearSessionCacheForAllUsers, s.clusterClearSessionCacheForAllUsersHandler)
s.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_INSTALL_PLUGIN, s.clusterInstallPluginHandler) s.Cluster.RegisterClusterMessageHandler(model.ClusterEventInstallPlugin, s.clusterInstallPluginHandler)
s.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_REMOVE_PLUGIN, s.clusterRemovePluginHandler) s.Cluster.RegisterClusterMessageHandler(model.ClusterEventRemovePlugin, s.clusterRemovePluginHandler)
s.Cluster.RegisterClusterMessageHandler(model.CLUSTER_EVENT_PLUGIN_EVENT, s.clusterPluginEventHandler) s.Cluster.RegisterClusterMessageHandler(model.ClusterEventPluginEvent, s.clusterPluginEventHandler)
} }
func (s *Server) clusterPublishHandler(msg *model.ClusterMessage) { func (s *Server) clusterPublishHandler(msg *model.ClusterMessage) {

Просмотреть файл

@@ -56,7 +56,7 @@ func (a *App) CreateCommandPost(c *request.Context, post *model.Post, teamID str
post.CreateAt = model.GetMillis() post.CreateAt = model.GetMillis()
if strings.HasPrefix(post.Type, model.POST_SYSTEM_MESSAGE_PREFIX) { if strings.HasPrefix(post.Type, model.PostSystemMessagePrefix) {
err := model.NewAppError("CreateCommandPost", "api.context.invalid_param.app_error", map[string]interface{}{"Name": "post.type"}, "", http.StatusBadRequest) err := model.NewAppError("CreateCommandPost", "api.context.invalid_param.app_error", map[string]interface{}{"Name": "post.type"}, "", http.StatusBadRequest)
return nil, err return nil, err
} }
@@ -65,11 +65,11 @@ func (a *App) CreateCommandPost(c *request.Context, post *model.Post, teamID str
model.ParseSlackAttachment(post, response.Attachments) model.ParseSlackAttachment(post, response.Attachments)
} }
if response.ResponseType == model.COMMAND_RESPONSE_TYPE_IN_CHANNEL { if response.ResponseType == model.CommandResponseTypeInChannel {
return a.CreatePostMissingChannel(c, post, true) return a.CreatePostMissingChannel(c, post, true)
} }
if (response.ResponseType == "" || response.ResponseType == model.COMMAND_RESPONSE_TYPE_EPHEMERAL) && (response.Text != "" || response.Attachments != nil) { if (response.ResponseType == "" || response.ResponseType == model.CommandResponseTypeEphemeral) && (response.Text != "" || response.Attachments != nil) {
post.ParentId = "" post.ParentId = ""
a.SendEphemeralPost(post.UserId, post) a.SendEphemeralPost(post.UserId, post)
} }
@@ -477,7 +477,7 @@ func (a *App) DoCommandRequest(cmd *model.Command, p url.Values) (*model.Command
// Prepare the request // Prepare the request
var req *http.Request var req *http.Request
var err error var err error
if cmd.Method == model.COMMAND_METHOD_GET { if cmd.Method == model.CommandMethodGet {
req, err = http.NewRequest(http.MethodGet, cmd.URL, nil) req, err = http.NewRequest(http.MethodGet, cmd.URL, nil)
} else { } else {
req, err = http.NewRequest(http.MethodPost, cmd.URL, strings.NewReader(p.Encode())) req, err = http.NewRequest(http.MethodPost, cmd.URL, strings.NewReader(p.Encode()))
@@ -487,7 +487,7 @@ func (a *App) DoCommandRequest(cmd *model.Command, p url.Values) (*model.Command
return cmd, nil, model.NewAppError("command", "api.command.execute_command.failed.app_error", map[string]interface{}{"Trigger": cmd.Trigger}, err.Error(), http.StatusInternalServerError) return cmd, nil, model.NewAppError("command", "api.command.execute_command.failed.app_error", map[string]interface{}{"Trigger": cmd.Trigger}, err.Error(), http.StatusInternalServerError)
} }
if cmd.Method == model.COMMAND_METHOD_GET { if cmd.Method == model.CommandMethodGet {
if req.URL.RawQuery != "" { if req.URL.RawQuery != "" {
req.URL.RawQuery += "&" req.URL.RawQuery += "&"
} }
@@ -496,7 +496,7 @@ func (a *App) DoCommandRequest(cmd *model.Command, p url.Values) (*model.Command
req.Header.Set("Accept", "application/json") req.Header.Set("Accept", "application/json")
req.Header.Set("Authorization", "Token "+cmd.Token) req.Header.Set("Authorization", "Token "+cmd.Token)
if cmd.Method == model.COMMAND_METHOD_POST { if cmd.Method == model.CommandMethodPost {
req.Header.Set("Content-Type", "application/x-www-form-urlencoded") req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
} }

Просмотреть файл

@@ -54,7 +54,7 @@ func (a *App) getSuggestions(c *request.Context, commandArgs *model.CommandArgs,
if index == -1 { // no space in input if index == -1 { // no space in input
for _, command := range commands { for _, command := range commands {
if strings.HasPrefix(command.Trigger, strings.ToLower(inputToBeParsed)) && (command.RoleID == roleID || roleID == model.SYSTEM_ADMIN_ROLE_ID || roleID == "") { if strings.HasPrefix(command.Trigger, strings.ToLower(inputToBeParsed)) && (command.RoleID == roleID || roleID == model.SystemAdminRoleId || roleID == "") {
s := model.AutocompleteSuggestion{ s := model.AutocompleteSuggestion{
Complete: inputParsed + command.Trigger, Complete: inputParsed + command.Trigger,
Suggestion: command.Trigger, Suggestion: command.Trigger,
@@ -71,7 +71,7 @@ func (a *App) getSuggestions(c *request.Context, commandArgs *model.CommandArgs,
if command.Trigger != strings.ToLower(inputToBeParsed[:index]) { if command.Trigger != strings.ToLower(inputToBeParsed[:index]) {
continue continue
} }
if roleID != "" && roleID != model.SYSTEM_ADMIN_ROLE_ID && roleID != command.RoleID { if roleID != "" && roleID != model.SystemAdminRoleId && roleID != command.RoleID {
continue continue
} }
toBeParsed := inputToBeParsed[index+1:] toBeParsed := inputToBeParsed[index+1:]

Просмотреть файл

@@ -208,21 +208,21 @@ func TestSuggestions(t *testing.T) {
jira := createJiraAutocompleteData() jira := createJiraAutocompleteData()
emptyCmdArgs := &model.CommandArgs{} emptyCmdArgs := &model.CommandArgs{}
suggestions := th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "ji", model.SYSTEM_ADMIN_ROLE_ID) suggestions := th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "ji", model.SystemAdminRoleId)
assert.Len(t, suggestions, 1) assert.Len(t, suggestions, 1)
assert.Equal(t, jira.Trigger, suggestions[0].Complete) assert.Equal(t, jira.Trigger, suggestions[0].Complete)
assert.Equal(t, jira.Trigger, suggestions[0].Suggestion) assert.Equal(t, jira.Trigger, suggestions[0].Suggestion)
assert.Equal(t, "[command]", suggestions[0].Hint) assert.Equal(t, "[command]", suggestions[0].Hint)
assert.Equal(t, jira.HelpText, suggestions[0].Description) assert.Equal(t, jira.HelpText, suggestions[0].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira crea", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira crea", model.SystemAdminRoleId)
assert.Len(t, suggestions, 1) assert.Len(t, suggestions, 1)
assert.Equal(t, "jira create", suggestions[0].Complete) assert.Equal(t, "jira create", suggestions[0].Complete)
assert.Equal(t, "create", suggestions[0].Suggestion) assert.Equal(t, "create", suggestions[0].Suggestion)
assert.Equal(t, "[issue text]", suggestions[0].Hint) assert.Equal(t, "[issue text]", suggestions[0].Hint)
assert.Equal(t, "Create a new Issue", suggestions[0].Description) assert.Equal(t, "Create a new Issue", suggestions[0].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira c", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira c", model.SystemAdminRoleId)
assert.Len(t, suggestions, 2) assert.Len(t, suggestions, 2)
assert.Equal(t, "jira create", suggestions[1].Complete) assert.Equal(t, "jira create", suggestions[1].Complete)
assert.Equal(t, "create", suggestions[1].Suggestion) assert.Equal(t, "create", suggestions[1].Suggestion)
@@ -233,27 +233,27 @@ func TestSuggestions(t *testing.T) {
assert.Equal(t, "[url]", suggestions[0].Hint) assert.Equal(t, "[url]", suggestions[0].Hint)
assert.Equal(t, "Connect your Mattermost account to your Jira account", suggestions[0].Description) assert.Equal(t, "Connect your Mattermost account to your Jira account", suggestions[0].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira create ", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira create ", model.SystemAdminRoleId)
assert.Len(t, suggestions, 1) assert.Len(t, suggestions, 1)
assert.Equal(t, "jira create ", suggestions[0].Complete) assert.Equal(t, "jira create ", suggestions[0].Complete)
assert.Equal(t, "", suggestions[0].Suggestion) assert.Equal(t, "", suggestions[0].Suggestion)
assert.Equal(t, "[text]", suggestions[0].Hint) assert.Equal(t, "[text]", suggestions[0].Hint)
assert.Equal(t, "This text is optional, will be inserted into the description field", suggestions[0].Description) assert.Equal(t, "This text is optional, will be inserted into the description field", suggestions[0].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira create some", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira create some", model.SystemAdminRoleId)
assert.Len(t, suggestions, 1) assert.Len(t, suggestions, 1)
assert.Equal(t, "jira create some", suggestions[0].Complete) assert.Equal(t, "jira create some", suggestions[0].Complete)
assert.Equal(t, "", suggestions[0].Suggestion) assert.Equal(t, "", suggestions[0].Suggestion)
assert.Equal(t, "[text]", suggestions[0].Hint) assert.Equal(t, "[text]", suggestions[0].Hint)
assert.Equal(t, "This text is optional, will be inserted into the description field", suggestions[0].Description) assert.Equal(t, "This text is optional, will be inserted into the description field", suggestions[0].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira create some text ", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira create some text ", model.SystemAdminRoleId)
assert.Len(t, suggestions, 0) assert.Len(t, suggestions, 0)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "invalid command", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "invalid command", model.SystemAdminRoleId)
assert.Len(t, suggestions, 0) assert.Len(t, suggestions, 0)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira settings notifications o", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira settings notifications o", model.SystemAdminRoleId)
assert.Len(t, suggestions, 2) assert.Len(t, suggestions, 2)
assert.Equal(t, "jira settings notifications On", suggestions[0].Complete) assert.Equal(t, "jira settings notifications On", suggestions[0].Complete)
assert.Equal(t, "On", suggestions[0].Suggestion) assert.Equal(t, "On", suggestions[0].Suggestion)
@@ -264,48 +264,48 @@ func TestSuggestions(t *testing.T) {
assert.Equal(t, "Turn notifications off", suggestions[1].Hint) assert.Equal(t, "Turn notifications off", suggestions[1].Hint)
assert.Equal(t, "", suggestions[1].Description) assert.Equal(t, "", suggestions[1].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira ", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira ", model.SystemAdminRoleId)
assert.Len(t, suggestions, 11) assert.Len(t, suggestions, 11)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira ", model.SYSTEM_USER_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira ", model.SystemUserRoleId)
assert.Len(t, suggestions, 9) assert.Len(t, suggestions, 9)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira create \"some issue text", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira create \"some issue text", model.SystemAdminRoleId)
assert.Len(t, suggestions, 1) assert.Len(t, suggestions, 1)
assert.Equal(t, "jira create \"some issue text", suggestions[0].Complete) assert.Equal(t, "jira create \"some issue text", suggestions[0].Complete)
assert.Equal(t, "", suggestions[0].Suggestion) assert.Equal(t, "", suggestions[0].Suggestion)
assert.Equal(t, "[text]", suggestions[0].Hint) assert.Equal(t, "[text]", suggestions[0].Hint)
assert.Equal(t, "This text is optional, will be inserted into the description field", suggestions[0].Description) assert.Equal(t, "This text is optional, will be inserted into the description field", suggestions[0].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira timezone ", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira timezone ", model.SystemAdminRoleId)
assert.Len(t, suggestions, 1) assert.Len(t, suggestions, 1)
assert.Equal(t, "jira timezone --zone ", suggestions[0].Complete) assert.Equal(t, "jira timezone --zone ", suggestions[0].Complete)
assert.Equal(t, "--zone", suggestions[0].Suggestion) assert.Equal(t, "--zone", suggestions[0].Suggestion)
assert.Equal(t, "", suggestions[0].Hint) assert.Equal(t, "", suggestions[0].Hint)
assert.Equal(t, "Set timezone", suggestions[0].Description) assert.Equal(t, "Set timezone", suggestions[0].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira timezone --", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira timezone --", model.SystemAdminRoleId)
assert.Len(t, suggestions, 1) assert.Len(t, suggestions, 1)
assert.Equal(t, "jira timezone --zone ", suggestions[0].Complete) assert.Equal(t, "jira timezone --zone ", suggestions[0].Complete)
assert.Equal(t, "--zone", suggestions[0].Suggestion) assert.Equal(t, "--zone", suggestions[0].Suggestion)
assert.Equal(t, "", suggestions[0].Hint) assert.Equal(t, "", suggestions[0].Hint)
assert.Equal(t, "Set timezone", suggestions[0].Description) assert.Equal(t, "Set timezone", suggestions[0].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira timezone --zone ", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira timezone --zone ", model.SystemAdminRoleId)
assert.Len(t, suggestions, 1) assert.Len(t, suggestions, 1)
assert.Equal(t, "jira timezone --zone ", suggestions[0].Complete) assert.Equal(t, "jira timezone --zone ", suggestions[0].Complete)
assert.Equal(t, "", suggestions[0].Suggestion) assert.Equal(t, "", suggestions[0].Suggestion)
assert.Equal(t, "[UTC+07:00]", suggestions[0].Hint) assert.Equal(t, "[UTC+07:00]", suggestions[0].Hint)
assert.Equal(t, "Set timezone", suggestions[0].Description) assert.Equal(t, "Set timezone", suggestions[0].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira timezone --zone bla", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira timezone --zone bla", model.SystemAdminRoleId)
assert.Len(t, suggestions, 1) assert.Len(t, suggestions, 1)
assert.Equal(t, "jira timezone --zone bla", suggestions[0].Complete) assert.Equal(t, "jira timezone --zone bla", suggestions[0].Complete)
assert.Equal(t, "", suggestions[0].Suggestion) assert.Equal(t, "", suggestions[0].Suggestion)
assert.Equal(t, "[UTC+07:00]", suggestions[0].Hint) assert.Equal(t, "[UTC+07:00]", suggestions[0].Hint)
assert.Equal(t, "Set timezone", suggestions[0].Description) assert.Equal(t, "Set timezone", suggestions[0].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira timezone bla", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{jira}, "", "jira timezone bla", model.SystemAdminRoleId)
assert.Len(t, suggestions, 0) assert.Len(t, suggestions, 0)
commandA := &model.Command{ commandA := &model.Command{
@@ -320,7 +320,7 @@ func TestSuggestions(t *testing.T) {
Trigger: "charles", Trigger: "charles",
AutocompleteData: model.NewAutocompleteData("charles", "", ""), AutocompleteData: model.NewAutocompleteData("charles", "", ""),
} }
suggestions = th.App.GetSuggestions(th.Context, emptyCmdArgs, []*model.Command{commandB, commandC, commandA}, model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.GetSuggestions(th.Context, emptyCmdArgs, []*model.Command{commandB, commandC, commandA}, model.SystemAdminRoleId)
assert.Len(t, suggestions, 3) assert.Len(t, suggestions, 3)
assert.Equal(t, "alice", suggestions[0].Complete) assert.Equal(t, "alice", suggestions[0].Complete)
assert.Equal(t, "bob", suggestions[1].Complete) assert.Equal(t, "bob", suggestions[1].Complete)
@@ -334,14 +334,14 @@ func TestCommandWithOptionalArgs(t *testing.T) {
command := createCommandWithOptionalArgs() command := createCommandWithOptionalArgs()
emptyCmdArgs := &model.CommandArgs{} emptyCmdArgs := &model.CommandArgs{}
suggestions := th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "comm", model.SYSTEM_ADMIN_ROLE_ID) suggestions := th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "comm", model.SystemAdminRoleId)
assert.Len(t, suggestions, 1) assert.Len(t, suggestions, 1)
assert.Equal(t, command.Trigger, suggestions[0].Complete) assert.Equal(t, command.Trigger, suggestions[0].Complete)
assert.Equal(t, command.Trigger, suggestions[0].Suggestion) assert.Equal(t, command.Trigger, suggestions[0].Suggestion)
assert.Equal(t, "", suggestions[0].Hint) assert.Equal(t, "", suggestions[0].Hint)
assert.Equal(t, command.HelpText, suggestions[0].Description) assert.Equal(t, command.HelpText, suggestions[0].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command ", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command ", model.SystemAdminRoleId)
assert.Len(t, suggestions, 4) assert.Len(t, suggestions, 4)
assert.Equal(t, "command subcommand1", suggestions[0].Complete) assert.Equal(t, "command subcommand1", suggestions[0].Complete)
assert.Equal(t, "subcommand1", suggestions[0].Suggestion) assert.Equal(t, "subcommand1", suggestions[0].Suggestion)
@@ -356,7 +356,7 @@ func TestCommandWithOptionalArgs(t *testing.T) {
assert.Equal(t, "", suggestions[2].Hint) assert.Equal(t, "", suggestions[2].Hint)
assert.Equal(t, "", suggestions[2].Description) assert.Equal(t, "", suggestions[2].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand1 ", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand1 ", model.SystemAdminRoleId)
assert.Len(t, suggestions, 2) assert.Len(t, suggestions, 2)
assert.Equal(t, "command subcommand1 item1", suggestions[0].Complete) assert.Equal(t, "command subcommand1 item1", suggestions[0].Complete)
assert.Equal(t, "item1", suggestions[0].Suggestion) assert.Equal(t, "item1", suggestions[0].Suggestion)
@@ -367,21 +367,21 @@ func TestCommandWithOptionalArgs(t *testing.T) {
assert.Equal(t, "", suggestions[1].Hint) assert.Equal(t, "", suggestions[1].Hint)
assert.Equal(t, "", suggestions[1].Description) assert.Equal(t, "", suggestions[1].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand1 item1 ", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand1 item1 ", model.SystemAdminRoleId)
assert.Len(t, suggestions, 1) assert.Len(t, suggestions, 1)
assert.Equal(t, "command subcommand1 item1 --name2 ", suggestions[0].Complete) assert.Equal(t, "command subcommand1 item1 --name2 ", suggestions[0].Complete)
assert.Equal(t, "--name2", suggestions[0].Suggestion) assert.Equal(t, "--name2", suggestions[0].Suggestion)
assert.Equal(t, "", suggestions[0].Hint) assert.Equal(t, "", suggestions[0].Hint)
assert.Equal(t, "arg2", suggestions[0].Description) assert.Equal(t, "arg2", suggestions[0].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand1 item1 --name2 bla", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand1 item1 --name2 bla", model.SystemAdminRoleId)
assert.Len(t, suggestions, 1) assert.Len(t, suggestions, 1)
assert.Equal(t, "command subcommand1 item1 --name2 bla", suggestions[0].Complete) assert.Equal(t, "command subcommand1 item1 --name2 bla", suggestions[0].Complete)
assert.Equal(t, "", suggestions[0].Suggestion) assert.Equal(t, "", suggestions[0].Suggestion)
assert.Equal(t, "", suggestions[0].Hint) assert.Equal(t, "", suggestions[0].Hint)
assert.Equal(t, "arg2", suggestions[0].Description) assert.Equal(t, "arg2", suggestions[0].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand2 ", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand2 ", model.SystemAdminRoleId)
assert.Len(t, suggestions, 2) assert.Len(t, suggestions, 2)
assert.Equal(t, "command subcommand2 --name1 ", suggestions[0].Complete) assert.Equal(t, "command subcommand2 --name1 ", suggestions[0].Complete)
assert.Equal(t, "--name1", suggestions[0].Suggestion) assert.Equal(t, "--name1", suggestions[0].Suggestion)
@@ -392,7 +392,7 @@ func TestCommandWithOptionalArgs(t *testing.T) {
assert.Equal(t, "", suggestions[1].Hint) assert.Equal(t, "", suggestions[1].Hint)
assert.Equal(t, "arg2", suggestions[1].Description) assert.Equal(t, "arg2", suggestions[1].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand2 -", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand2 -", model.SystemAdminRoleId)
assert.Len(t, suggestions, 2) assert.Len(t, suggestions, 2)
assert.Equal(t, "command subcommand2 --name1 ", suggestions[0].Complete) assert.Equal(t, "command subcommand2 --name1 ", suggestions[0].Complete)
assert.Equal(t, "--name1", suggestions[0].Suggestion) assert.Equal(t, "--name1", suggestions[0].Suggestion)
@@ -403,7 +403,7 @@ func TestCommandWithOptionalArgs(t *testing.T) {
assert.Equal(t, "", suggestions[1].Hint) assert.Equal(t, "", suggestions[1].Hint)
assert.Equal(t, "arg2", suggestions[1].Description) assert.Equal(t, "arg2", suggestions[1].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand2 --name1 ", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand2 --name1 ", model.SystemAdminRoleId)
assert.Len(t, suggestions, 3) assert.Len(t, suggestions, 3)
assert.Equal(t, "command subcommand2 --name1 item1", suggestions[0].Complete) assert.Equal(t, "command subcommand2 --name1 item1", suggestions[0].Complete)
assert.Equal(t, "item1", suggestions[0].Suggestion) assert.Equal(t, "item1", suggestions[0].Suggestion)
@@ -418,7 +418,7 @@ func TestCommandWithOptionalArgs(t *testing.T) {
assert.Equal(t, "", suggestions[2].Hint) assert.Equal(t, "", suggestions[2].Hint)
assert.Equal(t, "arg3", suggestions[2].Description) assert.Equal(t, "arg3", suggestions[2].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand2 --name1 item", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand2 --name1 item", model.SystemAdminRoleId)
assert.Len(t, suggestions, 3) assert.Len(t, suggestions, 3)
assert.Equal(t, "command subcommand2 --name1 item1", suggestions[0].Complete) assert.Equal(t, "command subcommand2 --name1 item1", suggestions[0].Complete)
assert.Equal(t, "item1", suggestions[0].Suggestion) assert.Equal(t, "item1", suggestions[0].Suggestion)
@@ -433,24 +433,24 @@ func TestCommandWithOptionalArgs(t *testing.T) {
assert.Equal(t, "", suggestions[2].Hint) assert.Equal(t, "", suggestions[2].Hint)
assert.Equal(t, "arg3", suggestions[2].Description) assert.Equal(t, "arg3", suggestions[2].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand2 --name1 item1 ", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand2 --name1 item1 ", model.SystemAdminRoleId)
assert.Len(t, suggestions, 1) assert.Len(t, suggestions, 1)
assert.Equal(t, "command subcommand2 --name1 item1 ", suggestions[0].Complete) assert.Equal(t, "command subcommand2 --name1 item1 ", suggestions[0].Complete)
assert.Equal(t, "", suggestions[0].Suggestion) assert.Equal(t, "", suggestions[0].Suggestion)
assert.Equal(t, "", suggestions[0].Hint) assert.Equal(t, "", suggestions[0].Hint)
assert.Equal(t, "arg2", suggestions[0].Description) assert.Equal(t, "arg2", suggestions[0].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand2 --name1 item1 bla ", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand2 --name1 item1 bla ", model.SystemAdminRoleId)
assert.Len(t, suggestions, 1) assert.Len(t, suggestions, 1)
assert.Equal(t, "command subcommand2 --name1 item1 bla ", suggestions[0].Complete) assert.Equal(t, "command subcommand2 --name1 item1 bla ", suggestions[0].Complete)
assert.Equal(t, "", suggestions[0].Suggestion) assert.Equal(t, "", suggestions[0].Suggestion)
assert.Equal(t, "", suggestions[0].Hint) assert.Equal(t, "", suggestions[0].Hint)
assert.Equal(t, "arg3", suggestions[0].Description) assert.Equal(t, "arg3", suggestions[0].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand2 --name1 item1 bla bla ", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand2 --name1 item1 bla bla ", model.SystemAdminRoleId)
assert.Len(t, suggestions, 0) assert.Len(t, suggestions, 0)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand3 ", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand3 ", model.SystemAdminRoleId)
assert.Len(t, suggestions, 3) assert.Len(t, suggestions, 3)
assert.Equal(t, "command subcommand3 --name1 ", suggestions[0].Complete) assert.Equal(t, "command subcommand3 --name1 ", suggestions[0].Complete)
assert.Equal(t, "--name1", suggestions[0].Suggestion) assert.Equal(t, "--name1", suggestions[0].Suggestion)
@@ -465,7 +465,7 @@ func TestCommandWithOptionalArgs(t *testing.T) {
assert.Equal(t, "", suggestions[2].Hint) assert.Equal(t, "", suggestions[2].Hint)
assert.Equal(t, "arg3", suggestions[2].Description) assert.Equal(t, "arg3", suggestions[2].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand3 --name", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand3 --name", model.SystemAdminRoleId)
assert.Len(t, suggestions, 3) assert.Len(t, suggestions, 3)
assert.Equal(t, "command subcommand3 --name1 ", suggestions[0].Complete) assert.Equal(t, "command subcommand3 --name1 ", suggestions[0].Complete)
assert.Equal(t, "--name1", suggestions[0].Suggestion) assert.Equal(t, "--name1", suggestions[0].Suggestion)
@@ -480,7 +480,7 @@ func TestCommandWithOptionalArgs(t *testing.T) {
assert.Equal(t, "", suggestions[2].Hint) assert.Equal(t, "", suggestions[2].Hint)
assert.Equal(t, "arg3", suggestions[2].Description) assert.Equal(t, "arg3", suggestions[2].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand3 --name1 ", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand3 --name1 ", model.SystemAdminRoleId)
assert.Len(t, suggestions, 2) assert.Len(t, suggestions, 2)
assert.Equal(t, "command subcommand3 --name1 item1", suggestions[0].Complete) assert.Equal(t, "command subcommand3 --name1 item1", suggestions[0].Complete)
assert.Equal(t, "item1", suggestions[0].Suggestion) assert.Equal(t, "item1", suggestions[0].Suggestion)
@@ -491,7 +491,7 @@ func TestCommandWithOptionalArgs(t *testing.T) {
assert.Equal(t, "", suggestions[1].Hint) assert.Equal(t, "", suggestions[1].Hint)
assert.Equal(t, "", suggestions[1].Description) assert.Equal(t, "", suggestions[1].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand4 ", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand4 ", model.SystemAdminRoleId)
assert.Len(t, suggestions, 2) assert.Len(t, suggestions, 2)
assert.Equal(t, "command subcommand4 item1", suggestions[0].Complete) assert.Equal(t, "command subcommand4 item1", suggestions[0].Complete)
assert.Equal(t, "item1", suggestions[0].Suggestion) assert.Equal(t, "item1", suggestions[0].Suggestion)
@@ -502,7 +502,7 @@ func TestCommandWithOptionalArgs(t *testing.T) {
assert.Equal(t, "message", suggestions[1].Hint) assert.Equal(t, "message", suggestions[1].Hint)
assert.Equal(t, "help4", suggestions[1].Description) assert.Equal(t, "help4", suggestions[1].Description)
suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand4 item1 ", model.SYSTEM_ADMIN_ROLE_ID) suggestions = th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command}, "", "command subcommand4 item1 ", model.SystemAdminRoleId)
assert.Len(t, suggestions, 1) assert.Len(t, suggestions, 1)
assert.Equal(t, "command subcommand4 item1 ", suggestions[0].Complete) assert.Equal(t, "command subcommand4 item1 ", suggestions[0].Complete)
assert.Equal(t, "", suggestions[0].Suggestion) assert.Equal(t, "", suggestions[0].Suggestion)
@@ -591,7 +591,7 @@ func createJiraAutocompleteData() *model.AutocompleteData {
jira.AddCommand(timezone) jira.AddCommand(timezone)
install := model.NewAutocompleteData("install", "", "Connect Mattermost to a Jira instance") install := model.NewAutocompleteData("install", "", "Connect Mattermost to a Jira instance")
install.RoleID = model.SYSTEM_ADMIN_ROLE_ID install.RoleID = model.SystemAdminRoleId
cloud := model.NewAutocompleteData("cloud", "", "Connect to a Jira Cloud instance") cloud := model.NewAutocompleteData("cloud", "", "Connect to a Jira Cloud instance")
urlPattern := "https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)" urlPattern := "https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)"
cloud.AddTextArgument("input URL of the Jira Cloud instance", "[URL]", urlPattern) cloud.AddTextArgument("input URL of the Jira Cloud instance", "[URL]", urlPattern)
@@ -602,7 +602,7 @@ func createJiraAutocompleteData() *model.AutocompleteData {
jira.AddCommand(install) jira.AddCommand(install)
uninstall := model.NewAutocompleteData("uninstall", "", "Disconnect Mattermost from a Jira instance") uninstall := model.NewAutocompleteData("uninstall", "", "Disconnect Mattermost from a Jira instance")
uninstall.RoleID = model.SYSTEM_ADMIN_ROLE_ID uninstall.RoleID = model.SystemAdminRoleId
cloud = model.NewAutocompleteData("cloud", "", "Disconnect from a Jira Cloud instance") cloud = model.NewAutocompleteData("cloud", "", "Disconnect from a Jira Cloud instance")
cloud.AddTextArgument("input URL of the Jira Cloud instance", "[URL]", urlPattern) cloud.AddTextArgument("input URL of the Jira Cloud instance", "[URL]", urlPattern)
uninstall.AddCommand(cloud) uninstall.AddCommand(cloud)
@@ -625,7 +625,7 @@ func TestDynamicListArgsForBuiltin(t *testing.T) {
emptyCmdArgs := &model.CommandArgs{} emptyCmdArgs := &model.CommandArgs{}
t.Run("GetAutoCompleteListItems", func(t *testing.T) { t.Run("GetAutoCompleteListItems", func(t *testing.T) {
suggestions := th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command.AutocompleteData}, "", "bogus --dynaArg ", model.SYSTEM_ADMIN_ROLE_ID) suggestions := th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command.AutocompleteData}, "", "bogus --dynaArg ", model.SystemAdminRoleId)
assert.Len(t, suggestions, 3) assert.Len(t, suggestions, 3)
assert.Equal(t, "this is hint 1", suggestions[0].Hint) assert.Equal(t, "this is hint 1", suggestions[0].Hint)
assert.Equal(t, "this is hint 2", suggestions[1].Hint) assert.Equal(t, "this is hint 2", suggestions[1].Hint)
@@ -633,7 +633,7 @@ func TestDynamicListArgsForBuiltin(t *testing.T) {
}) })
t.Run("GetAutoCompleteListItems bad arg", func(t *testing.T) { t.Run("GetAutoCompleteListItems bad arg", func(t *testing.T) {
suggestions := th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command.AutocompleteData}, "", "bogus --badArg ", model.SYSTEM_ADMIN_ROLE_ID) suggestions := th.App.getSuggestions(th.Context, emptyCmdArgs, []*model.AutocompleteData{command.AutocompleteData}, "", "bogus --badArg ", model.SystemAdminRoleId)
assert.Empty(t, suggestions) assert.Empty(t, suggestions)
}) })
} }
@@ -662,7 +662,7 @@ func (p *testCommandProvider) GetCommand(a *App, T i18n.TranslateFunc) *model.Co
func (p *testCommandProvider) DoCommand(a *App, c *request.Context, args *model.CommandArgs, message string) *model.CommandResponse { func (p *testCommandProvider) DoCommand(a *App, c *request.Context, args *model.CommandArgs, message string) *model.CommandResponse {
return &model.CommandResponse{ return &model.CommandResponse{
Text: "I do nothing!", Text: "I do nothing!",
ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL, ResponseType: model.CommandResponseTypeEphemeral,
} }
} }

Просмотреть файл

@@ -30,7 +30,7 @@ func (a *App) SaveComplianceReport(job *model.Compliance) (*model.Compliance, *m
return nil, model.NewAppError("saveComplianceReport", "ent.compliance.licence_disable.app_error", nil, "", http.StatusNotImplemented) return nil, model.NewAppError("saveComplianceReport", "ent.compliance.licence_disable.app_error", nil, "", http.StatusNotImplemented)
} }
job.Type = model.COMPLIANCE_TYPE_ADHOC job.Type = model.ComplianceTypeAdhoc
job, err := a.Srv().Store.Compliance().Save(job) job, err := a.Srv().Store.Compliance().Save(job)
if err != nil { if err != nil {

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше