mirror of
https://github.com/umami-software/umami.git
synced 2026-02-18 19:45:35 +01:00
Compare commits
4 commits
f5896f071b
...
b0f38b266b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b0f38b266b | ||
|
|
e7cb613cec | ||
|
|
170821e2f9 | ||
|
|
935517ce3a |
3 changed files with 51 additions and 32 deletions
|
|
@ -7,7 +7,7 @@ import { checkPassword } from '@/lib/password';
|
||||||
import redis from '@/lib/redis';
|
import redis from '@/lib/redis';
|
||||||
import { parseRequest } from '@/lib/request';
|
import { parseRequest } from '@/lib/request';
|
||||||
import { json, unauthorized } from '@/lib/response';
|
import { json, unauthorized } from '@/lib/response';
|
||||||
import { getUserByUsername } from '@/queries/prisma';
|
import { getAllUserTeams, getUserByUsername } from '@/queries/prisma';
|
||||||
|
|
||||||
export async function POST(request: Request) {
|
export async function POST(request: Request) {
|
||||||
const schema = z.object({
|
const schema = z.object({
|
||||||
|
|
@ -39,8 +39,10 @@ export async function POST(request: Request) {
|
||||||
token = createSecureToken({ userId: user.id, role }, secret());
|
token = createSecureToken({ userId: user.id, role }, secret());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const teams = await getAllUserTeams(id);
|
||||||
|
|
||||||
return json({
|
return json({
|
||||||
token,
|
token,
|
||||||
user: { id, username, role, createdAt, isAdmin: role === ROLES.admin },
|
user: { id, username, role, createdAt, isAdmin: role === ROLES.admin, teams },
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,12 @@ export function Legend({
|
||||||
return (
|
return (
|
||||||
<Row key={text} onClick={() => onClick(item)}>
|
<Row key={text} onClick={() => onClick(item)}>
|
||||||
<StatusLight color={color.alpha(color.alpha() + 0.2).toHex()}>
|
<StatusLight color={color.alpha(color.alpha() + 0.2).toHex()}>
|
||||||
<Text size="2" color={hidden ? 'disabled' : undefined} wrap="nowrap">
|
<Text
|
||||||
|
size="2"
|
||||||
|
color={hidden ? 'disabled' : undefined}
|
||||||
|
truncate={true}
|
||||||
|
style={{ maxWidth: '300px' }}
|
||||||
|
>
|
||||||
{text}
|
{text}
|
||||||
</Text>
|
</Text>
|
||||||
</StatusLight>
|
</StatusLight>
|
||||||
|
|
|
||||||
|
|
@ -137,6 +137,9 @@ export async function resetWebsite(websiteId: string) {
|
||||||
|
|
||||||
return transaction(
|
return transaction(
|
||||||
[
|
[
|
||||||
|
client.revenue.deleteMany({
|
||||||
|
where: { websiteId },
|
||||||
|
}),
|
||||||
client.eventData.deleteMany({
|
client.eventData.deleteMany({
|
||||||
where: { websiteId },
|
where: { websiteId },
|
||||||
}),
|
}),
|
||||||
|
|
@ -175,35 +178,44 @@ export async function deleteWebsite(websiteId: string) {
|
||||||
const { client, transaction } = prisma;
|
const { client, transaction } = prisma;
|
||||||
const cloudMode = !!process.env.CLOUD_MODE;
|
const cloudMode = !!process.env.CLOUD_MODE;
|
||||||
|
|
||||||
return transaction([
|
return transaction(
|
||||||
client.eventData.deleteMany({
|
[
|
||||||
where: { websiteId },
|
client.revenue.deleteMany({
|
||||||
}),
|
where: { websiteId },
|
||||||
client.sessionData.deleteMany({
|
}),
|
||||||
where: { websiteId },
|
client.eventData.deleteMany({
|
||||||
}),
|
where: { websiteId },
|
||||||
client.websiteEvent.deleteMany({
|
}),
|
||||||
where: { websiteId },
|
client.sessionData.deleteMany({
|
||||||
}),
|
where: { websiteId },
|
||||||
client.session.deleteMany({
|
}),
|
||||||
where: { websiteId },
|
client.websiteEvent.deleteMany({
|
||||||
}),
|
where: { websiteId },
|
||||||
client.report.deleteMany({
|
}),
|
||||||
where: {
|
client.session.deleteMany({
|
||||||
websiteId,
|
where: { websiteId },
|
||||||
},
|
}),
|
||||||
}),
|
client.report.deleteMany({
|
||||||
cloudMode
|
where: { websiteId },
|
||||||
? client.website.update({
|
}),
|
||||||
data: {
|
client.segment.deleteMany({
|
||||||
deletedAt: new Date(),
|
where: { websiteId },
|
||||||
},
|
}),
|
||||||
where: { id: websiteId },
|
cloudMode
|
||||||
})
|
? client.website.update({
|
||||||
: client.website.delete({
|
data: {
|
||||||
where: { id: websiteId },
|
deletedAt: new Date(),
|
||||||
}),
|
},
|
||||||
]).then(async data => {
|
where: { id: websiteId },
|
||||||
|
})
|
||||||
|
: client.website.delete({
|
||||||
|
where: { id: websiteId },
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
{
|
||||||
|
timeout: 30000,
|
||||||
|
},
|
||||||
|
).then(async data => {
|
||||||
if (cloudMode) {
|
if (cloudMode) {
|
||||||
await redis.client.del(`website:${websiteId}`);
|
await redis.client.del(`website:${websiteId}`);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue