[Web][Dovecot][SOGo][DockerApi] Add mailbox groups, shared mailboxes and identity provider sync

This commit is contained in:
FreddleSpl0it committed 2026-10-27 10:01:33 +01:00
1 parent 8bc8fbdd2c
commit 2c5718c9c9
82 files changed
+6488 -1027

No files matched your search

+37 -1
View File
@@ -258,6 +258,9 @@ if (isset($_GET['query'])) {
case "api-key":
process_add_return(\Mailcow\ApiKey\ApiKeyModule::fromGlobals()->api->addKey($attr));
break;
case "mailbox-group":
process_add_return(\Mailcow\MailboxGroup\MailboxGroupModule::fromGlobals()->api->addGroup($attr));
break;
case "domain":
switch ($object) {
case "template":
@@ -820,6 +823,22 @@ if (isset($_GET['query'])) {
}
break;
case "mailbox-group":
switch ($object) {
case "all":
process_get_return(\Mailcow\MailboxGroup\MailboxGroupModule::fromGlobals()->api->getGroups($extra));
break;
case "member":
process_get_return(\Mailcow\MailboxGroup\MailboxGroupModule::fromGlobals()->api->getMemberships((string)$extra));
break;
default:
process_get_return(\Mailcow\MailboxGroup\MailboxGroupModule::fromGlobals()->api->getGroup($object));
break;
}
break;
case "logs":
switch ($object) {
case "dovecot":
@@ -1527,12 +1546,17 @@ if (isset($_GET['query'])) {
process_get_return($score);
break;
case "identity-provider":
if($_SESSION['mailcow_cc_role'] === 'admin') {
if ($object == "sync-status") {
process_get_return(\Mailcow\Identity\IdentityModule::fromGlobals()->api->getStatus());
} elseif($_SESSION['mailcow_cc_role'] === 'admin') {
process_get_return($iam_settings);
} else {
process_get_return(null);
}
break;
case "identity-link":
process_get_return(\Mailcow\Identity\IdentityModule::fromGlobals()->api->getLink((string)$object));
break;
break;
// return no route found if no case is matched
default:
@@ -1726,6 +1750,9 @@ if (isset($_GET['query'])) {
case "api-key":
process_delete_return(\Mailcow\ApiKey\ApiKeyModule::fromGlobals()->api->deleteKeys($items));
break;
case "mailbox-group":
process_delete_return(\Mailcow\MailboxGroup\MailboxGroupModule::fromGlobals()->api->deleteGroups($items));
break;
case "app-passwd":
process_delete_return(app_passwd('delete', array('id' => $items)));
break;
@@ -1825,6 +1852,9 @@ if (isset($_GET['query'])) {
case "identity-provider":
process_delete_return(identity_provider('delete'));
break;
case "identity-link":
process_delete_return(\Mailcow\Identity\IdentityModule::fromGlobals()->api->unlink($items));
break;
// return no route found if no case is matched
default:
http_response_code(404);
@@ -1894,6 +1924,9 @@ if (isset($_GET['query'])) {
case "api-key":
process_edit_return(\Mailcow\ApiKey\ApiKeyModule::fromGlobals()->api->editKeys($items, $attr));
break;
case "mailbox-group":
process_edit_return(\Mailcow\MailboxGroup\MailboxGroupModule::fromGlobals()->api->editGroups($items, $attr));
break;
case "recipient_map":
process_edit_return(recipient_map('edit', array_merge(array('id' => $items), $attr)));
break;
@@ -2081,6 +2114,9 @@ if (isset($_GET['query'])) {
case "identity-provider-test":
process_edit_return(identity_provider('test', $attr));
break;
case "identity-provider-sync":
process_edit_return(\Mailcow\Identity\IdentityModule::fromGlobals()->api->requestRun($attr));
break;
case "cors":
process_edit_return(cors('edit', $attr));
break;