/// <summary> /// Creates a permission profile /// </summary> /// <param name="profileName">Profile name</param> /// <param name="accountRoleSettings">Sccount role settings</param> /// <param name="accessToken">Access Token for API call (OAuth)</param> /// <param name="basePath">BasePath for API calls (URI)</param> /// <param name="accountId">The DocuSign Account ID (GUID or short version) for which the APIs call would be made</param> /// <returns>A permission profile</returns> public static PermissionProfile Create(string profileName, AccountRoleSettingsExtension accountRoleSettings, string accessToken, string basePath, string accountId) { // Construct your API headers var config = new Configuration(new ApiClient(basePath)); config.AddDefaultHeader("Authorization", "Bearer " + accessToken); AccountsApi accountsApi = new AccountsApi(config); var newPermissionProfile = new PermissionProfile(PermissionProfileName: profileName, Settings: accountRoleSettings); // Call the eSignature REST API return(accountsApi.CreatePermissionProfile(accountId, newPermissionProfile)); }
public IActionResult Create(PermissionProfileModel profileModel) { // Check the token with minimal buffer time. bool tokenOk = CheckToken(3); if (!tokenOk) { // We could store the parameters of the requested operation so it could be // restarted automatically. But since it should be rare to have a token issue // here, we'll make the user re-enter the form data after authentication. RequestItemsService.EgName = EgName; return(Redirect("/ds/mustAuthenticate")); } // Data for this method // signerEmail // signerName var basePath = RequestItemsService.Session.BasePath + "/restapi"; // Step 1. Obtain your OAuth token var accessToken = RequestItemsService.User.AccessToken; // Represents your {ACCESS_TOKEN} var accountId = RequestItemsService.Session.AccountId; // Represents your {ACCOUNT_ID} // Step 2. Construct your API headers var apiClient = new ApiClient(basePath); apiClient.Configuration.DefaultHeader.Add("Authorization", "Bearer " + accessToken); var accountsApi = new AccountsApi(apiClient); // Step 3. Construct the request body var permission = accountsApi.ListPermissions(accountId).PermissionProfiles. FirstOrDefault(profile => profile.PermissionProfileId == profileModel.ProfileId); var settingsToUpdate = new AccountRoleSettingsExtension { SigningUiVersion = "2" }; settingsToUpdate.UseNewDocuSignExperienceInterface = profileModel.AccountRoleSettingsModel.UseNewDocuSignExperienceInterface? "1" : "0"; settingsToUpdate.EnableSequentialSigningInterface = profileModel.AccountRoleSettingsModel.EnableSequentialSigningInterface.ToString(); settingsToUpdate.PowerFormRole = profileModel.AccountRoleSettingsModel.PowerFormRole.ToString(); settingsToUpdate.VaultingMode = profileModel.AccountRoleSettingsModel.VaultingMode.ToString(); settingsToUpdate.AllowTaggingInSendAndCorrect = profileModel.AccountRoleSettingsModel.AllowTaggingInSendAndCorrect.ToString(); settingsToUpdate.AllowedAddressBookAccess = profileModel.AccountRoleSettingsModel.AllowedAddressBookAccess.ToString(); settingsToUpdate.AllowedTemplateAccess = profileModel.AccountRoleSettingsModel.AllowedTemplateAccess.ToString(); // Present on PermissionProfileView. settingsToUpdate.AllowBulkSending = profileModel.AccountRoleSettingsModel.AllowBulkSending.ToString(); settingsToUpdate.AllowEnvelopeSending = profileModel.AccountRoleSettingsModel.AllowEnvelopeSending.ToString(); settingsToUpdate.AllowSignerAttachments = profileModel.AccountRoleSettingsModel.AllowSignerAttachments.ToString(); settingsToUpdate.AllowApiAccess = profileModel.AccountRoleSettingsModel.AllowApiAccess.ToString(); settingsToUpdate.AllowApiAccessToAccount = profileModel.AccountRoleSettingsModel.AllowApiAccessToAccount.ToString(); settingsToUpdate.AllowApiSequentialSigning = profileModel.AccountRoleSettingsModel.AllowApiSequentialSigning.ToString(); settingsToUpdate.EnableApiRequestLogging = profileModel.AccountRoleSettingsModel.EnableApiRequestLogging.ToString(); settingsToUpdate.AllowApiSendingOnBehalfOfOthers = profileModel.AccountRoleSettingsModel.AllowApiSendingOnBehalfOfOthers.ToString(); settingsToUpdate.AllowWetSigningOverride = profileModel.AccountRoleSettingsModel.AllowWetSigningOverride.ToString(); settingsToUpdate.EnableRecipientViewingNotifications = profileModel.AccountRoleSettingsModel.EnableRecipientViewingNotifications.ToString(); settingsToUpdate.ReceiveCompletedSelfSignedDocumentsAsEmailLinks = profileModel.AccountRoleSettingsModel.ReceiveCompletedSelfSignedDocumentsAsEmailLinks.ToString(); settingsToUpdate.UseNewSendingInterface = profileModel.AccountRoleSettingsModel.UseNewSendingInterface.ToString(); settingsToUpdate.AllowDocuSignDesktopClient = profileModel.AccountRoleSettingsModel.AllowDocuSignDesktopClient.ToString(); settingsToUpdate.AllowSendersToSetRecipientEmailLanguage = profileModel.AccountRoleSettingsModel.AllowSendersToSetRecipientEmailLanguage.ToString(); settingsToUpdate.AllowVaulting = profileModel.AccountRoleSettingsModel.AllowVaulting.ToString(); settingsToUpdate.AllowedToBeEnvelopeTransferRecipient = profileModel.AccountRoleSettingsModel.AllowedToBeEnvelopeTransferRecipient.ToString(); settingsToUpdate.EnableTransactionPointIntegration = profileModel.AccountRoleSettingsModel.EnableTransactionPointIntegration.ToString(); try { // Step 4. Call the eSignature REST API var results = accountsApi.UpdatePermissionProfile(accountId, profileModel.ProfileId, permission); ViewBag.h1 = "The permission profile was updated"; ViewBag.message = "The permission profile was updated!<br />Permission profile ID: " + results.PermissionProfileId + "."; return(View("example_done")); } catch (ApiException apiException) { ViewBag.errorCode = apiException.ErrorCode; ViewBag.errorMessage = apiException.Message; return(View("Error")); } }