Merge pull request #24878 from nextcloud/backport/stable20/23017
This commit is contained in:
commit
2f6b2b6fa4
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -235,6 +235,9 @@ class ShareAPIController extends OCSController {
|
|||
$sharedWith = $this->userManager->get($share->getSharedWith());
|
||||
$result['share_with'] = $share->getSharedWith();
|
||||
$result['share_with_displayname'] = $sharedWith !== null ? $sharedWith->getDisplayName() : $share->getSharedWith();
|
||||
$result['share_with_displayname_unique'] = $sharedWith !== null ? (
|
||||
$sharedWith->getEMailAddress() !== '' ? $sharedWith->getEMailAddress() : $sharedWith->getUID()
|
||||
) : $share->getSharedWith();
|
||||
$result['status'] = [];
|
||||
|
||||
$userStatuses = $this->userStatusManager->getUserStatuses([$share->getSharedWith()]);
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
:menu-position="'left'"
|
||||
:url="share.shareWithAvatar" />
|
||||
<div v-tooltip.auto="tooltip" class="sharing-entry__desc">
|
||||
<h5>{{ title }}</h5>
|
||||
<h5>{{ title }}<span v-if="!isUnique" class="sharing-entry__desc-unique"> ({{ share.shareWithDisplayNameUnique }})</span></h5>
|
||||
<p v-if="hasStatus">
|
||||
<span>{{ share.status.icon || '' }}</span>
|
||||
<span>{{ share.status.message || '' }}</span>
|
||||
|
@ -399,6 +399,9 @@ export default {
|
|||
p {
|
||||
color: var(--color-text-maxcontrast);
|
||||
}
|
||||
&-unique {
|
||||
color: var(--color-text-maxcontrast);
|
||||
}
|
||||
}
|
||||
&__actions {
|
||||
margin-left: auto;
|
||||
|
|
|
@ -64,6 +64,10 @@ export default {
|
|||
type: String,
|
||||
default: '',
|
||||
},
|
||||
isUnique: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
},
|
||||
|
||||
}
|
||||
|
|
|
@ -240,7 +240,27 @@ export default {
|
|||
// if there is a condition specified, filter it
|
||||
const externalResults = this.externalResults.filter(result => !result.condition || result.condition(this))
|
||||
|
||||
this.suggestions = exactSuggestions.concat(suggestions).concat(externalResults).concat(lookupEntry)
|
||||
const allSuggestions = exactSuggestions.concat(suggestions).concat(externalResults).concat(lookupEntry)
|
||||
|
||||
// Count occurances of display names in order to provide a distinguishable description if needed
|
||||
const nameCounts = allSuggestions.reduce((nameCounts, result) => {
|
||||
if (!result.displayName) {
|
||||
return nameCounts
|
||||
}
|
||||
if (!nameCounts[result.displayName]) {
|
||||
nameCounts[result.displayName] = 0
|
||||
}
|
||||
nameCounts[result.displayName]++
|
||||
return nameCounts
|
||||
}, {})
|
||||
|
||||
this.suggestions = allSuggestions.map(item => {
|
||||
// Make sure that items with duplicate displayName get the shareWith applied as a description
|
||||
if (nameCounts[item.displayName] > 1 && !item.desc) {
|
||||
return { ...item, desc: item.shareWithDisplayNameUnique }
|
||||
}
|
||||
return item
|
||||
})
|
||||
|
||||
this.loading = false
|
||||
console.info('suggestions', this.suggestions)
|
||||
|
@ -393,6 +413,7 @@ export default {
|
|||
isNoUser: result.value.shareType !== this.SHARE_TYPES.SHARE_TYPE_USER,
|
||||
displayName: result.name || result.label,
|
||||
desc,
|
||||
shareWithDisplayNameUnique: result.shareWithDisplayNameUnique || '',
|
||||
icon: this.shareTypeToIcon(result.value.shareType),
|
||||
}
|
||||
},
|
||||
|
|
|
@ -42,6 +42,10 @@ export default {
|
|||
type: Share,
|
||||
default: null,
|
||||
},
|
||||
isUnique: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
},
|
||||
|
||||
data() {
|
||||
|
|
|
@ -150,6 +150,10 @@ export default class Share {
|
|||
|| this.#share.share_with
|
||||
}
|
||||
|
||||
get shareWithDisplayNameUnique() {
|
||||
return this.#share.share_with_displayname_unique || this.#share.share_with
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the share with avatar if any
|
||||
*
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
:key="share.id"
|
||||
:file-info="fileInfo"
|
||||
:share="share"
|
||||
:is-unique="isUnique(share)"
|
||||
@remove:share="removeShare" />
|
||||
</ul>
|
||||
</template>
|
||||
|
@ -34,6 +35,7 @@
|
|||
// eslint-disable-next-line no-unused-vars
|
||||
import Share from '../models/Share'
|
||||
import SharingEntry from '../components/SharingEntry'
|
||||
import ShareTypes from '../mixins/ShareTypes'
|
||||
|
||||
export default {
|
||||
name: 'SharingList',
|
||||
|
@ -42,6 +44,8 @@ export default {
|
|||
SharingEntry,
|
||||
},
|
||||
|
||||
mixins: [ShareTypes],
|
||||
|
||||
props: {
|
||||
fileInfo: {
|
||||
type: Object,
|
||||
|
@ -59,6 +63,13 @@ export default {
|
|||
hasShares() {
|
||||
return this.shares.length === 0
|
||||
},
|
||||
isUnique() {
|
||||
return (share) => {
|
||||
return [...this.shares].filter((item) => {
|
||||
return share.type === this.SHARE_TYPES.SHARE_TYPE_USER && share.shareWithDisplayName === item.shareWithDisplayName
|
||||
}).length <= 1
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
methods: {
|
||||
|
|
|
@ -583,6 +583,7 @@ class ShareAPIControllerTest extends TestCase {
|
|||
'share_type' => IShare::TYPE_USER,
|
||||
'share_with' => 'userId',
|
||||
'share_with_displayname' => 'userDisplay',
|
||||
'share_with_displayname_unique' => 'userId@example.com',
|
||||
'uid_owner' => 'initiatorId',
|
||||
'displayname_owner' => 'initiatorDisplay',
|
||||
'item_type' => 'file',
|
||||
|
@ -782,6 +783,7 @@ class ShareAPIControllerTest extends TestCase {
|
|||
$user = $this->getMockBuilder(IUser::class)->getMock();
|
||||
$user->method('getUID')->willReturn('userId');
|
||||
$user->method('getDisplayName')->willReturn('userDisplay');
|
||||
$user->method('getEMailAddress')->willReturn('userId@example.com');
|
||||
|
||||
$group = $this->getMockBuilder('OCP\IGroup')->getMock();
|
||||
$group->method('getGID')->willReturn('groupId');
|
||||
|
@ -3440,6 +3442,8 @@ class ShareAPIControllerTest extends TestCase {
|
|||
$initiator->method('getDisplayName')->willReturn('initiatorDN');
|
||||
$recipient = $this->getMockBuilder(IUser::class)->getMock();
|
||||
$recipient->method('getDisplayName')->willReturn('recipientDN');
|
||||
$recipient->method('getEmailAddress')->willReturn('recipient');
|
||||
|
||||
|
||||
$result = [];
|
||||
|
||||
|
@ -3479,6 +3483,7 @@ class ShareAPIControllerTest extends TestCase {
|
|||
'file_target' => 'myTarget',
|
||||
'share_with' => 'recipient',
|
||||
'share_with_displayname' => 'recipient',
|
||||
'share_with_displayname_unique' => 'recipient',
|
||||
'note' => 'personal note',
|
||||
'label' => null,
|
||||
'mail_send' => 0,
|
||||
|
@ -3516,6 +3521,7 @@ class ShareAPIControllerTest extends TestCase {
|
|||
'file_target' => 'myTarget',
|
||||
'share_with' => 'recipient',
|
||||
'share_with_displayname' => 'recipientDN',
|
||||
'share_with_displayname_unique' => 'recipient',
|
||||
'mail_send' => 0,
|
||||
'mimetype' => 'myMimeType',
|
||||
'has_preview' => false,
|
||||
|
@ -3567,6 +3573,7 @@ class ShareAPIControllerTest extends TestCase {
|
|||
'file_target' => 'myTarget',
|
||||
'share_with' => 'recipient',
|
||||
'share_with_displayname' => 'recipient',
|
||||
'share_with_displayname_unique' => 'recipient',
|
||||
'mail_send' => 0,
|
||||
'mimetype' => 'myMimeType',
|
||||
'has_preview' => false,
|
||||
|
@ -3614,6 +3621,7 @@ class ShareAPIControllerTest extends TestCase {
|
|||
'file_target' => 'myTarget',
|
||||
'share_with' => 'recipient',
|
||||
'share_with_displayname' => 'recipient',
|
||||
'share_with_displayname_unique' => 'recipient',
|
||||
'mail_send' => 0,
|
||||
'mimetype' => 'myMimeType',
|
||||
'has_preview' => false,
|
||||
|
@ -4162,6 +4170,7 @@ class ShareAPIControllerTest extends TestCase {
|
|||
'file_target' => 'myTarget',
|
||||
'share_with' => 'recipient',
|
||||
'share_with_displayname' => 'recipient',
|
||||
'share_with_displayname_unique' => 'recipient',
|
||||
'mail_send' => 0,
|
||||
'mimetype' => 'mimeWithPreview',
|
||||
'has_preview' => true,
|
||||
|
|
|
@ -136,6 +136,8 @@ class MailPlugin implements ISearchPlugin {
|
|||
'shareType' => IShare::TYPE_USER,
|
||||
'shareWith' => $cloud->getUser(),
|
||||
],
|
||||
'shareWithDisplayNameUnique' => !empty($emailAddress) ? $emailAddress : $cloud->getUser()
|
||||
|
||||
]];
|
||||
$searchResult->addResultSet($userType, [], $singleResult);
|
||||
$searchResult->markExactIdMatch($emailType);
|
||||
|
@ -170,6 +172,7 @@ class MailPlugin implements ISearchPlugin {
|
|||
'shareType' => IShare::TYPE_USER,
|
||||
'shareWith' => $cloud->getUser(),
|
||||
],
|
||||
'shareWithDisplayNameUnique' => !empty($emailAddress) ? $emailAddress : $cloud->getUser()
|
||||
];
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -103,7 +103,8 @@ class RemotePlugin implements ISearchPlugin {
|
|||
'value' => [
|
||||
'shareType' => IShare::TYPE_USER,
|
||||
'shareWith' => $remoteUser
|
||||
]
|
||||
],
|
||||
'shareWithDisplayNameUnique' => $contact['EMAIL'] !== null && $contact['EMAIL'] !== '' ? $contact['EMAIL'] : $contact['UID'],
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
@ -160,6 +160,7 @@ class UserPlugin implements ISearchPlugin {
|
|||
'shareType' => IShare::TYPE_USER,
|
||||
'shareWith' => $uid,
|
||||
],
|
||||
'shareWithDisplayNameUnique' => !empty($userEmail) ? $userEmail : $uid,
|
||||
'status' => $status,
|
||||
];
|
||||
} else {
|
||||
|
@ -182,6 +183,7 @@ class UserPlugin implements ISearchPlugin {
|
|||
'shareType' => IShare::TYPE_USER,
|
||||
'shareWith' => $uid,
|
||||
],
|
||||
'shareWithDisplayNameUnique' => !empty($userEmail) ? $userEmail : $uid,
|
||||
'status' => $status,
|
||||
];
|
||||
}
|
||||
|
@ -203,6 +205,8 @@ class UserPlugin implements ISearchPlugin {
|
|||
|
||||
if ($addUser) {
|
||||
$status = [];
|
||||
$uid = $user->getUID();
|
||||
$userEmail = $user->getEMailAddress();
|
||||
if (array_key_exists($user->getUID(), $userStatuses)) {
|
||||
$userStatus = $userStatuses[$user->getUID()];
|
||||
$status = [
|
||||
|
@ -221,6 +225,7 @@ class UserPlugin implements ISearchPlugin {
|
|||
'shareType' => IShare::TYPE_USER,
|
||||
'shareWith' => $user->getUID(),
|
||||
],
|
||||
'shareWithDisplayNameUnique' => $userEmail !== null && $userEmail !== '' ? $userEmail : $uid,
|
||||
'status' => $status,
|
||||
];
|
||||
}
|
||||
|
|
|
@ -385,7 +385,7 @@ class MailPluginTest extends TestCase {
|
|||
]
|
||||
],
|
||||
false,
|
||||
['users' => [], 'exact' => ['users' => [['uuid' => 'uid1', 'name' => 'User', 'label' => 'User (test@example.com)','value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'],]]]],
|
||||
['users' => [], 'exact' => ['users' => [['uuid' => 'uid1', 'name' => 'User', 'label' => 'User (test@example.com)','value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'], 'shareWithDisplayNameUnique' => 'test@example.com']]]],
|
||||
true,
|
||||
false,
|
||||
],
|
||||
|
@ -443,8 +443,8 @@ class MailPluginTest extends TestCase {
|
|||
],
|
||||
true,
|
||||
['users' => [
|
||||
['uuid' => 'uid1', 'name' => 'User1', 'label' => 'User1 (test@example.com)', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test1']],
|
||||
['uuid' => 'uid2', 'name' => 'User2', 'label' => 'User2 (test@example.de)', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test2']],
|
||||
['uuid' => 'uid1', 'name' => 'User1', 'label' => 'User1 (test@example.com)', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test1'], 'shareWithDisplayNameUnique' => 'test@example.com'],
|
||||
['uuid' => 'uid2', 'name' => 'User2', 'label' => 'User2 (test@example.de)', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test2'], 'shareWithDisplayNameUnique' => 'test@example.de'],
|
||||
], 'emails' => [], 'exact' => ['users' => [], 'emails' => []]],
|
||||
false,
|
||||
true,
|
||||
|
@ -603,7 +603,7 @@ class MailPluginTest extends TestCase {
|
|||
'UID' => 'User'
|
||||
]
|
||||
],
|
||||
['users' => [['label' => 'User (test@example.com)', 'uuid' => 'User', 'name' => 'User', 'value' => ['shareType' => 0, 'shareWith' => 'test'],]], 'emails' => [], 'exact' => ['emails' => [], 'users' => []]],
|
||||
['users' => [['label' => 'User (test@example.com)', 'uuid' => 'User', 'name' => 'User', 'value' => ['shareType' => 0, 'shareWith' => 'test'],'shareWithDisplayNameUnique' => 'test@example.com',]], 'emails' => [], 'exact' => ['emails' => [], 'users' => []]],
|
||||
false,
|
||||
false,
|
||||
[
|
||||
|
|
|
@ -151,13 +151,13 @@ class UserPluginTest extends TestCase {
|
|||
[
|
||||
'test', false, true, [], [],
|
||||
[
|
||||
['label' => 'Test', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'], 'status' => []],
|
||||
['label' => 'Test', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'], 'status' => [], 'shareWithDisplayNameUnique' => 'test'],
|
||||
], [], true, $this->getUserMock('test', 'Test'),
|
||||
],
|
||||
[
|
||||
'test', false, false, [], [],
|
||||
[
|
||||
['label' => 'Test', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'], 'status' => []],
|
||||
['label' => 'Test', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'], 'status' => [], 'shareWithDisplayNameUnique' => 'test'],
|
||||
], [], true, $this->getUserMock('test', 'Test'),
|
||||
],
|
||||
[
|
||||
|
@ -171,13 +171,13 @@ class UserPluginTest extends TestCase {
|
|||
[
|
||||
'test', true, true, ['test-group'], [['test-group', 'test', 2, 0, []]],
|
||||
[
|
||||
['label' => 'Test', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'], 'status' => []],
|
||||
['label' => 'Test', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'], 'status' => [], 'shareWithDisplayNameUnique' => 'test'],
|
||||
], [], true, $this->getUserMock('test', 'Test'),
|
||||
],
|
||||
[
|
||||
'test', true, false, ['test-group'], [['test-group', 'test', 2, 0, []]],
|
||||
[
|
||||
['label' => 'Test', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'], 'status' => []],
|
||||
['label' => 'Test', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'], 'status' => [], 'shareWithDisplayNameUnique' => 'test'],
|
||||
], [], true, $this->getUserMock('test', 'Test'),
|
||||
],
|
||||
[
|
||||
|
@ -190,7 +190,7 @@ class UserPluginTest extends TestCase {
|
|||
],
|
||||
[],
|
||||
[
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test1'], 'status' => []],
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test1'], 'status' => [], 'shareWithDisplayNameUnique' => 'test1'],
|
||||
],
|
||||
true,
|
||||
false,
|
||||
|
@ -219,8 +219,8 @@ class UserPluginTest extends TestCase {
|
|||
],
|
||||
[],
|
||||
[
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test1'], 'status' => []],
|
||||
['label' => 'Test Two', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test2'], 'status' => []],
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test1'], 'status' => [], 'shareWithDisplayNameUnique' => 'test1'],
|
||||
['label' => 'Test Two', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test2'], 'status' => [], 'shareWithDisplayNameUnique' => 'test2'],
|
||||
],
|
||||
false,
|
||||
false,
|
||||
|
@ -250,11 +250,11 @@ class UserPluginTest extends TestCase {
|
|||
$this->getUserMock('test2', 'Test Two'),
|
||||
],
|
||||
[
|
||||
['label' => 'Test', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test0'], 'status' => []],
|
||||
['label' => 'Test', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test0'], 'status' => [], 'shareWithDisplayNameUnique' => 'test0'],
|
||||
],
|
||||
[
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test1'], 'status' => []],
|
||||
['label' => 'Test Two', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test2'], 'status' => []],
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test1'], 'status' => [], 'shareWithDisplayNameUnique' => 'test1'],
|
||||
['label' => 'Test Two', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test2'], 'status' => [], 'shareWithDisplayNameUnique' => 'test2'],
|
||||
],
|
||||
false,
|
||||
false,
|
||||
|
@ -270,7 +270,7 @@ class UserPluginTest extends TestCase {
|
|||
$this->getUserMock('test2', 'Test Two'),
|
||||
],
|
||||
[
|
||||
['label' => 'Test', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test0'], 'status' => []],
|
||||
['label' => 'Test', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test0'], 'status' => [], 'shareWithDisplayNameUnique' => 'test0'],
|
||||
],
|
||||
[],
|
||||
true,
|
||||
|
@ -287,7 +287,7 @@ class UserPluginTest extends TestCase {
|
|||
],
|
||||
[],
|
||||
[
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test1'], 'status' => []],
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test1'], 'status' => [], 'shareWithDisplayNameUnique' => 'test1'],
|
||||
],
|
||||
true,
|
||||
false,
|
||||
|
@ -325,8 +325,8 @@ class UserPluginTest extends TestCase {
|
|||
],
|
||||
[],
|
||||
[
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test1'], 'status' => []],
|
||||
['label' => 'Test Two', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test2'], 'status' => []],
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test1'], 'status' => [], 'shareWithDisplayNameUnique' => 'test1'],
|
||||
['label' => 'Test Two', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test2'], 'status' => [], 'shareWithDisplayNameUnique' => 'test2'],
|
||||
],
|
||||
true,
|
||||
false,
|
||||
|
@ -373,10 +373,10 @@ class UserPluginTest extends TestCase {
|
|||
]],
|
||||
],
|
||||
[
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'], 'status' => []],
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'], 'status' => [], 'shareWithDisplayNameUnique' => 'test'],
|
||||
],
|
||||
[
|
||||
['label' => 'Test Two', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test2'], 'status' => []],
|
||||
['label' => 'Test Two', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test2'], 'status' => [], 'shareWithDisplayNameUnique' => 'test2'],
|
||||
],
|
||||
false,
|
||||
false,
|
||||
|
@ -399,7 +399,7 @@ class UserPluginTest extends TestCase {
|
|||
]],
|
||||
],
|
||||
[
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'], 'status' => []],
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'], 'status' => [], 'shareWithDisplayNameUnique' => 'test'],
|
||||
],
|
||||
[],
|
||||
true,
|
||||
|
@ -618,10 +618,10 @@ class UserPluginTest extends TestCase {
|
|||
}, $matchingUsers);
|
||||
|
||||
$mappedResultExact = array_map(function ($user) {
|
||||
return ['label' => $user, 'value' => ['shareType' => 0, 'shareWith' => $user], 'status' => []];
|
||||
return ['label' => $user, 'value' => ['shareType' => 0, 'shareWith' => $user], 'status' => [], 'shareWithDisplayNameUnique' => $user];
|
||||
}, $result['exact']);
|
||||
$mappedResultWide = array_map(function ($user) {
|
||||
return ['label' => $user, 'value' => ['shareType' => 0, 'shareWith' => $user], 'status' => []];
|
||||
return ['label' => $user, 'value' => ['shareType' => 0, 'shareWith' => $user], 'status' => [], 'shareWithDisplayNameUnique' => $user];
|
||||
}, $result['wide']);
|
||||
|
||||
$this->userManager->expects($this->once())
|
||||
|
|
Loading…
Reference in New Issue