質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

6314閲覧

【GAS】共有設定されたフォルダ内のファイルに対して特定のユーザーを削除したい。

退会済みユーザー

退会済みユーザー

総合スコア0

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2015/11/12 18:01

編集2015/11/13 08:45

Aフォルダ(a,b,c,dと共有)内のBファイルに対してa,bのみの共有設定としたい。

  1. Aの共有設定はメールアドレスで設定されている

2. メールアドレスはGoogleAppsアカウントではない
3. ユーザーは全て編集者権限(Editor)

上記にてBファイルは親フォルダ(A)の共有設定が引き継がれるので、要求を満たすためにはc,dを共有から外す必要がある。
手動での上記設定は可能であることは確認済みで、これをGASにて実行したい。

Javascript

1var B = DriveApp.getFileById(__BファイルのID__); 2B.removeEditor(__Email of c__); 3B.removeEditor(__Email of d__);

上記はコードの極例ですが、実行後共有状態はa,b,c,dと共有のままで、c,dを外せません。
そもそもGASから要求を満たすことはできないということなのでしょうか。

A直下にBの他、C,D,E...とあり、Bのみ部分共有したいといった状況です。
ご助言、よろしくお願いいたします。

[追記]

  1. 上記問題を確認するため、以下の様な簡単な検証を実施。

[検証用構成] Aフォルダ > Bファイル ※いずれも共有設定なし
[検証設定]
a. Aに対し編集者ユーザー(x、y、z)を追加(共有設定)
b. Aの編集者ユーザー(z)を削除
c. Aの編集者ユーザー(x、y)を削除(共有解除)
d. 一度共有設定を初期状態に戻し、Bに対し編集者ユーザー(x、y、z)を追加
e. Bの編集者ユーザー(z)を削除
f. の編集者ユーザー(x、y)を削除
※a実行後にb、b実行後にc、という流れで行いました。

[結果]
a. Bに継承
b. Bに継承
c. Bに継承(共有解除)
d. A(共有解除)、B(x、y、z)
e. A(共有解除)、B(x、y、z)
f. A(共有解除)、B(共有解除)

  1. 上記よりGASによる共有設定処理、解除処理に問題がないことを確認。

その上で、GASの制限事項と考えられる問題について以下の設定にて追検証しました。
[検証用構成] Aフォルダ > Bファイル ※A(x、y)、B(x、y)
[追検証設定]
g. Bに対し編集者ユーザー(z)を追加
h. Aの編集者ユーザー(x)を削除
i. Aに対し編集者ユーザー(x)を追加
j. Bの編集者ユーザー(y)を削除
k. Bの編集者ユーザー(z)を削除
※新たにAフォルダと同階層にCフォルダを作成(zと共有)。
l. BをDとしてCへコピー
m. BをCへ移動

[結果]
g. A(x、y)、B(x、y、z) 共有設定反映
h. A(y)、B(y、z) Aの設定がBに影響
i. A(x、y)、B(x、y、z) Aの設定がBに影響
j. A(x、y)、B(x、y、z) 処理が反映されない(エラーなし)
k. A(x、y)、B(x、y) 共有設定反映
l. A(x、y)、B(x、y)、C(z)、D(z)コピー先の親フォルダの設定を継承
m. A(x、y)、B(z)、C(z) コピー先の親フォルダの設定を継承

  1. 1.及び2.の結果より、以下のことが現状の結論として導かれます。

・親フォルダの共有解除状態(Private)を含む、共有グループ外のユーザー追加は可能。
・親フォルダが共有設定されている場合、共有グループに含まれるユーザーを削除できない。
・コピー及び移動(ムーブ)でも、元の共有設定は維持されない。

※GASの公式リファレンスやWEB上での情報など、時間をかけて探してみましたが
これら共有設定に関する内容や制限事項として明記されている情報に当たることができませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

有益な情報は見つからず、結局、納品用のスクリプトには親フォルダの共有設定を最低限にし、必要なユーザーを追加する、という解決になりました。

今回の質問に対する自己解決の結論としましては、検証結果3の通りということになります。

投稿2015/12/02 08:19

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問