[MM-28000] Fix system manager can download export files without right permissions (#16569)
Automatic Merge
Этот коммит содержится в:
@@ -57,6 +57,9 @@ type TestHelper struct {
|
||||
SystemAdminUser *model.User
|
||||
tempWorkspace string
|
||||
|
||||
SystemManagerClient *model.Client4
|
||||
SystemManagerUser *model.User
|
||||
|
||||
LocalClient *model.Client4
|
||||
|
||||
IncludeCacheLayer bool
|
||||
@@ -167,6 +170,7 @@ func setupTestHelper(dbStore store.Store, searchEngine *searchengine.Broker, ent
|
||||
|
||||
th.Client = th.CreateClient()
|
||||
th.SystemAdminClient = th.CreateClient()
|
||||
th.SystemManagerClient = th.CreateClient()
|
||||
|
||||
// Verify handling of the supported true/false values by randomizing on each run.
|
||||
rand.Seed(time.Now().UTC().UnixNano())
|
||||
@@ -299,10 +303,11 @@ func (th *TestHelper) TearDown() {
|
||||
|
||||
var initBasicOnce sync.Once
|
||||
var userCache struct {
|
||||
SystemAdminUser *model.User
|
||||
TeamAdminUser *model.User
|
||||
BasicUser *model.User
|
||||
BasicUser2 *model.User
|
||||
SystemAdminUser *model.User
|
||||
SystemManagerUser *model.User
|
||||
TeamAdminUser *model.User
|
||||
BasicUser *model.User
|
||||
BasicUser2 *model.User
|
||||
}
|
||||
|
||||
func (th *TestHelper) InitLogin() *TestHelper {
|
||||
@@ -315,6 +320,11 @@ func (th *TestHelper) InitLogin() *TestHelper {
|
||||
th.SystemAdminUser, _ = th.App.GetUser(th.SystemAdminUser.Id)
|
||||
userCache.SystemAdminUser = th.SystemAdminUser.DeepCopy()
|
||||
|
||||
th.SystemManagerUser = th.CreateUser()
|
||||
th.App.UpdateUserRoles(th.SystemManagerUser.Id, model.SYSTEM_USER_ROLE_ID+" "+model.SYSTEM_MANAGER_ROLE_ID, false)
|
||||
th.SystemManagerUser, _ = th.App.GetUser(th.SystemManagerUser.Id)
|
||||
userCache.SystemManagerUser = th.SystemManagerUser.DeepCopy()
|
||||
|
||||
th.TeamAdminUser = th.CreateUser()
|
||||
th.App.UpdateUserRoles(th.TeamAdminUser.Id, model.SYSTEM_USER_ROLE_ID, false)
|
||||
th.TeamAdminUser, _ = th.App.GetUser(th.TeamAdminUser.Id)
|
||||
@@ -330,22 +340,28 @@ func (th *TestHelper) InitLogin() *TestHelper {
|
||||
})
|
||||
// restore cached users
|
||||
th.SystemAdminUser = userCache.SystemAdminUser.DeepCopy()
|
||||
th.SystemManagerUser = userCache.SystemManagerUser.DeepCopy()
|
||||
th.TeamAdminUser = userCache.TeamAdminUser.DeepCopy()
|
||||
th.BasicUser = userCache.BasicUser.DeepCopy()
|
||||
th.BasicUser2 = userCache.BasicUser2.DeepCopy()
|
||||
mainHelper.GetSQLStore().GetMaster().Insert(th.SystemAdminUser, th.TeamAdminUser, th.BasicUser, th.BasicUser2)
|
||||
mainHelper.GetSQLStore().GetMaster().Insert(th.SystemAdminUser, th.TeamAdminUser, th.BasicUser, th.BasicUser2, th.SystemManagerUser)
|
||||
// restore non hashed password for login
|
||||
th.SystemAdminUser.Password = "Pa$$word11"
|
||||
th.TeamAdminUser.Password = "Pa$$word11"
|
||||
th.BasicUser.Password = "Pa$$word11"
|
||||
th.BasicUser2.Password = "Pa$$word11"
|
||||
th.SystemManagerUser.Password = "Pa$$word11"
|
||||
|
||||
var wg sync.WaitGroup
|
||||
wg.Add(2)
|
||||
wg.Add(3)
|
||||
go func() {
|
||||
th.LoginSystemAdmin()
|
||||
wg.Done()
|
||||
}()
|
||||
go func() {
|
||||
th.LoginSystemManager()
|
||||
wg.Done()
|
||||
}()
|
||||
go func() {
|
||||
th.LoginTeamAdmin()
|
||||
wg.Done()
|
||||
@@ -420,6 +436,10 @@ func (th *TestHelper) CreateWebSocketSystemAdminClient() (*model.WebSocketClient
|
||||
return model.NewWebSocketClient4(fmt.Sprintf("ws://localhost:%v", th.App.Srv().ListenAddr.Port), th.SystemAdminClient.AuthToken)
|
||||
}
|
||||
|
||||
func (th *TestHelper) CreateWebSocketSystemManagerClient() (*model.WebSocketClient, *model.AppError) {
|
||||
return model.NewWebSocketClient4(fmt.Sprintf("ws://localhost:%v", th.App.Srv().ListenAddr.Port), th.SystemManagerClient.AuthToken)
|
||||
}
|
||||
|
||||
func (th *TestHelper) CreateWebSocketClientWithClient(client *model.Client4) (*model.WebSocketClient, *model.AppError) {
|
||||
return model.NewWebSocketClient4(fmt.Sprintf("ws://localhost:%v", th.App.Srv().ListenAddr.Port), client.AuthToken)
|
||||
}
|
||||
@@ -632,6 +652,10 @@ func (th *TestHelper) LoginSystemAdmin() {
|
||||
th.LoginSystemAdminWithClient(th.SystemAdminClient)
|
||||
}
|
||||
|
||||
func (th *TestHelper) LoginSystemManager() {
|
||||
th.LoginSystemManagerWithClient(th.SystemManagerClient)
|
||||
}
|
||||
|
||||
func (th *TestHelper) LoginBasicWithClient(client *model.Client4) {
|
||||
utils.DisableDebugLogForTest()
|
||||
_, resp := client.Login(th.BasicUser.Email, th.BasicUser.Password)
|
||||
@@ -659,6 +683,15 @@ func (th *TestHelper) LoginTeamAdminWithClient(client *model.Client4) {
|
||||
utils.EnableDebugLogForTest()
|
||||
}
|
||||
|
||||
func (th *TestHelper) LoginSystemManagerWithClient(client *model.Client4) {
|
||||
utils.DisableDebugLogForTest()
|
||||
_, resp := client.Login(th.SystemManagerUser.Email, th.SystemManagerUser.Password)
|
||||
if resp.Error != nil {
|
||||
panic(resp.Error)
|
||||
}
|
||||
utils.EnableDebugLogForTest()
|
||||
}
|
||||
|
||||
func (th *TestHelper) LoginSystemAdminWithClient(client *model.Client4) {
|
||||
utils.DisableDebugLogForTest()
|
||||
_, resp := client.Login(th.SystemAdminUser.Email, th.SystemAdminUser.Password)
|
||||
|
||||
Ссылка в новой задаче
Block a user