You've already forked AstralRinth
forked from didirus/AstralRinth
Reduce some more sentry errors (#5173)
* short-circuit user menu options if no user * misc null checks
This commit is contained in:
@@ -990,16 +990,19 @@ const navRoutes = computed(() => [
|
|||||||
])
|
])
|
||||||
|
|
||||||
const userMenuOptions = computed(() => {
|
const userMenuOptions = computed(() => {
|
||||||
|
const user = auth.value.user
|
||||||
|
if (!user) return []
|
||||||
|
|
||||||
let options = [
|
let options = [
|
||||||
{
|
{
|
||||||
id: 'profile',
|
id: 'profile',
|
||||||
link: `/user/${auth.value.user.username}`,
|
link: `/user/${user.username}`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'plus',
|
id: 'plus',
|
||||||
link: '/plus',
|
link: '/plus',
|
||||||
color: 'purple',
|
color: 'purple',
|
||||||
shown: !flags.value.hidePlusPromoInUserMenu && !isPermission(auth.value.user.badges, 1 << 0),
|
shown: !flags.value.hidePlusPromoInUserMenu && !isPermission(user.badges, 1 << 0),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'servers',
|
id: 'servers',
|
||||||
@@ -1052,7 +1055,7 @@ const userMenuOptions = computed(() => {
|
|||||||
{
|
{
|
||||||
id: 'affiliate-links',
|
id: 'affiliate-links',
|
||||||
link: '/dashboard/affiliate-links',
|
link: '/dashboard/affiliate-links',
|
||||||
shown: auth.value.user.badges & UserBadge.AFFILIATE,
|
shown: user.badges & UserBadge.AFFILIATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'revenue',
|
id: 'revenue',
|
||||||
|
|||||||
@@ -31,6 +31,6 @@ import { isStaff } from '@modrinth/utils'
|
|||||||
const { currentMember, projectV2 } = injectProjectPageContext()
|
const { currentMember, projectV2 } = injectProjectPageContext()
|
||||||
|
|
||||||
const showEnvironmentMigration = computed(() => {
|
const showEnvironmentMigration = computed(() => {
|
||||||
return isStaff(currentMember.value.user)
|
return isStaff(currentMember.value?.user)
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -319,12 +319,12 @@ const visibility = ref(
|
|||||||
|
|
||||||
const hasPermission = computed(() => {
|
const hasPermission = computed(() => {
|
||||||
const EDIT_DETAILS = 1 << 2
|
const EDIT_DETAILS = 1 << 2
|
||||||
return (props.currentMember.permissions & EDIT_DETAILS) === EDIT_DETAILS
|
return (props.currentMember?.permissions & EDIT_DETAILS) === EDIT_DETAILS
|
||||||
})
|
})
|
||||||
|
|
||||||
const hasDeletePermission = computed(() => {
|
const hasDeletePermission = computed(() => {
|
||||||
const DELETE_PROJECT = 1 << 7
|
const DELETE_PROJECT = 1 << 7
|
||||||
return (props.currentMember.permissions & DELETE_PROJECT) === DELETE_PROJECT
|
return (props.currentMember?.permissions & DELETE_PROJECT) === DELETE_PROJECT
|
||||||
})
|
})
|
||||||
|
|
||||||
const summaryWarning = computed(() => {
|
const summaryWarning = computed(() => {
|
||||||
|
|||||||
@@ -254,7 +254,7 @@ const donationLinks = ref(rawDonationLinks)
|
|||||||
|
|
||||||
const hasPermission = computed(() => {
|
const hasPermission = computed(() => {
|
||||||
const EDIT_DETAILS = 1 << 2
|
const EDIT_DETAILS = 1 << 2
|
||||||
return (props.currentMember.permissions & EDIT_DETAILS) === EDIT_DETAILS
|
return (props.currentMember?.permissions & EDIT_DETAILS) === EDIT_DETAILS
|
||||||
})
|
})
|
||||||
|
|
||||||
const patchData = computed(() => {
|
const patchData = computed(() => {
|
||||||
|
|||||||
@@ -128,7 +128,7 @@
|
|||||||
</span>
|
</span>
|
||||||
<div v-if="allTeamMembers[index]" class="permissions">
|
<div v-if="allTeamMembers[index]" class="permissions">
|
||||||
<Checkbox
|
<Checkbox
|
||||||
:model-value="(member.permissions & UPLOAD_VERSION) === UPLOAD_VERSION"
|
:model-value="(member?.permissions & UPLOAD_VERSION) === UPLOAD_VERSION"
|
||||||
:disabled="
|
:disabled="
|
||||||
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
||||||
(props.currentMember?.permissions & UPLOAD_VERSION) !== UPLOAD_VERSION
|
(props.currentMember?.permissions & UPLOAD_VERSION) !== UPLOAD_VERSION
|
||||||
@@ -137,7 +137,7 @@
|
|||||||
@update:model-value="allTeamMembers[index].permissions ^= UPLOAD_VERSION"
|
@update:model-value="allTeamMembers[index].permissions ^= UPLOAD_VERSION"
|
||||||
/>
|
/>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
:model-value="(member.permissions & DELETE_VERSION) === DELETE_VERSION"
|
:model-value="(member?.permissions & DELETE_VERSION) === DELETE_VERSION"
|
||||||
:disabled="
|
:disabled="
|
||||||
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
||||||
(props.currentMember?.permissions & DELETE_VERSION) !== DELETE_VERSION
|
(props.currentMember?.permissions & DELETE_VERSION) !== DELETE_VERSION
|
||||||
@@ -146,7 +146,7 @@
|
|||||||
@update:model-value="allTeamMembers[index].permissions ^= DELETE_VERSION"
|
@update:model-value="allTeamMembers[index].permissions ^= DELETE_VERSION"
|
||||||
/>
|
/>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
:model-value="(member.permissions & EDIT_DETAILS) === EDIT_DETAILS"
|
:model-value="(member?.permissions & EDIT_DETAILS) === EDIT_DETAILS"
|
||||||
:disabled="
|
:disabled="
|
||||||
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
||||||
(props.currentMember?.permissions & EDIT_DETAILS) !== EDIT_DETAILS
|
(props.currentMember?.permissions & EDIT_DETAILS) !== EDIT_DETAILS
|
||||||
@@ -155,7 +155,7 @@
|
|||||||
@update:model-value="allTeamMembers[index].permissions ^= EDIT_DETAILS"
|
@update:model-value="allTeamMembers[index].permissions ^= EDIT_DETAILS"
|
||||||
/>
|
/>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
:model-value="(member.permissions & EDIT_BODY) === EDIT_BODY"
|
:model-value="(member?.permissions & EDIT_BODY) === EDIT_BODY"
|
||||||
:disabled="
|
:disabled="
|
||||||
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
||||||
(props.currentMember?.permissions & EDIT_BODY) !== EDIT_BODY
|
(props.currentMember?.permissions & EDIT_BODY) !== EDIT_BODY
|
||||||
@@ -164,7 +164,7 @@
|
|||||||
@update:model-value="allTeamMembers[index].permissions ^= EDIT_BODY"
|
@update:model-value="allTeamMembers[index].permissions ^= EDIT_BODY"
|
||||||
/>
|
/>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
:model-value="(member.permissions & MANAGE_INVITES) === MANAGE_INVITES"
|
:model-value="(member?.permissions & MANAGE_INVITES) === MANAGE_INVITES"
|
||||||
:disabled="
|
:disabled="
|
||||||
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
||||||
(props.currentMember?.permissions & MANAGE_INVITES) !== MANAGE_INVITES
|
(props.currentMember?.permissions & MANAGE_INVITES) !== MANAGE_INVITES
|
||||||
@@ -173,7 +173,7 @@
|
|||||||
@update:model-value="allTeamMembers[index].permissions ^= MANAGE_INVITES"
|
@update:model-value="allTeamMembers[index].permissions ^= MANAGE_INVITES"
|
||||||
/>
|
/>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
:model-value="(member.permissions & REMOVE_MEMBER) === REMOVE_MEMBER"
|
:model-value="(member?.permissions & REMOVE_MEMBER) === REMOVE_MEMBER"
|
||||||
:disabled="
|
:disabled="
|
||||||
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
||||||
(props.currentMember?.permissions & REMOVE_MEMBER) !== REMOVE_MEMBER
|
(props.currentMember?.permissions & REMOVE_MEMBER) !== REMOVE_MEMBER
|
||||||
@@ -182,13 +182,13 @@
|
|||||||
@update:model-value="allTeamMembers[index].permissions ^= REMOVE_MEMBER"
|
@update:model-value="allTeamMembers[index].permissions ^= REMOVE_MEMBER"
|
||||||
/>
|
/>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
:model-value="(member.permissions & EDIT_MEMBER) === EDIT_MEMBER"
|
:model-value="(member?.permissions & EDIT_MEMBER) === EDIT_MEMBER"
|
||||||
:disabled="(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER"
|
:disabled="(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER"
|
||||||
label="Edit member"
|
label="Edit member"
|
||||||
@update:model-value="allTeamMembers[index].permissions ^= EDIT_MEMBER"
|
@update:model-value="allTeamMembers[index].permissions ^= EDIT_MEMBER"
|
||||||
/>
|
/>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
:model-value="(member.permissions & DELETE_PROJECT) === DELETE_PROJECT"
|
:model-value="(member?.permissions & DELETE_PROJECT) === DELETE_PROJECT"
|
||||||
:disabled="
|
:disabled="
|
||||||
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
||||||
(props.currentMember?.permissions & DELETE_PROJECT) !== DELETE_PROJECT
|
(props.currentMember?.permissions & DELETE_PROJECT) !== DELETE_PROJECT
|
||||||
@@ -197,7 +197,7 @@
|
|||||||
@update:model-value="allTeamMembers[index].permissions ^= DELETE_PROJECT"
|
@update:model-value="allTeamMembers[index].permissions ^= DELETE_PROJECT"
|
||||||
/>
|
/>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
:model-value="(member.permissions & VIEW_ANALYTICS) === VIEW_ANALYTICS"
|
:model-value="(member?.permissions & VIEW_ANALYTICS) === VIEW_ANALYTICS"
|
||||||
:disabled="
|
:disabled="
|
||||||
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
||||||
(props.currentMember?.permissions & VIEW_ANALYTICS) !== VIEW_ANALYTICS
|
(props.currentMember?.permissions & VIEW_ANALYTICS) !== VIEW_ANALYTICS
|
||||||
@@ -206,7 +206,7 @@
|
|||||||
@update:model-value="allTeamMembers[index].permissions ^= VIEW_ANALYTICS"
|
@update:model-value="allTeamMembers[index].permissions ^= VIEW_ANALYTICS"
|
||||||
/>
|
/>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
:model-value="(member.permissions & VIEW_PAYOUTS) === VIEW_PAYOUTS"
|
:model-value="(member?.permissions & VIEW_PAYOUTS) === VIEW_PAYOUTS"
|
||||||
:disabled="
|
:disabled="
|
||||||
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
||||||
(props.currentMember?.permissions & VIEW_PAYOUTS) !== VIEW_PAYOUTS
|
(props.currentMember?.permissions & VIEW_PAYOUTS) !== VIEW_PAYOUTS
|
||||||
@@ -402,7 +402,7 @@
|
|||||||
</span>
|
</span>
|
||||||
<div class="permissions">
|
<div class="permissions">
|
||||||
<Checkbox
|
<Checkbox
|
||||||
:model-value="(member.permissions & UPLOAD_VERSION) === UPLOAD_VERSION"
|
:model-value="(member?.permissions & UPLOAD_VERSION) === UPLOAD_VERSION"
|
||||||
:disabled="
|
:disabled="
|
||||||
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
||||||
(props.currentMember?.permissions & UPLOAD_VERSION) !== UPLOAD_VERSION ||
|
(props.currentMember?.permissions & UPLOAD_VERSION) !== UPLOAD_VERSION ||
|
||||||
@@ -412,7 +412,7 @@
|
|||||||
@update:model-value="allOrgMembers[index].permissions ^= UPLOAD_VERSION"
|
@update:model-value="allOrgMembers[index].permissions ^= UPLOAD_VERSION"
|
||||||
/>
|
/>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
:model-value="(member.permissions & DELETE_VERSION) === DELETE_VERSION"
|
:model-value="(member?.permissions & DELETE_VERSION) === DELETE_VERSION"
|
||||||
:disabled="
|
:disabled="
|
||||||
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
||||||
(props.currentMember?.permissions & DELETE_VERSION) !== DELETE_VERSION ||
|
(props.currentMember?.permissions & DELETE_VERSION) !== DELETE_VERSION ||
|
||||||
@@ -422,7 +422,7 @@
|
|||||||
@update:model-value="allOrgMembers[index].permissions ^= DELETE_VERSION"
|
@update:model-value="allOrgMembers[index].permissions ^= DELETE_VERSION"
|
||||||
/>
|
/>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
:model-value="(member.permissions & EDIT_DETAILS) === EDIT_DETAILS"
|
:model-value="(member?.permissions & EDIT_DETAILS) === EDIT_DETAILS"
|
||||||
:disabled="
|
:disabled="
|
||||||
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
||||||
(props.currentMember?.permissions & EDIT_DETAILS) !== EDIT_DETAILS ||
|
(props.currentMember?.permissions & EDIT_DETAILS) !== EDIT_DETAILS ||
|
||||||
@@ -432,7 +432,7 @@
|
|||||||
@update:model-value="allOrgMembers[index].permissions ^= EDIT_DETAILS"
|
@update:model-value="allOrgMembers[index].permissions ^= EDIT_DETAILS"
|
||||||
/>
|
/>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
:model-value="(member.permissions & EDIT_BODY) === EDIT_BODY"
|
:model-value="(member?.permissions & EDIT_BODY) === EDIT_BODY"
|
||||||
:disabled="
|
:disabled="
|
||||||
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
||||||
(props.currentMember?.permissions & EDIT_BODY) !== EDIT_BODY ||
|
(props.currentMember?.permissions & EDIT_BODY) !== EDIT_BODY ||
|
||||||
@@ -442,7 +442,7 @@
|
|||||||
@update:model-value="allOrgMembers[index].permissions ^= EDIT_BODY"
|
@update:model-value="allOrgMembers[index].permissions ^= EDIT_BODY"
|
||||||
/>
|
/>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
:model-value="(member.permissions & MANAGE_INVITES) === MANAGE_INVITES"
|
:model-value="(member?.permissions & MANAGE_INVITES) === MANAGE_INVITES"
|
||||||
:disabled="
|
:disabled="
|
||||||
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
||||||
(props.currentMember?.permissions & MANAGE_INVITES) !== MANAGE_INVITES ||
|
(props.currentMember?.permissions & MANAGE_INVITES) !== MANAGE_INVITES ||
|
||||||
@@ -452,7 +452,7 @@
|
|||||||
@update:model-value="allOrgMembers[index].permissions ^= MANAGE_INVITES"
|
@update:model-value="allOrgMembers[index].permissions ^= MANAGE_INVITES"
|
||||||
/>
|
/>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
:model-value="(member.permissions & REMOVE_MEMBER) === REMOVE_MEMBER"
|
:model-value="(member?.permissions & REMOVE_MEMBER) === REMOVE_MEMBER"
|
||||||
:disabled="
|
:disabled="
|
||||||
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
||||||
(props.currentMember?.permissions & REMOVE_MEMBER) !== REMOVE_MEMBER ||
|
(props.currentMember?.permissions & REMOVE_MEMBER) !== REMOVE_MEMBER ||
|
||||||
@@ -462,7 +462,7 @@
|
|||||||
@update:model-value="allOrgMembers[index].permissions ^= REMOVE_MEMBER"
|
@update:model-value="allOrgMembers[index].permissions ^= REMOVE_MEMBER"
|
||||||
/>
|
/>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
:model-value="(member.permissions & EDIT_MEMBER) === EDIT_MEMBER"
|
:model-value="(member?.permissions & EDIT_MEMBER) === EDIT_MEMBER"
|
||||||
:disabled="
|
:disabled="
|
||||||
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
||||||
!allOrgMembers[index].override
|
!allOrgMembers[index].override
|
||||||
@@ -471,7 +471,7 @@
|
|||||||
@update:model-value="allOrgMembers[index].permissions ^= EDIT_MEMBER"
|
@update:model-value="allOrgMembers[index].permissions ^= EDIT_MEMBER"
|
||||||
/>
|
/>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
:model-value="(member.permissions & DELETE_PROJECT) === DELETE_PROJECT"
|
:model-value="(member?.permissions & DELETE_PROJECT) === DELETE_PROJECT"
|
||||||
:disabled="
|
:disabled="
|
||||||
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
||||||
(props.currentMember?.permissions & DELETE_PROJECT) !== DELETE_PROJECT ||
|
(props.currentMember?.permissions & DELETE_PROJECT) !== DELETE_PROJECT ||
|
||||||
@@ -481,7 +481,7 @@
|
|||||||
@update:model-value="allOrgMembers[index].permissions ^= DELETE_PROJECT"
|
@update:model-value="allOrgMembers[index].permissions ^= DELETE_PROJECT"
|
||||||
/>
|
/>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
:model-value="(member.permissions & VIEW_ANALYTICS) === VIEW_ANALYTICS"
|
:model-value="(member?.permissions & VIEW_ANALYTICS) === VIEW_ANALYTICS"
|
||||||
:disabled="
|
:disabled="
|
||||||
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
||||||
(props.currentMember?.permissions & VIEW_ANALYTICS) !== VIEW_ANALYTICS ||
|
(props.currentMember?.permissions & VIEW_ANALYTICS) !== VIEW_ANALYTICS ||
|
||||||
@@ -491,7 +491,7 @@
|
|||||||
@update:model-value="allOrgMembers[index].permissions ^= VIEW_ANALYTICS"
|
@update:model-value="allOrgMembers[index].permissions ^= VIEW_ANALYTICS"
|
||||||
/>
|
/>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
:model-value="(member.permissions & VIEW_PAYOUTS) === VIEW_PAYOUTS"
|
:model-value="(member?.permissions & VIEW_PAYOUTS) === VIEW_PAYOUTS"
|
||||||
:disabled="
|
:disabled="
|
||||||
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER ||
|
||||||
(props.currentMember?.permissions & VIEW_PAYOUTS) !== VIEW_PAYOUTS ||
|
(props.currentMember?.permissions & VIEW_PAYOUTS) !== VIEW_PAYOUTS ||
|
||||||
|
|||||||
Reference in New Issue
Block a user