WebDAV permissions and logging (closes #1362)

This commit is contained in:
mdecimus
2025-05-09 15:47:09 +02:00
parent fe7d646966
commit 095c501a66
50 changed files with 1031 additions and 273 deletions

View File

@@ -200,6 +200,52 @@ impl Permission {
Permission::OauthClientDelete => "Remove OAuth clients",
Permission::AiModelInteract => "Interact with AI models",
Permission::Troubleshoot => "Perform troubleshooting",
Permission::DavSyncCollection => "Synchronize collection changes with client",
Permission::DavPrincipalAcl => "Set principal properties for access control",
Permission::DavPrincipalMatch => "Match principals based on specified criteria",
Permission::DavPrincipalSearch => "Search for principals by property values",
Permission::DavPrincipalSearchPropSet => "Define property sets for principal searches",
Permission::DavExpandProperty => "Expand properties that reference other resources",
Permission::DavPrincipalList => "List available principals in the system",
Permission::DavFilePropFind => "Retrieve properties of file resources",
Permission::DavFilePropPatch => "Modify properties of file resources",
Permission::DavFileGet => "Download file resources",
Permission::DavFileMkCol => "Create new file collections or directories",
Permission::DavFileDelete => "Remove file resources",
Permission::DavFilePut => "Upload or modify file resources",
Permission::DavFileCopy => "Copy file resources to new locations",
Permission::DavFileMove => "Move file resources to new locations",
Permission::DavFileLock => "Lock file resources to prevent concurrent modifications",
Permission::DavFileAcl => "Manage access control lists for file resources",
Permission::DavCardPropFind => "Retrieve properties of address book entries",
Permission::DavCardPropPatch => "Modify properties of address book entries",
Permission::DavCardGet => "Download address book entries",
Permission::DavCardMkCol => "Create new address book collections",
Permission::DavCardDelete => "Remove address book entries or collections",
Permission::DavCardPut => "Upload or modify address book entries",
Permission::DavCardCopy => "Copy address book entries to new locations",
Permission::DavCardMove => "Move address book entries to new locations",
Permission::DavCardLock => {
"Lock address book entries to prevent concurrent modifications"
}
Permission::DavCardAcl => "Manage access control lists for address book entries",
Permission::DavCardQuery => "Search for address book entries matching criteria",
Permission::DavCardMultiGet => {
"Retrieve multiple address book entries in a single request"
}
Permission::DavCalPropFind => "Retrieve properties of calendar entries",
Permission::DavCalPropPatch => "Modify properties of calendar entries",
Permission::DavCalGet => "Download calendar entries",
Permission::DavCalMkCol => "Create new calendar collections",
Permission::DavCalDelete => "Remove calendar entries or collections",
Permission::DavCalPut => "Upload or modify calendar entries",
Permission::DavCalCopy => "Copy calendar entries to new locations",
Permission::DavCalMove => "Move calendar entries to new locations",
Permission::DavCalLock => "Lock calendar entries to prevent concurrent modifications",
Permission::DavCalAcl => "Manage access control lists for calendar entries",
Permission::DavCalQuery => "Search for calendar entries matching criteria",
Permission::DavCalMultiGet => "Retrieve multiple calendar entries in a single request",
Permission::DavCalFreeBusyQuery => "Query free/busy time information for scheduling",
}
}
}

View File

@@ -1367,6 +1367,46 @@ impl Permission {
| Permission::SieveHaveSpace
| Permission::SpamFilterClassify
| Permission::SpamFilterTrain
| Permission::DavSyncCollection
| Permission::DavExpandProperty
| Permission::DavPrincipalAcl
| Permission::DavPrincipalMatch
| Permission::DavPrincipalSearchPropSet
| Permission::DavFilePropFind
| Permission::DavFilePropPatch
| Permission::DavFileGet
| Permission::DavFileMkCol
| Permission::DavFileDelete
| Permission::DavFilePut
| Permission::DavFileCopy
| Permission::DavFileMove
| Permission::DavFileLock
| Permission::DavFileAcl
| Permission::DavCardPropFind
| Permission::DavCardPropPatch
| Permission::DavCardGet
| Permission::DavCardMkCol
| Permission::DavCardDelete
| Permission::DavCardPut
| Permission::DavCardCopy
| Permission::DavCardMove
| Permission::DavCardLock
| Permission::DavCardAcl
| Permission::DavCardQuery
| Permission::DavCardMultiGet
| Permission::DavCalPropFind
| Permission::DavCalPropPatch
| Permission::DavCalGet
| Permission::DavCalMkCol
| Permission::DavCalDelete
| Permission::DavCalPut
| Permission::DavCalCopy
| Permission::DavCalMove
| Permission::DavCalLock
| Permission::DavCalAcl
| Permission::DavCalQuery
| Permission::DavCalMultiGet
| Permission::DavCalFreeBusyQuery
)
}

View File

@@ -330,6 +330,54 @@ pub enum Permission {
AiModelInteract,
Troubleshoot,
SpamFilterClassify,
// WebDAV permissions
DavSyncCollection,
DavExpandProperty,
DavPrincipalAcl,
DavPrincipalList,
DavPrincipalMatch,
DavPrincipalSearch,
DavPrincipalSearchPropSet,
DavFilePropFind,
DavFilePropPatch,
DavFileGet,
DavFileMkCol,
DavFileDelete,
DavFilePut,
DavFileCopy,
DavFileMove,
DavFileLock,
DavFileAcl,
DavCardPropFind,
DavCardPropPatch,
DavCardGet,
DavCardMkCol,
DavCardDelete,
DavCardPut,
DavCardCopy,
DavCardMove,
DavCardLock,
DavCardAcl,
DavCardQuery,
DavCardMultiGet,
DavCalPropFind,
DavCalPropPatch,
DavCalGet,
DavCalMkCol,
DavCalDelete,
DavCalPut,
DavCalCopy,
DavCalMove,
DavCalLock,
DavCalAcl,
DavCalQuery,
DavCalMultiGet,
DavCalFreeBusyQuery,
// WARNING: add new ids at the end (TODO: use static ids)
}