2020-04-21 12:00:31 -07:00
|
|
|
import { Map as ImmutableMap } from 'immutable';
|
|
|
|
|
2020-04-18 12:18:04 -07:00
|
|
|
export const getDomain = account => {
|
2020-03-28 11:07:36 -07:00
|
|
|
let re = /https?:\/\/(.*?)\//i;
|
|
|
|
return re.exec(account.get('url'))[1];
|
2020-04-14 11:44:40 -07:00
|
|
|
};
|
2020-03-28 11:07:36 -07:00
|
|
|
|
|
|
|
// user@domain even for local users
|
|
|
|
export const acctFull = account => {
|
|
|
|
let [user, domain] = account.get('acct').split('@');
|
|
|
|
try {
|
|
|
|
if (!domain) domain = getDomain(account);
|
|
|
|
} catch(e) {
|
2020-03-28 13:10:35 -07:00
|
|
|
console.warning('Could not get domain for acctFull. Falling back to acct.');
|
2020-03-28 11:07:36 -07:00
|
|
|
return account.get('acct');
|
|
|
|
}
|
|
|
|
return [user, domain].join('@');
|
2020-04-14 11:44:40 -07:00
|
|
|
};
|
2020-04-18 13:09:54 -07:00
|
|
|
|
2020-04-21 12:00:31 -07:00
|
|
|
export const isStaff = (account = ImmutableMap()) => {
|
2020-04-18 13:09:54 -07:00
|
|
|
return ['is_admin', 'is_moderator'].some(key => (
|
|
|
|
account.getIn(['pleroma', key]) === true
|
|
|
|
));
|
|
|
|
};
|