fix(dash): allow any valid id as page URL parameter

This commit is contained in:
Jake Fulmine 2024-06-23 18:56:18 +02:00
parent 7fe492e98e
commit 009bbde176
No known key found for this signature in database
GPG key ID: 177E8DB7BF4C60B2
2 changed files with 14 additions and 15 deletions

View file

@ -50,15 +50,13 @@
let groupsStore: Writable<Group[]> = writable([])
$: members = setContext<Writable<Member[]>>("members", membersStore)
$: groups = setContext<Writable<Group[]>>("groups", groupsStore)
$: group = $groups.filter(g => g.id === $params.id)[0] || {}
let group: Group|null = null
let title = isPublic ? "group" : "group (dash)";
async function fetchGroup() {
try {
const res = await api().groups($params.id).get({auth: !isPublic});
$groups = [res]
group = $groups.filter(g => g.id === $params.id)[0];
group = await api().groups($params.id).get({ auth: !isPublic })
if (!isPublic && !group.privacy) {
notOwnSystem = true;
throw new Error("Group is not from own system.");
@ -85,7 +83,7 @@
members.set(groupMembers);
} else {
const systemGroups: Group[] = await api().systems("@me").groups.get({ auth: true, query: { with_members: true } });
group.members = systemGroups.filter((g: Group) => g.id === $params.id).map((m: Member) => m.uuid);
group.members = systemGroups.find((g: Group) => g.uuid === group.uuid).members
groups.set(systemGroups);
const systemMembers = await api().systems("@me").members.get({ auth: true });

View file

@ -50,7 +50,7 @@
let groupsStore: Writable<Group[]> = writable([])
$: members = setContext<Writable<Member[]>>("members", membersStore)
$: groups = setContext<Writable<Group[]>>("groups", groupsStore)
$: member = $members.filter(m => m.id === $params.id)[0] || {}
let member: Member|null = null
let title = isPublic ? "member" : "member (dash)";
@ -58,12 +58,10 @@
try {
if (isPublic) {
const res: Member = await api().members($params.id).get({auth: !isPublic});
$members = [res]
member = $members.filter(m => m.id === $params.id)[0]
member = res;
} else {
const res: Member[] = await api().systems("@me").members.get({ auth: true});
$members = res;
member = $members.filter(m => m.id === $params.id)[0]
const res: Member = await api().members($params.id).get({auth: !isPublic});
member = res
if (!member.privacy) {
notOwnSystem = true;
@ -86,14 +84,17 @@
async function fetchGroups() {
try {
let memberGroups: Group[] = await api().members($params.id).groups().get({auth: !isPublic });
if (!isPublic) memberGroups.forEach(g => g.members = [])
groups.set(memberGroups)
if (!isPublic) {
const systemGroups: Group[] = await api().systems("@me").groups.get({ auth: true, query: { with_members: true } });
const memberList: Member[] = await api().systems("@me").members.get({ auth: true })
members.set(memberList)
groups.set(systemGroups)
} else {
let memberGroups: Group[] = await api().members($params.id).groups().get({auth: !isPublic });
if (!isPublic) memberGroups.forEach(g => g.members = [])
groups.set(memberGroups)
}
groupErr = "";
groupLoading = false;
} catch (error) {