新規投稿
フォローする

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

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

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;
    });
0

4件のコメント

Avatar
mionix

こんにちは

ざっと見たところ

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

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

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

0
Avatar
excset

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

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

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

0
Avatar
Ryoji

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

1
Avatar
excset

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

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

 

0
サインインしてコメントを残してください。