Show unique displayname context in the sharing input
Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
parent
177a30b07f
commit
d77b3345b2
|
@ -257,7 +257,7 @@ export default {
|
||||||
this.suggestions = allSuggestions.map(item => {
|
this.suggestions = allSuggestions.map(item => {
|
||||||
// Make sure that items with duplicate displayName get the shareWith applied as a description
|
// Make sure that items with duplicate displayName get the shareWith applied as a description
|
||||||
if (nameCounts[item.displayName] > 1 && !item.desc) {
|
if (nameCounts[item.displayName] > 1 && !item.desc) {
|
||||||
return { ...item, desc: item.shareWith }
|
return { ...item, desc: item.shareWithDisplayNameUnique }
|
||||||
}
|
}
|
||||||
return item
|
return item
|
||||||
})
|
})
|
||||||
|
@ -413,6 +413,7 @@ export default {
|
||||||
isNoUser: result.value.shareType !== this.SHARE_TYPES.SHARE_TYPE_USER,
|
isNoUser: result.value.shareType !== this.SHARE_TYPES.SHARE_TYPE_USER,
|
||||||
displayName: result.name || result.label,
|
displayName: result.name || result.label,
|
||||||
desc,
|
desc,
|
||||||
|
shareWithDisplayNameUnique: result.shareWithDisplayNameUnique || '',
|
||||||
icon: this.shareTypeToIcon(result.value.shareType),
|
icon: this.shareTypeToIcon(result.value.shareType),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -136,6 +136,8 @@ class MailPlugin implements ISearchPlugin {
|
||||||
'shareType' => Share::SHARE_TYPE_USER,
|
'shareType' => Share::SHARE_TYPE_USER,
|
||||||
'shareWith' => $cloud->getUser(),
|
'shareWith' => $cloud->getUser(),
|
||||||
],
|
],
|
||||||
|
'shareWithDisplayNameUnique' => !empty($emailAddress) ? $emailAddress : $cloud->getUser()
|
||||||
|
|
||||||
]];
|
]];
|
||||||
$searchResult->addResultSet($userType, [], $singleResult);
|
$searchResult->addResultSet($userType, [], $singleResult);
|
||||||
$searchResult->markExactIdMatch($emailType);
|
$searchResult->markExactIdMatch($emailType);
|
||||||
|
@ -170,6 +172,7 @@ class MailPlugin implements ISearchPlugin {
|
||||||
'shareType' => Share::SHARE_TYPE_USER,
|
'shareType' => Share::SHARE_TYPE_USER,
|
||||||
'shareWith' => $cloud->getUser(),
|
'shareWith' => $cloud->getUser(),
|
||||||
],
|
],
|
||||||
|
'shareWithDisplayNameUnique' => !empty($emailAddress) ? $emailAddress : $cloud->getUser()
|
||||||
];
|
];
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -103,7 +103,8 @@ class RemotePlugin implements ISearchPlugin {
|
||||||
'value' => [
|
'value' => [
|
||||||
'shareType' => Share::SHARE_TYPE_USER,
|
'shareType' => Share::SHARE_TYPE_USER,
|
||||||
'shareWith' => $remoteUser
|
'shareWith' => $remoteUser
|
||||||
]
|
],
|
||||||
|
'shareWithDisplayNameUnique' => $contact['EMAIL'] !== null && $contact['EMAIL'] !== '' ? $contact['EMAIL'] : $contact['UID'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -126,6 +126,7 @@ class UserPlugin implements ISearchPlugin {
|
||||||
'shareType' => Share::SHARE_TYPE_USER,
|
'shareType' => Share::SHARE_TYPE_USER,
|
||||||
'shareWith' => $uid,
|
'shareWith' => $uid,
|
||||||
],
|
],
|
||||||
|
'shareWithDisplayNameUnique' => !empty($userEmail) ? $userEmail : $uid,
|
||||||
];
|
];
|
||||||
} else {
|
} else {
|
||||||
$addToWideResults = false;
|
$addToWideResults = false;
|
||||||
|
@ -147,6 +148,7 @@ class UserPlugin implements ISearchPlugin {
|
||||||
'shareType' => IShare::TYPE_USER,
|
'shareType' => IShare::TYPE_USER,
|
||||||
'shareWith' => $uid,
|
'shareWith' => $uid,
|
||||||
],
|
],
|
||||||
|
'shareWithDisplayNameUnique' => !empty($userEmail) ? $userEmail : $uid,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -166,12 +168,15 @@ class UserPlugin implements ISearchPlugin {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($addUser) {
|
if ($addUser) {
|
||||||
|
$uid = $user->getUID();
|
||||||
|
$userEmail = $user->getEMailAddress();
|
||||||
$result['exact'][] = [
|
$result['exact'][] = [
|
||||||
'label' => $user->getDisplayName(),
|
'label' => $user->getDisplayName(),
|
||||||
'value' => [
|
'value' => [
|
||||||
'shareType' => Share::SHARE_TYPE_USER,
|
'shareType' => Share::SHARE_TYPE_USER,
|
||||||
'shareWith' => $user->getUID(),
|
'shareWith' => $user->getUID(),
|
||||||
],
|
],
|
||||||
|
'shareWithDisplayNameUnique' => $userEmail !== null && $userEmail !== '' ? $userEmail : $uid,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -385,7 +385,7 @@ class MailPluginTest extends TestCase {
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
false,
|
false,
|
||||||
['users' => [], 'exact' => ['users' => [['uuid' => 'uid1', 'name' => 'User', 'label' => 'User (test@example.com)','value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test'],]]]],
|
['users' => [], 'exact' => ['users' => [['uuid' => 'uid1', 'name' => 'User', 'label' => 'User (test@example.com)','value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test'], 'shareWithDisplayNameUnique' => 'test@example.com']]]],
|
||||||
true,
|
true,
|
||||||
false,
|
false,
|
||||||
],
|
],
|
||||||
|
@ -443,8 +443,8 @@ class MailPluginTest extends TestCase {
|
||||||
],
|
],
|
||||||
true,
|
true,
|
||||||
['users' => [
|
['users' => [
|
||||||
['uuid' => 'uid1', 'name' => 'User1', 'label' => 'User1 (test@example.com)', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']],
|
['uuid' => 'uid1', 'name' => 'User1', 'label' => 'User1 (test@example.com)', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1'], 'shareWithDisplayNameUnique' => 'test@example.com'],
|
||||||
['uuid' => 'uid2', 'name' => 'User2', 'label' => 'User2 (test@example.de)', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test2']],
|
['uuid' => 'uid2', 'name' => 'User2', 'label' => 'User2 (test@example.de)', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test2'], 'shareWithDisplayNameUnique' => 'test@example.de'],
|
||||||
], 'emails' => [], 'exact' => ['users' => [], 'emails' => []]],
|
], 'emails' => [], 'exact' => ['users' => [], 'emails' => []]],
|
||||||
false,
|
false,
|
||||||
true,
|
true,
|
||||||
|
@ -603,7 +603,7 @@ class MailPluginTest extends TestCase {
|
||||||
'UID' => 'User'
|
'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,
|
||||||
false,
|
false,
|
||||||
[
|
[
|
||||||
|
|
|
@ -144,13 +144,13 @@ class UserPluginTest extends TestCase {
|
||||||
[
|
[
|
||||||
'test', false, true, [], [],
|
'test', false, true, [], [],
|
||||||
[
|
[
|
||||||
['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test']],
|
['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test'], 'shareWithDisplayNameUnique' => 'test'],
|
||||||
], [], true, $this->getUserMock('test', 'Test'),
|
], [], true, $this->getUserMock('test', 'Test'),
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'test', false, false, [], [],
|
'test', false, false, [], [],
|
||||||
[
|
[
|
||||||
['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test']],
|
['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test'], 'shareWithDisplayNameUnique' => 'test'],
|
||||||
], [], true, $this->getUserMock('test', 'Test'),
|
], [], true, $this->getUserMock('test', 'Test'),
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
@ -164,13 +164,13 @@ class UserPluginTest extends TestCase {
|
||||||
[
|
[
|
||||||
'test', true, true, ['test-group'], [['test-group', 'test', 2, 0, []]],
|
'test', true, true, ['test-group'], [['test-group', 'test', 2, 0, []]],
|
||||||
[
|
[
|
||||||
['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test']],
|
['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test'], 'shareWithDisplayNameUnique' => 'test'],
|
||||||
], [], true, $this->getUserMock('test', 'Test'),
|
], [], true, $this->getUserMock('test', 'Test'),
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'test', true, false, ['test-group'], [['test-group', 'test', 2, 0, []]],
|
'test', true, false, ['test-group'], [['test-group', 'test', 2, 0, []]],
|
||||||
[
|
[
|
||||||
['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test']],
|
['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test'], 'shareWithDisplayNameUnique' => 'test'],
|
||||||
], [], true, $this->getUserMock('test', 'Test'),
|
], [], true, $this->getUserMock('test', 'Test'),
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
@ -183,7 +183,7 @@ class UserPluginTest extends TestCase {
|
||||||
],
|
],
|
||||||
[],
|
[],
|
||||||
[
|
[
|
||||||
['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']],
|
['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1'], 'shareWithDisplayNameUnique' => 'test1'],
|
||||||
],
|
],
|
||||||
true,
|
true,
|
||||||
false,
|
false,
|
||||||
|
@ -212,8 +212,8 @@ class UserPluginTest extends TestCase {
|
||||||
],
|
],
|
||||||
[],
|
[],
|
||||||
[
|
[
|
||||||
['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']],
|
['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1'], 'shareWithDisplayNameUnique' => 'test1'],
|
||||||
['label' => 'Test Two', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test2']],
|
['label' => 'Test Two', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test2'], 'shareWithDisplayNameUnique' => 'test2'],
|
||||||
],
|
],
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
@ -243,11 +243,11 @@ class UserPluginTest extends TestCase {
|
||||||
$this->getUserMock('test2', 'Test Two'),
|
$this->getUserMock('test2', 'Test Two'),
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test0']],
|
['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test0'], 'shareWithDisplayNameUnique' => 'test0'],
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']],
|
['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1'], 'shareWithDisplayNameUnique' => 'test1'],
|
||||||
['label' => 'Test Two', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test2']],
|
['label' => 'Test Two', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test2'], 'shareWithDisplayNameUnique' => 'test2'],
|
||||||
],
|
],
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
@ -263,7 +263,7 @@ class UserPluginTest extends TestCase {
|
||||||
$this->getUserMock('test2', 'Test Two'),
|
$this->getUserMock('test2', 'Test Two'),
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test0']],
|
['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test0'], 'shareWithDisplayNameUnique' => 'test0'],
|
||||||
],
|
],
|
||||||
[],
|
[],
|
||||||
true,
|
true,
|
||||||
|
@ -280,7 +280,7 @@ class UserPluginTest extends TestCase {
|
||||||
],
|
],
|
||||||
[],
|
[],
|
||||||
[
|
[
|
||||||
['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']],
|
['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1'], 'shareWithDisplayNameUnique' => 'test1'],
|
||||||
],
|
],
|
||||||
true,
|
true,
|
||||||
false,
|
false,
|
||||||
|
@ -318,8 +318,8 @@ class UserPluginTest extends TestCase {
|
||||||
],
|
],
|
||||||
[],
|
[],
|
||||||
[
|
[
|
||||||
['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']],
|
['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1'], 'shareWithDisplayNameUnique' => 'test1'],
|
||||||
['label' => 'Test Two', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test2']],
|
['label' => 'Test Two', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test2'], 'shareWithDisplayNameUnique' => 'test2'],
|
||||||
],
|
],
|
||||||
true,
|
true,
|
||||||
false,
|
false,
|
||||||
|
@ -366,10 +366,10 @@ class UserPluginTest extends TestCase {
|
||||||
]],
|
]],
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test']],
|
['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test'], 'shareWithDisplayNameUnique' => 'test'],
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
['label' => 'Test Two', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test2']],
|
['label' => 'Test Two', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test2'], 'shareWithDisplayNameUnique' => 'test2'],
|
||||||
],
|
],
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
@ -392,7 +392,7 @@ class UserPluginTest extends TestCase {
|
||||||
]],
|
]],
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test']],
|
['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test'], 'shareWithDisplayNameUnique' => 'test'],
|
||||||
],
|
],
|
||||||
[],
|
[],
|
||||||
true,
|
true,
|
||||||
|
@ -611,10 +611,10 @@ class UserPluginTest extends TestCase {
|
||||||
}, $matchingUsers);
|
}, $matchingUsers);
|
||||||
|
|
||||||
$mappedResultExact = array_map(function ($user) {
|
$mappedResultExact = array_map(function ($user) {
|
||||||
return ['label' => $user, 'value' => ['shareType' => 0, 'shareWith' => $user]];
|
return ['label' => $user, 'value' => ['shareType' => 0, 'shareWith' => $user], 'shareWithDisplayNameUnique' => $user];
|
||||||
}, $result['exact']);
|
}, $result['exact']);
|
||||||
$mappedResultWide = array_map(function ($user) {
|
$mappedResultWide = array_map(function ($user) {
|
||||||
return ['label' => $user, 'value' => ['shareType' => 0, 'shareWith' => $user]];
|
return ['label' => $user, 'value' => ['shareType' => 0, 'shareWith' => $user], 'shareWithDisplayNameUnique' => $user];
|
||||||
}, $result['wide']);
|
}, $result['wide']);
|
||||||
|
|
||||||
$this->userManager->expects($this->once())
|
$this->userManager->expects($this->once())
|
||||||
|
|
Loading…
Reference in New Issue