Skip to content

Commit 17523fa

Browse files
authored
MM-21898 - Part 1: Generate and use an interface instead of *A… (mattermost#13840)
* Generate and use an interface instead of *App
1 parent 66fc096 commit 17523fa

File tree

200 files changed

+4559
-2367
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

200 files changed

+4559
-2367
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -101,3 +101,5 @@ tags
101101

102102
debug
103103
client
104+
__debug_bin
105+
report.xml

Makefile

+4
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,10 @@ ifneq ($(MM_NO_ENTERPRISE_LINT),true)
202202
endif
203203
endif
204204

205+
app-layers: ## Extract interface from App struct
206+
env GO111MODULE=off $(GO) get -u github.com/reflog/struct2interface
207+
$(GOBIN)/struct2interface -f "app" -o "app/app_iface.go" -p "app" -s "App" -i "AppIface" -t ./app/layer_generators/app_iface.go.tmpl
208+
205209
i18n-extract: ## Extract strings for translation from the source code
206210
env GO111MODULE=off $(GO) get -u github.com/mattermost/mattermost-utilities/mmgotool
207211
$(GOBIN)/mmgotool i18n extract

api4/apitestlib.go

+17-17
Original file line numberDiff line numberDiff line change
@@ -114,10 +114,10 @@ func setupTestHelper(enterprise bool, updateConfig func(*model.Config)) *TestHel
114114
}
115115

116116
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.ListenAddress = prevListenAddress })
117-
Init(th.Server, th.Server.AppOptions, th.App.Srv.Router)
118-
web.New(th.Server, th.Server.AppOptions, th.App.Srv.Router)
119-
wsapi.Init(th.App, th.App.Srv.WebSocketRouter)
120-
th.App.Srv.Store.MarkSystemRanUnitTests()
117+
Init(th.Server, th.Server.AppOptions, th.App.Srv().Router)
118+
web.New(th.Server, th.Server.AppOptions, th.App.Srv().Router)
119+
wsapi.Init(th.App, th.App.Srv().WebSocketRouter)
120+
th.App.Srv().Store.MarkSystemRanUnitTests()
121121
th.App.DoAppMigrations()
122122

123123
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.EnableOpenServer = true })
@@ -227,7 +227,7 @@ func (me *TestHelper) InitBasic() *TestHelper {
227227

228228
func (me *TestHelper) waitForConnectivity() {
229229
for i := 0; i < 1000; i++ {
230-
conn, err := net.Dial("tcp", fmt.Sprintf("localhost:%v", me.App.Srv.ListenAddr.Port))
230+
conn, err := net.Dial("tcp", fmt.Sprintf("localhost:%v", me.App.Srv().ListenAddr.Port))
231231
if err == nil {
232232
conn.Close()
233233
return
@@ -238,19 +238,19 @@ func (me *TestHelper) waitForConnectivity() {
238238
}
239239

240240
func (me *TestHelper) CreateClient() *model.Client4 {
241-
return model.NewAPIv4Client(fmt.Sprintf("http://localhost:%v", me.App.Srv.ListenAddr.Port))
241+
return model.NewAPIv4Client(fmt.Sprintf("http://localhost:%v", me.App.Srv().ListenAddr.Port))
242242
}
243243

244244
func (me *TestHelper) CreateWebSocketClient() (*model.WebSocketClient, *model.AppError) {
245-
return model.NewWebSocketClient4(fmt.Sprintf("ws://localhost:%v", me.App.Srv.ListenAddr.Port), me.Client.AuthToken)
245+
return model.NewWebSocketClient4(fmt.Sprintf("ws://localhost:%v", me.App.Srv().ListenAddr.Port), me.Client.AuthToken)
246246
}
247247

248248
func (me *TestHelper) CreateWebSocketSystemAdminClient() (*model.WebSocketClient, *model.AppError) {
249-
return model.NewWebSocketClient4(fmt.Sprintf("ws://localhost:%v", me.App.Srv.ListenAddr.Port), me.SystemAdminClient.AuthToken)
249+
return model.NewWebSocketClient4(fmt.Sprintf("ws://localhost:%v", me.App.Srv().ListenAddr.Port), me.SystemAdminClient.AuthToken)
250250
}
251251

252252
func (me *TestHelper) CreateWebSocketClientWithClient(client *model.Client4) (*model.WebSocketClient, *model.AppError) {
253-
return model.NewWebSocketClient4(fmt.Sprintf("ws://localhost:%v", me.App.Srv.ListenAddr.Port), client.AuthToken)
253+
return model.NewWebSocketClient4(fmt.Sprintf("ws://localhost:%v", me.App.Srv().ListenAddr.Port), client.AuthToken)
254254
}
255255

256256
func (me *TestHelper) CreateBotWithSystemAdminClient() *model.Bot {
@@ -318,7 +318,7 @@ func (me *TestHelper) CreateUserWithClient(client *model.Client4) *model.User {
318318
}
319319

320320
ruser.Password = "Pa$$word11"
321-
_, err := me.App.Srv.Store.User().VerifyEmail(ruser.Id, ruser.Email)
321+
_, err := me.App.Srv().Store.User().VerifyEmail(ruser.Id, ruser.Email)
322322
if err != nil {
323323
return nil
324324
}
@@ -420,7 +420,7 @@ func (me *TestHelper) CreateMessagePostWithClient(client *model.Client4, channel
420420
}
421421

422422
func (me *TestHelper) CreateMessagePostNoClient(channel *model.Channel, message string, createAtTime int64) *model.Post {
423-
post, err := me.App.Srv.Store.Post().Save(&model.Post{
423+
post, err := me.App.Srv().Store.Post().Save(&model.Post{
424424
UserId: me.BasicUser.Id,
425425
ChannelId: channel.Id,
426426
Message: message,
@@ -751,9 +751,9 @@ func (me *TestHelper) cleanupTestFile(info *model.FileInfo) error {
751751
func (me *TestHelper) MakeUserChannelAdmin(user *model.User, channel *model.Channel) {
752752
utils.DisableDebugLogForTest()
753753

754-
if cm, err := me.App.Srv.Store.Channel().GetMember(channel.Id, user.Id); err == nil {
754+
if cm, err := me.App.Srv().Store.Channel().GetMember(channel.Id, user.Id); err == nil {
755755
cm.SchemeAdmin = true
756-
if _, err = me.App.Srv.Store.Channel().UpdateMember(cm); err != nil {
756+
if _, err = me.App.Srv().Store.Channel().UpdateMember(cm); err != nil {
757757
utils.EnableDebugLogForTest()
758758
panic(err)
759759
}
@@ -768,9 +768,9 @@ func (me *TestHelper) MakeUserChannelAdmin(user *model.User, channel *model.Chan
768768
func (me *TestHelper) UpdateUserToTeamAdmin(user *model.User, team *model.Team) {
769769
utils.DisableDebugLogForTest()
770770

771-
if tm, err := me.App.Srv.Store.Team().GetMember(team.Id, user.Id); err == nil {
771+
if tm, err := me.App.Srv().Store.Team().GetMember(team.Id, user.Id); err == nil {
772772
tm.SchemeAdmin = true
773-
if _, err = me.App.Srv.Store.Team().UpdateMember(tm); err != nil {
773+
if _, err = me.App.Srv().Store.Team().UpdateMember(tm); err != nil {
774774
utils.EnableDebugLogForTest()
775775
panic(err)
776776
}
@@ -788,9 +788,9 @@ func (me *TestHelper) UpdateUserToTeamAdmin(user *model.User, team *model.Team)
788788
func (me *TestHelper) UpdateUserToNonTeamAdmin(user *model.User, team *model.Team) {
789789
utils.DisableDebugLogForTest()
790790

791-
if tm, err := me.App.Srv.Store.Team().GetMember(team.Id, user.Id); err == nil {
791+
if tm, err := me.App.Srv().Store.Team().GetMember(team.Id, user.Id); err == nil {
792792
tm.SchemeAdmin = false
793-
if _, err = me.App.Srv.Store.Team().UpdateMember(tm); err != nil {
793+
if _, err = me.App.Srv().Store.Team().UpdateMember(tm); err != nil {
794794
utils.EnableDebugLogForTest()
795795
panic(err)
796796
}

api4/bot.go

+15-15
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,16 @@ func createBot(c *Context, w http.ResponseWriter, r *http.Request) {
3535
}
3636

3737
bot := &model.Bot{
38-
OwnerId: c.App.Session.UserId,
38+
OwnerId: c.App.Session().UserId,
3939
}
4040
bot.Patch(botPatch)
4141

42-
if !c.App.SessionHasPermissionTo(c.App.Session, model.PERMISSION_CREATE_BOT) {
42+
if !c.App.SessionHasPermissionTo(*c.App.Session(), model.PERMISSION_CREATE_BOT) {
4343
c.SetPermissionError(model.PERMISSION_CREATE_BOT)
4444
return
4545
}
4646

47-
if user, err := c.App.GetUser(c.App.Session.UserId); err == nil {
47+
if user, err := c.App.GetUser(c.App.Session().UserId); err == nil {
4848
if user.IsBot {
4949
c.SetPermissionError(model.PERMISSION_CREATE_BOT)
5050
return
@@ -79,7 +79,7 @@ func patchBot(c *Context, w http.ResponseWriter, r *http.Request) {
7979
return
8080
}
8181

82-
if err := c.App.SessionHasPermissionToManageBot(c.App.Session, botUserId); err != nil {
82+
if err := c.App.SessionHasPermissionToManageBot(*c.App.Session(), botUserId); err != nil {
8383
c.Err = err
8484
return
8585
}
@@ -108,10 +108,10 @@ func getBot(c *Context, w http.ResponseWriter, r *http.Request) {
108108
return
109109
}
110110

111-
if c.App.SessionHasPermissionTo(c.App.Session, model.PERMISSION_READ_OTHERS_BOTS) {
111+
if c.App.SessionHasPermissionTo(*c.App.Session(), model.PERMISSION_READ_OTHERS_BOTS) {
112112
// Allow access to any bot.
113-
} else if bot.OwnerId == c.App.Session.UserId {
114-
if !c.App.SessionHasPermissionTo(c.App.Session, model.PERMISSION_READ_BOTS) {
113+
} else if bot.OwnerId == c.App.Session().UserId {
114+
if !c.App.SessionHasPermissionTo(*c.App.Session(), model.PERMISSION_READ_BOTS) {
115115
// Pretend like the bot doesn't exist at all to avoid revealing that the
116116
// user is a bot. It's kind of silly in this case, sine we created the bot,
117117
// but we don't have read bot permissions.
@@ -137,12 +137,12 @@ func getBots(c *Context, w http.ResponseWriter, r *http.Request) {
137137
onlyOrphaned := r.URL.Query().Get("only_orphaned") == "true"
138138

139139
var OwnerId string
140-
if c.App.SessionHasPermissionTo(c.App.Session, model.PERMISSION_READ_OTHERS_BOTS) {
140+
if c.App.SessionHasPermissionTo(*c.App.Session(), model.PERMISSION_READ_OTHERS_BOTS) {
141141
// Get bots created by any user.
142142
OwnerId = ""
143-
} else if c.App.SessionHasPermissionTo(c.App.Session, model.PERMISSION_READ_BOTS) {
143+
} else if c.App.SessionHasPermissionTo(*c.App.Session(), model.PERMISSION_READ_BOTS) {
144144
// Only get bots created by this user.
145-
OwnerId = c.App.Session.UserId
145+
OwnerId = c.App.Session().UserId
146146
} else {
147147
c.SetPermissionError(model.PERMISSION_READ_BOTS)
148148
return
@@ -182,7 +182,7 @@ func updateBotActive(c *Context, w http.ResponseWriter, r *http.Request, active
182182
}
183183
botUserId := c.Params.BotUserId
184184

185-
if err := c.App.SessionHasPermissionToManageBot(c.App.Session, botUserId); err != nil {
185+
if err := c.App.SessionHasPermissionToManageBot(*c.App.Session(), botUserId); err != nil {
186186
c.Err = err
187187
return
188188
}
@@ -205,7 +205,7 @@ func assignBot(c *Context, w http.ResponseWriter, r *http.Request) {
205205
botUserId := c.Params.BotUserId
206206
userId := c.Params.UserId
207207

208-
if err := c.App.SessionHasPermissionToManageBot(c.App.Session, botUserId); err != nil {
208+
if err := c.App.SessionHasPermissionToManageBot(*c.App.Session(), botUserId); err != nil {
209209
c.Err = err
210210
return
211211
}
@@ -233,7 +233,7 @@ func getBotIconImage(c *Context, w http.ResponseWriter, r *http.Request) {
233233
}
234234
botUserId := c.Params.BotUserId
235235

236-
canSee, err := c.App.UserCanSeeOtherUser(c.App.Session.UserId, botUserId)
236+
canSee, err := c.App.UserCanSeeOtherUser(c.App.Session().UserId, botUserId)
237237
if err != nil {
238238
c.Err = err
239239
return
@@ -276,7 +276,7 @@ func setBotIconImage(c *Context, w http.ResponseWriter, r *http.Request) {
276276
}
277277
botUserId := c.Params.BotUserId
278278

279-
if err := c.App.SessionHasPermissionToManageBot(c.App.Session, botUserId); err != nil {
279+
if err := c.App.SessionHasPermissionToManageBot(*c.App.Session(), botUserId); err != nil {
280280
c.Err = err
281281
return
282282
}
@@ -322,7 +322,7 @@ func deleteBotIconImage(c *Context, w http.ResponseWriter, r *http.Request) {
322322
}
323323
botUserId := c.Params.BotUserId
324324

325-
if err := c.App.SessionHasPermissionToManageBot(c.App.Session, botUserId); err != nil {
325+
if err := c.App.SessionHasPermissionToManageBot(*c.App.Session(), botUserId); err != nil {
326326
c.Err = err
327327
return
328328
}

api4/brand.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ func uploadBrandImage(c *Context, w http.ResponseWriter, r *http.Request) {
5757
return
5858
}
5959

60-
if !c.App.SessionHasPermissionTo(c.App.Session, model.PERMISSION_MANAGE_SYSTEM) {
60+
if !c.App.SessionHasPermissionTo(*c.App.Session(), model.PERMISSION_MANAGE_SYSTEM) {
6161
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM)
6262
return
6363
}
@@ -74,7 +74,7 @@ func uploadBrandImage(c *Context, w http.ResponseWriter, r *http.Request) {
7474
}
7575

7676
func deleteBrandImage(c *Context, w http.ResponseWriter, r *http.Request) {
77-
if !c.App.SessionHasPermissionTo(c.App.Session, model.PERMISSION_MANAGE_SYSTEM) {
77+
if !c.App.SessionHasPermissionTo(*c.App.Session(), model.PERMISSION_MANAGE_SYSTEM) {
7878
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM)
7979
return
8080
}

0 commit comments

Comments
 (0)