Merge pull request #9864 from Budibase/fix/audit-log-fixes

Audit logs fixes
This commit is contained in:
Michael Drury 2023-03-02 15:08:20 +00:00 committed by GitHub
commit 857742c419
9 changed files with 40 additions and 19 deletions

View File

@ -1,6 +1,6 @@
import { getAppClient } from "../redis/init"
import { doWithDB, DocumentType } from "../db"
import { Database } from "@budibase/types"
import { Database, App } from "@budibase/types"
const AppState = {
INVALID: "invalid",
@ -65,7 +65,7 @@ export async function getAppMetadata(appId: string) {
if (isInvalid(metadata)) {
throw { status: 404, message: "No app metadata found" }
}
return metadata
return metadata as App
}
/**

View File

@ -8,7 +8,7 @@ import {
HostInfo,
} from "@budibase/types"
import { EventProcessor } from "./types"
import { getAppId, doInTenant } from "../../context"
import { getAppId, doInTenant, getTenantId } from "../../context"
import BullQueue from "bull"
import { createQueue, JobQueue } from "../../queue"
import { isAudited } from "../../utils"
@ -74,7 +74,7 @@ export default class AuditLogsProcessor implements EventProcessor {
appId: getAppId(),
hostInfo: identity.hostInfo,
},
tenantId: identity.tenantId!,
tenantId: getTenantId(),
})
}
}

View File

@ -15,6 +15,7 @@
export let sort = false
export let autoWidth = false
export let fetchTerm = null
export let useFetch = false
export let customPopoverHeight
const dispatch = createEventDispatcher()
@ -86,6 +87,7 @@
isPlaceholder={!value?.length}
{autocomplete}
bind:fetchTerm
{useFetch}
{isOptionSelected}
{getOptionLabel}
{getOptionValue}

View File

@ -33,6 +33,7 @@
export let autocomplete = false
export let sort = false
export let fetchTerm = null
export let useFetch = false
export let customPopoverHeight
export let align = "left"
export let footer = null
@ -150,9 +151,9 @@
>
{#if autocomplete}
<Search
value={fetchTerm ? fetchTerm : searchTerm}
value={useFetch ? fetchTerm : searchTerm}
on:change={event =>
fetchTerm ? (fetchTerm = event.detail) : (searchTerm = event.detail)}
useFetch ? (fetchTerm = event.detail) : (searchTerm = event.detail)}
{disabled}
placeholder="Search"
/>

View File

@ -17,6 +17,7 @@
export let autoWidth = false
export let autocomplete = false
export let fetchTerm = null
export let useFetch = false
export let customPopoverHeight
const dispatch = createEventDispatcher()
@ -41,6 +42,7 @@
{autocomplete}
{customPopoverHeight}
bind:fetchTerm
{useFetch}
on:change={onChange}
on:click
/>

View File

@ -12,18 +12,20 @@
}
</script>
<div
class="container"
on:mouseover={() => (showTooltip = true)}
on:focus={() => (showTooltip = true)}
on:mouseleave={() => (showTooltip = false)}
>
<Avatar size="M" initials={getInitials(row?.user)} />
</div>
{#if showTooltip}
<div class="tooltip">
<Tooltip textWrapping text={row?.user.email} direction="bottom" />
{#if row?.user?.email}
<div
class="container"
on:mouseover={() => (showTooltip = true)}
on:focus={() => (showTooltip = true)}
on:mouseleave={() => (showTooltip = false)}
>
<Avatar size="M" initials={getInitials(row.user)} />
</div>
{#if showTooltip}
<div class="tooltip">
<Tooltip textWrapping text={row.user.email} direction="bottom" />
</div>
{/if}
{/if}
<style>

View File

@ -257,6 +257,7 @@
<div class="select">
<Multiselect
bind:fetchTerm={userSearchTerm}
useFetch
placeholder="All users"
label="Users"
autocomplete

View File

@ -26,9 +26,16 @@ export enum AuditLogResourceStatus {
DELETED = "deleted",
}
export type DeletedResourceInfo = {
_id: string
status: AuditLogResourceStatus
email?: string
name?: string
}
export interface AuditLogEnriched {
app?: App | { _id: string; status: AuditLogResourceStatus }
user: User | { _id: string; status: AuditLogResourceStatus }
app?: App | DeletedResourceInfo
user: User | DeletedResourceInfo
event: Event
timestamp: string
name: string

View File

@ -3,6 +3,11 @@ import { Event } from "../../sdk"
export const AuditLogSystemUser = "SYSTEM"
export type FallbackInfo = {
appName?: string
email?: string
}
export interface AuditLogDoc extends Document {
appId?: string
event: Event
@ -10,4 +15,5 @@ export interface AuditLogDoc extends Document {
timestamp: string
metadata: any
name: string
fallback?: FallbackInfo
}