Skip to content

Commit d44e380

Browse files
authored
feat: some new permissions (#263)
1 parent e37e391 commit d44e380

File tree

10 files changed

+16
-18
lines changed

10 files changed

+16
-18
lines changed

apps/web-app/app/pages/sign-in.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
</div>
1010

1111
<div class="my-4 flex flex-col justify-between items-center bg-default z-10">
12-
<div class="flex-grow flex flex-col justify-center items-center">
12+
<div class="grow flex flex-col justify-center items-center">
1313
<UContainer>
1414
<h1 class="mb-10 text-2xl md:text-3xl font-bold text-center">
1515
{{ $t('app.welcome-message') }}

apps/web-app/server/api/partner/agreement/id/[agreementId]/index.patch.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import { type } from 'arktype'
44

55
export default defineEventHandler(async (event) => {
66
try {
7+
hasPermission(event.context.user, 'partner:agreement:edit')
8+
79
const agreementId = getRouterParam(event, 'agreementId')
810
if (!agreementId) {
911
throw createError({

apps/web-app/server/api/partner/agreement/index.post.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import { type } from 'arktype'
44

55
export default defineEventHandler(async (event) => {
66
try {
7+
hasPermission(event.context.user, 'partner:agreement:edit')
8+
79
const body = await readBody(event)
810
const data = createPartnerAgreementSchema(body)
911
if (data instanceof type.errors) {

apps/web-app/server/api/partner/id/[partnerId]/invoice.post.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import { recountPartnerBalance } from '~~/server/services/invoice'
66

77
export default defineEventHandler(async (event) => {
88
try {
9+
hasPermission(event.context.user, 'partner:invoice:edit')
10+
911
const partnerId = getRouterParam(event, 'partnerId')
1012
if (!partnerId) {
1113
throw createError({

apps/web-app/server/api/partner/invoice/id/[invoiceId]/index.patch.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import { recountPartnerBalance } from '~~/server/services/invoice'
66

77
export default defineEventHandler(async (event) => {
88
try {
9+
hasPermission(event.context.user, 'partner:invoice:edit')
10+
911
const invoiceId = getRouterParam(event, 'invoiceId')
1012
if (!invoiceId) {
1113
throw createError({

apps/web-app/server/utils/permission.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { User } from '@roll-stack/database'
1+
import type { PermissionCode, User } from '@roll-stack/database'
22

33
export function hasPermission(user: User, permission: PermissionCode): boolean {
44
if (!user) {

apps/web-app/shared/types/index.ts

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,6 @@ export type MediaWithItems = Media & {
2424
items: MediaItem[]
2525
}
2626

27-
export type PermissionCode = 'product:view'
28-
| 'product:edit'
29-
| 'product:delete'
30-
| 'product:image:edit'
31-
| 'post:view'
32-
| 'post:edit'
33-
| 'post:delete'
34-
| 'post:image:edit'
35-
| 'print:edit'
36-
| 'print:file:edit'
37-
| 'print:delete'
38-
3927
export type PrintWithData = Print & {
4028
mainFile: File | null
4129
previewFile: File | null

apps/webinar/app/app.config.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,16 @@ export default defineAppConfig({
1414
gradient: 'text-white bg-linear-to-br from-secondary-400 to-secondary-500 hover:opacity-90 disabled:from-neutral-300 disabled:to-neutral-400 aria-disabled:from-neutral-300 aria-disabled:to-neutral-400 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary',
1515
},
1616
color: {
17-
secondary: '!text-white disabled:!bg-inverted/25',
18-
orange: '!bg-[#f57e20] hover:!bg-orange-500 !text-white disabled:!bg-inverted/25',
17+
secondary: 'text-white! disabled:bg-inverted/25!',
18+
orange: 'bg-[#f57e20]! hover:bg-orange-500! text-white! disabled:bg-inverted/25!',
1919
},
2020
},
2121
},
2222
tabs: {
2323
variants: {
2424
variant: {
2525
pill: {
26-
trigger: 'data-[state=active]:!text-white',
26+
trigger: 'data-[state=active]:text-white!',
2727
},
2828
gradient: {
2929
list: 'bg-elevated rounded-lg',

apps/webinar/app/components/Header.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
class="hidden md:flex"
77
:ui="{
88
item: 'mr-3',
9-
link: '!text-xl text-primary hover:text-secondary pl-0.5',
9+
link: 'text-xl! text-primary hover:text-secondary pl-0.5',
1010
}"
1111
/>
1212

packages/database/src/types/entities.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ export type PermissionCode = 'product:view'
5050
| 'print:edit'
5151
| 'print:file:edit'
5252
| 'print:delete'
53+
| 'partner:agreement:edit'
54+
| 'partner:invoice:edit'
5355

5456
export type MediaFormat = 'jpg' | 'webp'
5557
export type FileFormat = 'docx' | 'cdr' | 'zip' | 'pdf'

0 commit comments

Comments
 (0)