@@ -17,6 +17,7 @@ import { action as sidebarAction } from '../../../files/src/actions/sidebarActio
1717import { generateAvatarSvg } from '../utils/AccountIcon'
1818
1919import './sharingStatusAction.scss'
20+ import { showError } from '@nextcloud/dialogs'
2021
2122const isExternal = ( node : Node ) => {
2223 return node . attributes ?. [ 'is-federated' ] ?? false
@@ -125,15 +126,23 @@ export const action = new FileAction({
125126 return true
126127 }
127128
129+ // You need share permissions to share this file
130+ // and read permissions to see the sidebar
128131 return ( node . permissions & Permission . SHARE ) !== 0
132+ && ( node . permissions & Permission . READ ) !== 0
129133 } ,
130134
131135 async exec ( node : Node , view : View , dir : string ) {
132136 // You need read permissions to see the sidebar
133137 if ( ( node . permissions & Permission . READ ) !== 0 ) {
134138 window . OCA ?. Files ?. Sidebar ?. setActiveTab ?.( 'sharing' )
135- return await sidebarAction . exec ( node , view , dir )
139+ sidebarAction . exec ( node , view , dir )
140+ return null
136141 }
142+
143+ // Should not happen as the enabled check should prevent this
144+ // leaving it here for safety or in case someone calls this action directly
145+ showError ( t ( 'files_sharing' , 'You do not have enough permissions to share this file.' ) )
137146 return null
138147 } ,
139148
0 commit comments