取得した所属組織でフィールドの編集可否の設定

いつもお世話になっております。

APIで取得したログインユーザの所属組織を基に特定の所属組織の場合はフィールドの編集権限を設定したいのですがうまく動作しません。

恐らくeventがうまく返せていないせいだと思うのですがどういった修正を行えばいいかお分かりになる方いるでしょうか。

 

kintone.events.on(“app.record.edit.show”, function (event) {

        var user = kintone.getLoginUser();

        var user_organization, usergroup

        kintone.api(‘/v1/user/organizations’, ‘GET’, {

            code: user.code

        },

            function (resp) {

                user_organization = resp.organizationTitles[0].organization.name;

                usergroup = user_organization

                console.log(resp.organizationTitles[0].organization.name)

                if (resp.organizationTitles[0].organization.name == “本社”) {

                    event.record.開始日.disabled = false;

                    event.record.終了日.disabled = false;

                } else {

                    event.record.開始日.disabled = true; ←この部分が動作せず

                    event.record.終了日.disabled = true;

                }

            })

        return event;

    });

こんにちは

ざっと見たところ

if (resp.organizationTitles[0].organization.name == "本社") {

上記の"=="が二つになっているところが気になりました。

文字列の比較は3つです。3つにして確認してみてください。

お世話になっております。

比較演算子を「===」 にしても特に動作に変わりはありませんでした。

強制的に通るようにしても動作に変更はありませんでしたので何かしら別の問題があって動作しなくなってしまっているのかなと思います。

kintone.apiは非同期処理ですので、kintone.app.record.get()とkintone.app.record.set()を使うか、プロミスをreturnすれば期待した結果が得られるはずです。

頂いた情報を元に両方試してみたところ望んだ動作することが確認できました。

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