Skip to content

Commit

Permalink
apps: fixed viewMode resolution by making permissions override user's…
Browse files Browse the repository at this point in the history
… choices
  • Loading branch information
glpatcern committed Apr 20, 2023
1 parent 100c298 commit 4be3eac
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions internal/http/services/appprovider/appprovider.go
Original file line number Diff line number Diff line change
Expand Up @@ -449,19 +449,23 @@ func filterAppsByUserAgent(mimeTypes []*appregistry.MimeTypeInfo, userAgent stri
}

func resolveViewMode(res *provider.ResourceInfo, vm string) gateway.OpenInAppRequest_ViewMode {
var viewMode gateway.OpenInAppRequest_ViewMode
if vm != "" {
return utils.GetViewMode(vm)
viewMode = utils.GetViewMode(vm)
} else {
viewMode = gateway.OpenInAppRequest_VIEW_MODE_READ_WRITE
}

var viewMode gateway.OpenInAppRequest_ViewMode
canEdit := res.PermissionSet.InitiateFileUpload
canView := res.PermissionSet.InitiateFileDownload

switch {
case canEdit && canView:
viewMode = gateway.OpenInAppRequest_VIEW_MODE_READ_WRITE
// ok
case canView:
viewMode = gateway.OpenInAppRequest_VIEW_MODE_READ_ONLY
if viewMode == gateway.OpenInAppRequest_VIEW_MODE_READ_WRITE || viewMode == gateway.OpenInAppRequest_VIEW_MODE_PREVIEW {
// downgrade to the maximum permitted viewmode
viewMode = gateway.OpenInAppRequest_VIEW_MODE_READ_ONLY
}
default:
// no permissions, will return access denied
viewMode = gateway.OpenInAppRequest_VIEW_MODE_INVALID
Expand Down

0 comments on commit 4be3eac

Please sign in to comment.