xmpp.chapril.org-conversejs/src/headless/plugins/muc/utils.js

22 lines
719 B
JavaScript
Raw Normal View History

import { ROLES } from '@converse/headless/plugins/muc/index.js';
import { _converse, api } from '@converse/headless/core.js';
/**
* Given an occupant model, see which roles may be assigned to that user.
* @param { Model } occupant
* @returns { ('moderator', 'participant', 'visitor')[] } - An array of assignable roles
*/
export function getAssignableRoles (occupant) {
let disabled = api.settings.get('modtools_disable_assign');
if (!Array.isArray(disabled)) {
disabled = disabled ? ROLES : [];
}
if (occupant.get('role') === 'moderator') {
return ROLES.filter(r => !disabled.includes(r));
} else {
return [];
}
}
Object.assign(_converse, { getAssignableRoles });