149 lines
3.1 KiB
TypeScript
149 lines
3.1 KiB
TypeScript
import { useMemo } from 'react';
|
|
import { StateEvent } from '../../../../types/matrix/room';
|
|
import { PermissionGroup } from '../../common-settings/permissions';
|
|
|
|
export const usePermissionGroups = (): PermissionGroup[] => {
|
|
const groups: PermissionGroup[] = useMemo(() => {
|
|
const messagesGroup: PermissionGroup = {
|
|
name: 'Manage',
|
|
items: [
|
|
{
|
|
location: {
|
|
state: true,
|
|
key: StateEvent.SpaceChild,
|
|
},
|
|
name: 'Manage space rooms',
|
|
},
|
|
{
|
|
location: {},
|
|
name: 'Message Events',
|
|
},
|
|
],
|
|
};
|
|
|
|
const moderationGroup: PermissionGroup = {
|
|
name: 'Moderation',
|
|
items: [
|
|
{
|
|
location: {
|
|
action: true,
|
|
key: 'invite',
|
|
},
|
|
name: 'Invite',
|
|
},
|
|
{
|
|
location: {
|
|
action: true,
|
|
key: 'kick',
|
|
},
|
|
name: 'Kick',
|
|
},
|
|
{
|
|
location: {
|
|
action: true,
|
|
key: 'ban',
|
|
},
|
|
name: 'Ban',
|
|
},
|
|
],
|
|
};
|
|
|
|
const roomOverviewGroup: PermissionGroup = {
|
|
name: 'Space Overview',
|
|
items: [
|
|
{
|
|
location: {
|
|
state: true,
|
|
key: StateEvent.RoomAvatar,
|
|
},
|
|
name: 'Space Avatar',
|
|
},
|
|
{
|
|
location: {
|
|
state: true,
|
|
key: StateEvent.RoomName,
|
|
},
|
|
name: 'Space Name',
|
|
},
|
|
{
|
|
location: {
|
|
state: true,
|
|
key: StateEvent.RoomTopic,
|
|
},
|
|
name: 'Space Topic',
|
|
},
|
|
],
|
|
};
|
|
|
|
const roomSettingsGroup: PermissionGroup = {
|
|
name: 'Settings',
|
|
items: [
|
|
{
|
|
location: {
|
|
state: true,
|
|
key: StateEvent.RoomJoinRules,
|
|
},
|
|
name: 'Change Space Access',
|
|
},
|
|
{
|
|
location: {
|
|
state: true,
|
|
key: StateEvent.RoomCanonicalAlias,
|
|
},
|
|
name: 'Publish Address',
|
|
},
|
|
{
|
|
location: {
|
|
state: true,
|
|
key: StateEvent.RoomPowerLevels,
|
|
},
|
|
name: 'Change All Permission',
|
|
},
|
|
{
|
|
location: {
|
|
state: true,
|
|
key: StateEvent.PowerLevelTags,
|
|
},
|
|
name: 'Edit Power Levels',
|
|
},
|
|
{
|
|
location: {
|
|
state: true,
|
|
key: StateEvent.RoomTombstone,
|
|
},
|
|
name: 'Upgrade Space',
|
|
},
|
|
{
|
|
location: {
|
|
state: true,
|
|
},
|
|
name: 'Other Settings',
|
|
},
|
|
],
|
|
};
|
|
|
|
const otherSettingsGroup: PermissionGroup = {
|
|
name: 'Other',
|
|
items: [
|
|
{
|
|
location: {
|
|
state: true,
|
|
key: StateEvent.RoomServerAcl,
|
|
},
|
|
name: 'Change Server ACLs',
|
|
},
|
|
],
|
|
};
|
|
|
|
return [
|
|
messagesGroup,
|
|
moderationGroup,
|
|
roomOverviewGroup,
|
|
roomSettingsGroup,
|
|
otherSettingsGroup,
|
|
];
|
|
}, []);
|
|
|
|
return groups;
|
|
};
|