API初挑戦で行き詰ってしまいました・・・
特定のフィールド値によって、スペース上のボタン表示非表示を制御する条件に挑戦しております。
管理しやすくするためにログインユーザーが特定の所属だったらの指定にAPIで所属コードを取得したコーディングを試してますがうまく機能してくれません。alertで所属コードは正しく拾ってはいるようですが、下記の9999じゃなかったらボタンは非表示にはなってくれないようです。
特定のユーザ名だったら「if (user !== ‘〇〇さん’ && user !== ‘××さん’) {」では問題ないので、そもそもこういう使い方はできないのでしょうか・・・
同じように部署だけでなくロールに所属してる場合も同じように悩んでまして色々試してみてます。ご教授いただければ幸いです、よろしくお願いいたします・・・
var events = [
'app.record.edit.show',
'app.record.edit.submit',
];
kintone.events.on(['app.record.edit.show'], event => {
//↓からテストで所属コードは拾えること確認
var user_organization,
userAPI = kintone.getLoginUser();
kintone.api('/v1/user/organizations','GET',{
code:userAPI.code
},function(resp){
user_organization = resp.organizationTitles[0].organization.code;
//user_dept = resp.groups[0].groups.code;
alert('あなたの所属組織コードは' + user_organization + 'です。');
});
//ボタンを置いたスペースフィールドを取ってきた
const sp = kintone.app.record.getSpaceElement('spSuteki');
const btn = document.createElement('button');
const user = kintone.getLoginUser().name;
//ログインユーザが管理者以外はボタン非表示
if (user_organization !== '9999'){ // ログインユーザーが管理者(所属コード:9999)じゃなかったら
sp.parentNode.style.display = 'none'; // 非表示
} else {
sp.parentNode.style.display = null; // 表示
}
btn.textContent = 'ボタン名';
sp.appendChild(btn);
btn.onclick = () => { ・・・