Fixing joining of channels via permalinks for system admins. (#4409)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
b4002ba55f
Коммит
98131a293a
11
api/post.go
11
api/post.go
@@ -1329,16 +1329,15 @@ func getPermalinkTmp(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
post := list.Posts[list.Order[0]]
|
post := list.Posts[list.Order[0]]
|
||||||
|
|
||||||
if !HasPermissionToChannelContext(c, post.ChannelId, model.PERMISSION_READ_CHANNEL) {
|
// Because we confuse permissions and membership in Mattermost's model, we have to just
|
||||||
// If we don't have permissions attempt to join the channel to fix the problem
|
// try to join the channel without checking if we already have permission to it. This is
|
||||||
|
// because system admins have permissions to every channel but are not nessisary a member
|
||||||
|
// of every channel. If we checked here then system admins would skip joining the channel and
|
||||||
|
// error when they tried to view it.
|
||||||
if err, _ := JoinChannelById(c, c.Session.UserId, post.ChannelId); err != nil {
|
if err, _ := JoinChannelById(c, c.Session.UserId, post.ChannelId); err != nil {
|
||||||
// On error just return with permissions error
|
// On error just return with permissions error
|
||||||
c.Err = err
|
c.Err = err
|
||||||
return
|
return
|
||||||
} else {
|
|
||||||
// If we sucessfully joined the channel then clear the permissions error and continue
|
|
||||||
c.Err = nil
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if HandleEtag(list.Etag(), w, r) {
|
if HandleEtag(list.Etag(), w, r) {
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user