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