mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
Merge pull request #23017 from nextcloud/enh/distinguish-users
This commit is contained in:
commit
b56d7f9f4e
15 changed files with 96 additions and 28 deletions
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()]);
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
:href="share.shareWithLink"
|
||||
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>
|
||||
|
|
@ -402,6 +402,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,
|
||||
},
|
||||
},
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -241,7 +241,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)
|
||||
|
|
@ -398,6 +418,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 entity link
|
||||
*
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -162,6 +162,7 @@ class UserPlugin implements ISearchPlugin {
|
|||
'shareType' => IShare::TYPE_USER,
|
||||
'shareWith' => $uid,
|
||||
],
|
||||
'shareWithDisplayNameUnique' => !empty($userEmail) ? $userEmail : $uid,
|
||||
'status' => $status,
|
||||
];
|
||||
} else {
|
||||
|
|
@ -186,6 +187,7 @@ class UserPlugin implements ISearchPlugin {
|
|||
'shareType' => IShare::TYPE_USER,
|
||||
'shareWith' => $uid,
|
||||
],
|
||||
'shareWithDisplayNameUnique' => !empty($userEmail) ? $userEmail : $uid,
|
||||
'status' => $status,
|
||||
];
|
||||
}
|
||||
|
|
@ -207,6 +209,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 = [
|
||||
|
|
@ -227,6 +231,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'], 'icon' => 'icon-user', 'subline' => null, 'status' => []],
|
||||
['label' => 'Test', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'], 'icon' => 'icon-user', 'subline' => null, 'status' => [], 'shareWithDisplayNameUnique' => 'test'],
|
||||
], [], true, $this->getUserMock('test', 'Test'),
|
||||
],
|
||||
[
|
||||
'test', false, false, [], [],
|
||||
[
|
||||
['label' => 'Test', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'], 'icon' => 'icon-user', 'subline' => null, 'status' => []],
|
||||
['label' => 'Test', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'], 'icon' => 'icon-user', 'subline' => null, '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'], 'icon' => 'icon-user', 'subline' => null, 'status' => []],
|
||||
['label' => 'Test', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'], 'icon' => 'icon-user', 'subline' => null, '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'], 'icon' => 'icon-user', 'subline' => null, 'status' => []],
|
||||
['label' => 'Test', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'], 'icon' => 'icon-user', 'subline' => null, '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'], 'icon' => 'icon-user', 'subline' => null, 'status' => []],
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test1'], 'icon' => 'icon-user', 'subline' => null, 'status' => [], 'shareWithDisplayNameUnique' => 'test1'],
|
||||
],
|
||||
true,
|
||||
false,
|
||||
|
|
@ -219,8 +219,8 @@ class UserPluginTest extends TestCase {
|
|||
],
|
||||
[],
|
||||
[
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test1'], 'icon' => 'icon-user', 'subline' => null, 'status' => []],
|
||||
['label' => 'Test Two', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test2'], 'icon' => 'icon-user', 'subline' => null, 'status' => []],
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test1'], 'icon' => 'icon-user', 'subline' => null, 'status' => [], 'shareWithDisplayNameUnique' => 'test1'],
|
||||
['label' => 'Test Two', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test2'], 'icon' => 'icon-user', 'subline' => null, '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'], 'icon' => 'icon-user', 'subline' => null, 'status' => []],
|
||||
['label' => 'Test', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test0'], 'icon' => 'icon-user', 'subline' => null, 'status' => [], 'shareWithDisplayNameUnique' => 'test0'],
|
||||
],
|
||||
[
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test1'], 'icon' => 'icon-user', 'subline' => null, 'status' => []],
|
||||
['label' => 'Test Two', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test2'], 'icon' => 'icon-user', 'subline' => null, 'status' => []],
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test1'], 'icon' => 'icon-user', 'subline' => null, 'status' => [], 'shareWithDisplayNameUnique' => 'test1'],
|
||||
['label' => 'Test Two', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test2'], 'icon' => 'icon-user', 'subline' => null, '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'], 'icon' => 'icon-user', 'subline' => null, 'status' => []],
|
||||
['label' => 'Test', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test0'], 'icon' => 'icon-user', 'subline' => null, 'status' => [], 'shareWithDisplayNameUnique' => 'test0'],
|
||||
],
|
||||
[],
|
||||
true,
|
||||
|
|
@ -287,7 +287,7 @@ class UserPluginTest extends TestCase {
|
|||
],
|
||||
[],
|
||||
[
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test1'], 'icon' => 'icon-user', 'subline' => null, 'status' => []],
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test1'], 'icon' => 'icon-user', 'subline' => null, 'status' => [], 'shareWithDisplayNameUnique' => 'test1'],
|
||||
],
|
||||
true,
|
||||
false,
|
||||
|
|
@ -325,8 +325,8 @@ class UserPluginTest extends TestCase {
|
|||
],
|
||||
[],
|
||||
[
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test1'], 'icon' => 'icon-user', 'subline' => null, 'status' => []],
|
||||
['label' => 'Test Two', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test2'], 'icon' => 'icon-user', 'subline' => null, 'status' => []],
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test1'], 'icon' => 'icon-user', 'subline' => null, 'status' => [], 'shareWithDisplayNameUnique' => 'test1'],
|
||||
['label' => 'Test Two', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test2'], 'icon' => 'icon-user', 'subline' => null, 'status' => [], 'shareWithDisplayNameUnique' => 'test2'],
|
||||
],
|
||||
true,
|
||||
false,
|
||||
|
|
@ -373,10 +373,10 @@ class UserPluginTest extends TestCase {
|
|||
]],
|
||||
],
|
||||
[
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'], 'icon' => 'icon-user', 'subline' => null, 'status' => []],
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'], 'icon' => 'icon-user', 'subline' => null, 'status' => [], 'shareWithDisplayNameUnique' => 'test'],
|
||||
],
|
||||
[
|
||||
['label' => 'Test Two', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test2'], 'icon' => 'icon-user', 'subline' => null, 'status' => []],
|
||||
['label' => 'Test Two', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test2'], 'icon' => 'icon-user', 'subline' => null, 'status' => [], 'shareWithDisplayNameUnique' => 'test2'],
|
||||
],
|
||||
false,
|
||||
false,
|
||||
|
|
@ -399,7 +399,7 @@ class UserPluginTest extends TestCase {
|
|||
]],
|
||||
],
|
||||
[
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'], 'icon' => 'icon-user', 'subline' => null, 'status' => []],
|
||||
['label' => 'Test One', 'value' => ['shareType' => IShare::TYPE_USER, 'shareWith' => 'test'], 'icon' => 'icon-user', 'subline' => null, '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], 'icon' => 'icon-user', 'subline' => null, 'status' => []];
|
||||
return ['label' => $user, 'value' => ['shareType' => 0, 'shareWith' => $user], 'icon' => 'icon-user', 'subline' => null, 'status' => [], 'shareWithDisplayNameUnique' => $user];
|
||||
}, $result['exact']);
|
||||
$mappedResultWide = array_map(function ($user) {
|
||||
return ['label' => $user, 'value' => ['shareType' => 0, 'shareWith' => $user], 'icon' => 'icon-user', 'subline' => null, 'status' => []];
|
||||
return ['label' => $user, 'value' => ['shareType' => 0, 'shareWith' => $user], 'icon' => 'icon-user', 'subline' => null, 'status' => [], 'shareWithDisplayNameUnique' => $user];
|
||||
}, $result['wide']);
|
||||
|
||||
$this->userManager->expects($this->once())
|
||||
|
|
|
|||
Loading…
Reference in a new issue