ポータル画面に張り付けたアプリの挙動について

ユーザー間でスケジュールが把握できるようにスケジュールアプリを作成しポータル画面に張り付けています。

このスケジュールのレコードは、関連する他のアプリから自動登録する仕様にしておりスケジュールアプリからは削除イベントをキャンセルし削除できないようにしています。

ですが、ポータルに張り付けたスケジュールアプリの一覧で×アイコンを操作することでレコードが削除できてしまいます。

ポータル画面からの編集・削除の操作を禁止したいのですが、方法はありますでしょうか?

kuboさん、こんにちは。

詳細を見てないので外しているかもしれませんが、

アプリ及びレコードのアクセス権を工夫することで実現できませんでしょうか?

 

 

Shotaroさん。

コメントありがとうございます。

ざっくりな内容で申し訳ありません。

 

スケジュールアプリは、関連する他のアプリから自動(jsで処理)でレコード追加と削除を行います。

この連携したレコードは削除できないようにjsで制御しています。

また、上記以外で、単純な自分のスケジュールは自由に追加・変更・削除可能としている為、レコードのアクセス権の設定できない状況なのです。

 

レコード削除イベント(‘app.record.detail.delete.submit’, ‘app.record.index.delete.submit’)で下記のコードを入れています。

var record = event.record;

if (typeof record[‘連携もとのレコード番号’].value !== “undefined”) {
event.error = ‘当スケジュールの削除はできません。他のアプリと紐付く情報です。’;
record[“日付”].error = “エラー”;
return false;
}

return event;

 

ポータル画面に張り付けたスケジュールアプリの一覧画面で、他アプリから作成したスケジュールレコード(上記条件を満たすもの)について削除アイコンで削除するとメッセージも出ずに削除できてしまいます。

return false;をreturn event;に変えても同じ状況なのです。

CSSで変更・削除アイコンが簡単に非表示にできればいいのですが。。。

kuboさん

一覧削除前イベントは、スペースに貼り付けたアプリでは利用できないため、

https://developer.cybozu.io/hc/ja/articles/201941964#step5

この方法では制御できないと思います。

そこで、自動追加したレコード(連携もとのレコード番号≧1等)に対して、レコードのアクセス権で削除権限を外すという対応であれば、削除ボタンを押したときにエラーメッセージ(権限がありません)でキャンセルさせることができると思います。

Shotaroさん。

コメントありがとうございます。

制限事項として書かれてありますね。。。見落としていました。

教えていただいたようにレコードのアクセス権で制限できるように考えてみます。

ありがとうございました!