1 | import { IPrincipalInfo } from "../types.js";
|
2 | import { _Web } from "../webs/types.js";
|
3 | import { _File } from "../files/types.js";
|
4 | import { _Item } from "../items/types.js";
|
5 | import { _Folder } from "../folders/types.js";
|
6 | export declare type ShareableQueryable = _Web | _File | _Folder | _Item;
|
7 | /**
|
8 | * Indicates the role of the sharing link
|
9 | */
|
10 | export declare enum SharingRole {
|
11 | None = 0,
|
12 | View = 1,
|
13 | Edit = 2,
|
14 | Owner = 3
|
15 | }
|
16 | export declare enum SPSharedObjectType {
|
17 | Unknown = 0,
|
18 | File = 1,
|
19 | Folder = 2,
|
20 | Item = 3,
|
21 | List = 4,
|
22 | Web = 5,
|
23 | Max = 6
|
24 | }
|
25 | export declare enum SharingDomainRestrictionMode {
|
26 | None = 0,
|
27 | AllowList = 1,
|
28 | BlockList = 2
|
29 | }
|
30 | export declare enum SharingOperationStatusCode {
|
31 | /**
|
32 | * The share operation completed without errors.
|
33 | */
|
34 | CompletedSuccessfully = 0,
|
35 | /**
|
36 | * The share operation completed and generated requests for access.
|
37 | */
|
38 | AccessRequestsQueued = 1,
|
39 | /**
|
40 | * The share operation failed as there were no resolved users.
|
41 | */
|
42 | NoResolvedUsers = -1,
|
43 | /**
|
44 | * The share operation failed due to insufficient permissions.
|
45 | */
|
46 | AccessDenied = -2,
|
47 | /**
|
48 | * The share operation failed when attempting a cross site share, which is not supported.
|
49 | */
|
50 | CrossSiteRequestNotSupported = -3,
|
51 | /**
|
52 | * The sharing operation failed due to an unknown error.
|
53 | */
|
54 | UnknowError = -4,
|
55 | /**
|
56 | * The text you typed is too long. Please shorten it.
|
57 | */
|
58 | EmailBodyTooLong = -5,
|
59 | /**
|
60 | * The maximum number of unique scopes in the list has been exceeded.
|
61 | */
|
62 | ListUniqueScopesExceeded = -6,
|
63 | /**
|
64 | * The share operation failed because a sharing capability is disabled in the site.
|
65 | */
|
66 | CapabilityDisabled = -7,
|
67 | /**
|
68 | * The specified object for the share operation is not supported.
|
69 | */
|
70 | ObjectNotSupported = -8,
|
71 | /**
|
72 | * A SharePoint group cannot contain another SharePoint group.
|
73 | */
|
74 | NestedGroupsNotSupported = -9
|
75 | }
|
76 | export declare enum SharingLinkKind {
|
77 | /**
|
78 | * Uninitialized link
|
79 | */
|
80 | Uninitialized = 0,
|
81 | /**
|
82 | * Direct link to the object being shared
|
83 | */
|
84 | Direct = 1,
|
85 | /**
|
86 | * Organization-shareable link to the object being shared with view permissions
|
87 | */
|
88 | OrganizationView = 2,
|
89 | /**
|
90 | * Organization-shareable link to the object being shared with edit permissions
|
91 | */
|
92 | OrganizationEdit = 3,
|
93 | /**
|
94 | * View only anonymous link
|
95 | */
|
96 | AnonymousView = 4,
|
97 | /**
|
98 | * Read/Write anonymous link
|
99 | */
|
100 | AnonymousEdit = 5,
|
101 | /**
|
102 | * Flexible sharing Link where properties can change without affecting link URL
|
103 | */
|
104 | Flexible = 6
|
105 | }
|
106 | export interface ISharedFuncs {
|
107 | /**
|
108 | * Gets a link suitable for sharing for this item
|
109 | *
|
110 | * @param kind The type of link to share
|
111 | * @param expiration The optional expiration date
|
112 | */
|
113 | getShareLink(kind: SharingLinkKind, expiration?: Date): Promise<IShareLinkResponse>;
|
114 | /**
|
115 | * Checks Permissions on the list of Users and returns back role the users have on the Item.
|
116 | *
|
117 | * @param recipients The array of Entities for which Permissions need to be checked.
|
118 | */
|
119 | checkSharingPermissions(recipients: ISharingRecipient[]): Promise<ISharingEntityPermission[]>;
|
120 | /**
|
121 | * Get Sharing Information.
|
122 | *
|
123 | * @param request The SharingInformationRequest Object.
|
124 | * @param expands Expand more fields.
|
125 | *
|
126 | */
|
127 | getSharingInformation(request?: ISharingInformationRequest, expands?: string[]): Promise<ISharingInformation>;
|
128 | /**
|
129 | * Gets the sharing settings of an item.
|
130 | *
|
131 | * @param useSimplifiedRoles Determines whether to use simplified roles.
|
132 | */
|
133 | getObjectSharingSettings(useSimplifiedRoles?: boolean): Promise<IObjectSharingSettings>;
|
134 | /**
|
135 | * Unshare this item
|
136 | */
|
137 | unshare(): Promise<ISharingResult>;
|
138 | /**
|
139 | * Deletes a sharing link by kind
|
140 | *
|
141 | * @param kind Deletes a sharing link by the kind of link
|
142 | */
|
143 | deleteSharingLinkByKind(kind: SharingLinkKind): Promise<void>;
|
144 | /**
|
145 | * Removes the specified link to the item.
|
146 | *
|
147 | * @param kind The kind of link to be deleted.
|
148 | * @param shareId
|
149 | */
|
150 | unshareLink(kind: SharingLinkKind, shareId?: string): Promise<void>;
|
151 | }
|
152 | export interface IShareObjectOptions {
|
153 | url?: string;
|
154 | loginNames?: string | string[];
|
155 | role: SharingRole;
|
156 | emailData?: ISharingEmailData;
|
157 | group?: RoleType;
|
158 | propagateAcl?: boolean;
|
159 | includeAnonymousLinkInEmail?: boolean;
|
160 | useSimplifiedRoles?: boolean;
|
161 | }
|
162 | /**
|
163 | * Represents email data.
|
164 | */
|
165 | export interface ISharingEmailData {
|
166 | /**
|
167 | * The e-mail subject.
|
168 | */
|
169 | subject?: string;
|
170 | /**
|
171 | * The e-mail body.
|
172 | */
|
173 | body: string;
|
174 | }
|
175 | export interface IShareLinkSettings {
|
176 | /**
|
177 | * The optional unique identifier of an existing sharing link to be retrieved and updated if necessary.
|
178 | */
|
179 | shareId?: string;
|
180 | /**
|
181 | * The kind of the sharing link to be created.
|
182 | */
|
183 | linkKind: SharingLinkKind;
|
184 | /**
|
185 | * A date/time string for which the format conforms to the ISO 8601:2004(E) complete representation for calendar date and time of day and
|
186 | * which represents the time and date of expiry for the anonymous link. Both the minutes and hour value must be specified for the
|
187 | * difference between the local and UTC time. Midnight is represented as 00:00:00.
|
188 | */
|
189 | expiration?: string;
|
190 | /**
|
191 | * The role to be used for the sharing link. This is required for Flexible links, and ignored for legacy link kinds.
|
192 | */
|
193 | role?: SharingRole;
|
194 | /**
|
195 | * Indicates if the sharing link, should support anonymous access. This is required for Flexible links, and ignored for legacy link kinds.
|
196 | */
|
197 | allowAnonymousAccess?: boolean;
|
198 | }
|
199 | export interface IShareLinkRequest {
|
200 | /**
|
201 | * A string of JSON representing users in people picker format. Only needed if an e-mail notification should be sent.
|
202 | */
|
203 | peoplePickerInput?: string;
|
204 | /**
|
205 | * Whether to create the link or not if it doesn't exist yet.
|
206 | */
|
207 | createLink: boolean;
|
208 | /**
|
209 | * The e-mail data. Only needed if an e-mail notification should be sent.
|
210 | */
|
211 | emailData?: ISharingEmailData;
|
212 | /**
|
213 | * The settings for the sharing link to be created/updated
|
214 | */
|
215 | settings: IShareLinkSettings;
|
216 | }
|
217 | /**
|
218 | * Represents a response for sharing a link
|
219 | */
|
220 | export interface IShareLinkResponse {
|
221 | /**
|
222 | * A SharingLinkInfo that represents the sharing link. Will be populated if sharing operation is returning a sharing link.
|
223 | */
|
224 | sharingLinkInfo: ISharingLinkInfo;
|
225 | }
|
226 | export interface ISharingLinkInfo {
|
227 | AllowsAnonymousAccess: boolean;
|
228 | Created: string;
|
229 | CreatedBy: IPrincipalInfo;
|
230 | Expiration: string;
|
231 | IsActive: boolean;
|
232 | IsEditLink: boolean;
|
233 | IsFormsLink: boolean;
|
234 | IsUnhealthy: boolean;
|
235 | LastModified: string;
|
236 | LastModifiedBy: IPrincipalInfo;
|
237 | LinkKind: SharingLinkKind;
|
238 | ShareId: string;
|
239 | Url: string;
|
240 | }
|
241 | export interface ISharingResult {
|
242 | /**
|
243 | * The relative URL of a page which can be navigated to, to show permissions.
|
244 | */
|
245 | PermissionsPageRelativeUrl?: string;
|
246 | /**
|
247 | * A collection of users which have new pending access requests as a result of sharing.
|
248 | */
|
249 | UsersWithAccessRequests?: any[];
|
250 | /**
|
251 | * An enumeration which summarizes the result of the sharing operation.
|
252 | */
|
253 | StatusCode?: SharingOperationStatusCode;
|
254 | /**
|
255 | * An error message about the failure if sharing was unsuccessful.
|
256 | */
|
257 | ErrorMessage?: string;
|
258 | /**
|
259 | * A list of UserSharingResults from attempting to share a securable with unique permissions.
|
260 | */
|
261 | UniquelyPermissionedUsers?: IUserSharingResult[];
|
262 | /**
|
263 | * Groups which were granted permissions.
|
264 | */
|
265 | GroupsSharedWith?: any[];
|
266 | /**
|
267 | * The SharePoint group users were added to, if any were added to a group.
|
268 | */
|
269 | GroupUsersAddedTo?: any;
|
270 | /**
|
271 | * A list of users being added to a SharePoint permissions goup
|
272 | */
|
273 | UsersAddedToGroup?: IUserSharingResult[];
|
274 | /**
|
275 | * A list of SPInvitationCreationResult for external users being invited to have access.
|
276 | */
|
277 | InvitedUsers?: IInvitationCreationResult[];
|
278 | /**
|
279 | * The name of the securable being shared.
|
280 | */
|
281 | Name?: string;
|
282 | /**
|
283 | * The url of the securable being shared.
|
284 | */
|
285 | Url?: string;
|
286 | /**
|
287 | * IconUrl
|
288 | */
|
289 | IconUrl?: string;
|
290 | }
|
291 | export interface IInvitationCreationResult {
|
292 | Succeeded?: boolean;
|
293 | Email?: string;
|
294 | InvitationLink?: string;
|
295 | }
|
296 | export interface IUserSharingResult {
|
297 | IsUserKnown?: boolean;
|
298 | Status?: boolean;
|
299 | Message?: string;
|
300 | User?: string;
|
301 | DisplayName?: string;
|
302 | Email?: string;
|
303 | CurrentRole?: SharingRole;
|
304 | AllowedRoles?: SharingRole[];
|
305 | InvitationLink?: string;
|
306 | }
|
307 | export interface ISharingRecipient {
|
308 | email?: string;
|
309 | alias?: string;
|
310 | }
|
311 | export interface ISharingEntityPermission {
|
312 | /**
|
313 | * The Input Entity provided to the Call.
|
314 | */
|
315 | inputEntity: string;
|
316 | /**
|
317 | * The Resolved Entity after resolving using PeoplePicker API.
|
318 | */
|
319 | resolvedEntity: string;
|
320 | /**
|
321 | * Does the Entity have Access to the Securable Object
|
322 | */
|
323 | hasAccess: boolean;
|
324 | /**
|
325 | * Role of the Entity on ListItem
|
326 | */
|
327 | role: SharingRole;
|
328 | }
|
329 | export interface ISharingInformationRequest {
|
330 | /**
|
331 | * Max Principal's to return.
|
332 | */
|
333 | maxPrincipalsToReturn: number;
|
334 | /**
|
335 | * Supported Features (For future use by Office Client).
|
336 | */
|
337 | clientSupportedFeatures: string;
|
338 | }
|
339 | export interface IObjectSharingSettings {
|
340 | /**
|
341 | * The URL pointing to the containing SPWeb object
|
342 | */
|
343 | WebUrl: string;
|
344 | /**
|
345 | * The unique ID of the parent list (if applicable)
|
346 | */
|
347 | ListId?: string;
|
348 | /**
|
349 | * The list item ID (if applicable)
|
350 | */
|
351 | ItemId?: string;
|
352 | /**
|
353 | * The object title
|
354 | */
|
355 | ItemName: string;
|
356 | /**
|
357 | * The server relative object URL
|
358 | */
|
359 | ItemUrl: string;
|
360 | /**
|
361 | * Contains information about the sharing state of a shareable object
|
362 | */
|
363 | ObjectSharingInformation: any;
|
364 | /**
|
365 | * Boolean indicating whether the sharing context operates under the access request mode
|
366 | */
|
367 | AccessRequestMode: boolean;
|
368 | /**
|
369 | * Boolean indicating whether the sharing context operates under the permissions only mode
|
370 | * (i.e. adding to a group or hiding the groups dropdown in the SharePoint UI)
|
371 | */
|
372 | PermissionsOnlyMode: boolean;
|
373 | /**
|
374 | * URL of the site from which the shared object inherits permissions
|
375 | */
|
376 | InheritingWebLink: string;
|
377 | /**
|
378 | * Boolean flag denoting if guest users are enabled for the site collection
|
379 | */
|
380 | ShareByEmailEnabled: boolean;
|
381 | /**
|
382 | * Boolean indicating whether the current user is a guest user
|
383 | */
|
384 | IsGuestUser: boolean;
|
385 | /**
|
386 | * Boolean indicating whether the site has the standard "Editor" role
|
387 | */
|
388 | HasEditRole: boolean;
|
389 | /**
|
390 | * Boolean indicating whether the site has the standard "Reader" role
|
391 | */
|
392 | HasReadRole: boolean;
|
393 | /**
|
394 | * Boolean indicating whether the object to share is a picture library
|
395 | */
|
396 | IsPictureLibrary: boolean;
|
397 | /**
|
398 | * Boolean indicating whether the folder object can be shared
|
399 | */
|
400 | CanShareFolder: boolean;
|
401 | /**
|
402 | * Boolean indicating whether email invitations can be sent
|
403 | */
|
404 | CanSendEmail: boolean;
|
405 | /**
|
406 | * Default share link type
|
407 | */
|
408 | DefaultShareLinkType: SharingLinkKind;
|
409 | /**
|
410 | * Boolean indicating whether the object to share supports ACL propagation
|
411 | */
|
412 | SupportsAclPropagation: boolean;
|
413 | /**
|
414 | * Boolean indicating whether the current user can only share within the tenancy
|
415 | */
|
416 | CanCurrentUserShareInternally: boolean;
|
417 | /**
|
418 | * Boolean indicating whether the current user can share outside the tenancy, by inviting external users
|
419 | */
|
420 | CanCurrentUserShareExternally: boolean;
|
421 | /**
|
422 | * Boolean indicating whether the current user can retrieve an anonymous View link, if one has already been created
|
423 | * If one has not been created, the user cannot create one
|
424 | */
|
425 | CanCurrentUserRetrieveReadonlyLink: boolean;
|
426 | /**
|
427 | * Boolean indicating whether the current user can create or disable an anonymous Edit link
|
428 | */
|
429 | CanCurrentUserManageReadonlyLink: boolean;
|
430 | /**
|
431 | * Boolean indicating whether the current user can retrieve an anonymous Edit link, if one has already been created
|
432 | * If one has not been created, the user cannot create one
|
433 | */
|
434 | CanCurrentUserRetrieveReadWriteLink: boolean;
|
435 | /**
|
436 | * Boolean indicating whether the current user can create or disable an anonymous Edit link
|
437 | */
|
438 | CanCurrentUserManageReadWriteLink: boolean;
|
439 | /**
|
440 | * Boolean indicating whether the current user can retrieve an organization View link, if one has already been created
|
441 | * If one has not been created, the user cannot create one
|
442 | */
|
443 | CanCurrentUserRetrieveOrganizationReadonlyLink: boolean;
|
444 | /**
|
445 | * Boolean indicating whether the current user can create or disable an organization Edit link
|
446 | */
|
447 | CanCurrentUserManageOrganizationReadonlyLink: boolean;
|
448 | /**
|
449 | * Boolean indicating whether the current user can retrieve an organization Edit link, if one has already been created
|
450 | * If one has not been created, the user cannot create one
|
451 | */
|
452 | CanCurrentUserRetrieveOrganizationReadWriteLink: boolean;
|
453 | /**
|
454 | * Boolean indicating whether the current user can create or disable an organization Edit link
|
455 | */
|
456 | CanCurrentUserManageOrganizationReadWriteLink: boolean;
|
457 | /**
|
458 | * Boolean indicating whether the current user can make use of Share-By-Link
|
459 | */
|
460 | CanSendLink: boolean;
|
461 | /**
|
462 | * Boolean indicating whether the client logic should warn the user
|
463 | * that they are about to share with external email addresses.
|
464 | */
|
465 | ShowExternalSharingWarning: boolean;
|
466 | /**
|
467 | * A list of SharingPermissionInformation objects that can be used to share
|
468 | */
|
469 | SharingPermissions: any[];
|
470 | /**
|
471 | * A dictionary object that lists the display name and the id of
|
472 | * the SharePoint simplified roles (edit, view)
|
473 | */
|
474 | SimplifiedRoles: {
|
475 | [key: string]: string;
|
476 | };
|
477 | /**
|
478 | * A dictionary object that lists the display name and the id of the SharePoint groups
|
479 | */
|
480 | GroupsList: {
|
481 | [key: string]: string;
|
482 | };
|
483 | /**
|
484 | * A dictionary object that lists the display name and the id of the SharePoint regular roles
|
485 | */
|
486 | Roles: {
|
487 | [key: string]: string;
|
488 | };
|
489 | /**
|
490 | * An object containing the SharePoint UI specific sharing settings.
|
491 | */
|
492 | SharePointSettings: any;
|
493 | /**
|
494 | * Boolean indicating whether the current user is a site collection administrator
|
495 | */
|
496 | IsUserSiteAdmin: boolean;
|
497 | /**
|
498 | * A value that indicates number of days an anonymous link can be valid before it expires
|
499 | */
|
500 | RequiredAnonymousLinkExpirationInDays: number;
|
501 | }
|
502 | export interface ISharingInformation {
|
503 | /**
|
504 | * External Sharing.
|
505 | */
|
506 | canAddExternalPrincipal?: boolean;
|
507 | /**
|
508 | * Internal Sharing.
|
509 | */
|
510 | canAddInternalPrincipal?: boolean;
|
511 | /**
|
512 | * Can Send Email.
|
513 | */
|
514 | canSendEmail?: boolean;
|
515 | /**
|
516 | * Can Use Simplified Roles present in Roles Enum.
|
517 | */
|
518 | canUseSimplifiedRoles?: boolean;
|
519 | /**
|
520 | * Has Unique Permissions.
|
521 | */
|
522 | hasUniquePermissions?: boolean;
|
523 | /**
|
524 | * Current Users Role on the Item.
|
525 | */
|
526 | currentRole?: SharingRole;
|
527 | /**
|
528 | * Does the User+Item require Approval from Admin for Sharing.
|
529 | */
|
530 | requiresAccessApproval?: boolean;
|
531 | /**
|
532 | * (Owners only)Whether there are pending access requests for the securable object.
|
533 | */
|
534 | hasPendingAccessRequests?: boolean;
|
535 | /**
|
536 | * (Owners only)The link to the access requests page for the securable object, or an empty string if the link is not available.
|
537 | */
|
538 | pendingAccessRequestsLink?: string;
|
539 | /**
|
540 | * sharedObjectType
|
541 | */
|
542 | sharedObjectType?: SPSharedObjectType;
|
543 | /**
|
544 | * Url for the Securable Object (Encoded).
|
545 | */
|
546 | directUrl?: string;
|
547 | /**
|
548 | * Parent Web Url for the Securable Object (Encoded).
|
549 | */
|
550 | webUrl?: string;
|
551 | /**
|
552 | * Default SharingLinkKind.
|
553 | */
|
554 | defaultLinkKind?: SharingLinkKind;
|
555 | /**
|
556 | * Tenant's SharingDomainRestrictionMode.
|
557 | */
|
558 | domainRestrictionMode?: SharingDomainRestrictionMode;
|
559 | /**
|
560 | * Tenant's RestrictedDomains.
|
561 | */
|
562 | RestrictedDomains?: string;
|
563 | /**
|
564 | * Tenant's Anonymous Link Expiration Restriction in Days.
|
565 | */
|
566 | anonymousLinkExpirationRestrictionDays?: number;
|
567 | /**
|
568 | * The PermissionCollection that are on the Securable Object (Princpals & Links)
|
569 | */
|
570 | permissionsInformation?: any;
|
571 | /**
|
572 | * PickerSettings used by the PeoplePicker Control.
|
573 | */
|
574 | pickerSettings?: any;
|
575 | }
|
576 | export declare enum RoleType {
|
577 | None = 0,
|
578 | Guest = 1,
|
579 | Reader = 2,
|
580 | Contributor = 3,
|
581 | WebDesigner = 4,
|
582 | Administrator = 5
|
583 | }
|
584 | //# sourceMappingURL=types.d.ts.map |
\ | No newline at end of file |