none
【SharePoint Online】 指定したユーザーの権限で、JavaScript(JSOM)を実行させたい

    質問

  • 【概要】

    やりたいことは以下の通りです。

    ・選択肢列に新しい選択肢をJSOMで追加する。

    ・以下のコードをスクリプトエディタでリストのアイテム登録フォームに実装し、

       アイテム保存ボタン実行時に動作させるようにしている。

    ----------------------------------------------------------------------------------------------------------

    function ChoiceAdd(field, choice)
    {

       var context = new SP.ClientContext.get_current();
       var web = context.get_web();
       var listName = document.getElementById('DeltaPlaceHolderPageTitleInTitleArea').innerText;
       var list = web.get_lists().getByTitle(listName.trim());

       var categoryField = list.get_fields().getByInternalNameOrTitle(field);
       var categoryChoiceField = context.castTo(categoryField, SP.FieldChoice);
       context.load(categoryChoiceField);

       context.executeQueryAsync(function(){
      
          var categoryChoices = categoryChoiceField.get_choices();
          var categoryTC = categoryChoices.filter(function(choice){
             return choice === choice;
          });

          categoryChoices.push(choice);
          categoryChoiceField.set_choices(categoryChoices);
          categoryChoiceField.updateAndPushChanges();
          context.executeQueryAsync(function(){}, function(sender, args){ alert(args.get_message()) });
         
       }, function(sender, args){ alert(args.get_message()) });

    }

    ----------------------------------------------------------------------------------------------------------

    【問題】

    ログインユーザーがリストに対してフルコントロール権限を持っている場合は、正常に選択肢を追加することが

    できますが、ログインユーザーが投稿権限の場合は、以下のエラーで選択肢を追加することができません。

    「アクセスが拒否されました。この操作の実行権限またはリソースのアクセス権がありません。」

    恐らく、リストの列の設定変更が投稿権限では出来ないためと思われますが、

    そもそも、ログインユーザーの権限ではなく、指定したユーザーの権限(フルコン)でJSOMを実行させることは出来ないのでしょうか?

    # CSOMのMicrosoft.SharePoint.Client.ClientContext.Credentialsのように指定できないのでしょうか。

    ログインユーザーが投稿権限の場合であっても、選択肢を追加させたいです。

    拙い説明ですが、よろしくお願いします。

    2018年6月9日 8:43

回答

  • こんにちは。

    スクリプトエディタに直接JavaScriptを貼り付ける方法では、JavaScriptはログインユーザーの権限でしか動作しません。
    SharePointホスト型のアドインアプリを作成すれば、アプリに権限を持たせることができるので、ログインユーザーが権限を持っていなくても動作させることができます。

    https://docs.microsoft.com/ja-jp/sharepoint/dev/sp-add-ins/get-started-creating-sharepoint-hosted-sharepoint-add-ins

    • 回答としてマーク gloomy777 2018年6月13日 12:04
    2018年6月12日 0:36

すべての返信

  • こんにちは。

    スクリプトエディタに直接JavaScriptを貼り付ける方法では、JavaScriptはログインユーザーの権限でしか動作しません。
    SharePointホスト型のアドインアプリを作成すれば、アプリに権限を持たせることができるので、ログインユーザーが権限を持っていなくても動作させることができます。

    https://docs.microsoft.com/ja-jp/sharepoint/dev/sp-add-ins/get-started-creating-sharepoint-hosted-sharepoint-add-ins

    • 回答としてマーク gloomy777 2018年6月13日 12:04
    2018年6月12日 0:36
  • ご回答ありがとうございます。

    アドインアプリを開発しないと無理なのですね。

    回答いただけて、助かりました。

    2018年6月13日 12:04