@@ -13,23 +13,25 @@ import { cloneDeep, findIndex } from "@microsoft/sp-lodash-subset";
13
13
export default class SPPeopleSearchService {
14
14
private cachedPersonas : { [ property : string ] : IUserInfo [ ] } ;
15
15
private cachedLocalUsers : { [ siteUrl : string ] : IUserInfo [ ] } ;
16
+ private absoluteWebUrl : string ;
16
17
17
18
/**
18
19
* Service constructor
19
20
*/
20
21
constructor ( private context : WebPartContext | ExtensionContext ) {
21
22
this . cachedPersonas = { } ;
22
23
this . cachedLocalUsers = { } ;
23
- this . cachedLocalUsers [ this . context . pageContext . web . absoluteUrl ] = [ ] ;
24
+ this . absoluteWebUrl = this . context . pageContext . web . absoluteUrl ;
25
+ this . cachedLocalUsers [ this . absoluteWebUrl ] = [ ] ;
24
26
}
25
27
26
28
/**
27
- * Generate the user photo link
29
+ * Generate the user photo link using SharePoint user photo endpoint.
28
30
*
29
31
* @param value
30
32
*/
31
33
public generateUserPhotoLink ( value : string ) : string {
32
- return `https://outlook.office365.com/owa/service.svc/s/GetPersonaPhoto?email =${ value } &UA=0& size=HR96x96 ` ;
34
+ return `${ this . absoluteWebUrl } /_layouts/15/userphoto.aspx?accountname =${ encodeURIComponent ( value ) } & size=M ` ;
33
35
}
34
36
35
37
/**
@@ -42,7 +44,7 @@ export default class SPPeopleSearchService {
42
44
* @param principalTypes
43
45
*/
44
46
public getSumOfPrincipalTypes ( principalTypes : PrincipalType [ ] ) {
45
- return ! ! principalTypes && principalTypes . length > 0 ? principalTypes . reduce ( ( a , b ) => a + b , 0 ) : 1 ;
47
+ return ! ! principalTypes && principalTypes . length > 0 ? principalTypes . reduce ( ( a , b ) => a + b , 0 ) : 1 ;
46
48
}
47
49
48
50
/**
@@ -228,7 +230,7 @@ export default class SPPeopleSearchService {
228
230
const userResults = values . map ( element => {
229
231
switch ( element . EntityType ) {
230
232
case 'User' :
231
- let email : string = element . EntityData . Email !== null ? element . EntityData . Email : element . Description ;
233
+ let email : string = element . EntityData . Email !== null ? element . EntityData . Email : element . Description ;
232
234
return {
233
235
id : element . Key ,
234
236
imageUrl : this . generateUserPhotoLink ( email ) ,
@@ -336,7 +338,7 @@ export default class SPPeopleSearchService {
336
338
*/
337
339
private searchPeopleFromMock ( query : string ) : Promise < Array < IPeoplePickerUserItem > > {
338
340
let mockClient : PeoplePickerMockClient = new PeoplePickerMockClient ( ) ;
339
- let filterValue = { valToCompare : query } ;
341
+ let filterValue = { valToCompare : query } ;
340
342
return new Promise < Array < IPeoplePickerUserItem > > ( ( resolve ) => resolve ( MockUsers . filter ( mockClient . filterPeople , filterValue ) ) ) ;
341
343
}
342
344
}
0 commit comments