Skip to content

Commit

Permalink
Merge master (#406)
Browse files Browse the repository at this point in the history
* Custom badge commission input (#402)

* commission : input, add permission field

* orga permisison is orgaprice

* fix: permission can know be invite + add ' ' value

* fix: permission as BadgePermission

---------

Co-authored-by: Antoine D <[email protected]>

* security: disable possibility for non-admin users from editing  fields except "place" in user modal (#404)

* feat: trailer added (#405)

Co-authored-by: Antoine D <[email protected]>

---------

Co-authored-by: Antoine D <[email protected]>
  • Loading branch information
Suboyyy and Antoine D authored Oct 13, 2024
1 parent ac9d2e7 commit 4489c5a
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 24 deletions.
23 changes: 18 additions & 5 deletions src/app/(dashboard)/admin/genbadge/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -142,18 +142,31 @@ const GenBadges = () => {
}}
required
/>
<Select
<Input
label="Commission"
value={fields![i]?.commissionId ?? ''}
onChange={(e) => {
const newFields = [...fields!];
newFields[i] = { ...newFields[i], commissionId: e };
setFields(newFields);
}}
options={commissions.map((commission) => ({
label: commission.name,
value: commission.id,
}))}
required
/>
<Select
label="Permissions"
value={fields![i]?.permission ?? ''}
onChange={(e) => {
const newFields = [...fields!];
newFields[i] = { ...newFields[i], permission: e as BadgePermission };
setFields(newFields);
}}
options={[
{ label: 'Aucune', value: '' },
{ label: 'Restreint', value: 'restricted' },
{ label: 'Organisateur', value: 'orgaprice' },
{ label: 'Accès total', value: 'fullaccess' },
{ label: 'Invité', value: 'invite' },
]}
required
/>
<Select
Expand Down
4 changes: 2 additions & 2 deletions src/app/(dashboard)/admin/genbadge/style.module.scss
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
align-items: center;
margin-bottom: 2rem;
> * {
max-width: 50%;
max-width: 75%;
margin-bottom: 0;
> * {
margin-left: 1rem;
Expand All @@ -34,7 +34,7 @@
justify-content: space-between;
align-items: flex-end;
gap: 1rem;

> button {
margin: 1.25rem 0;
padding: 0.75rem 1rem;
Expand Down
4 changes: 2 additions & 2 deletions src/app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import Partners from '@/components/Partners';
import Slider from '@/components/landing/Slider';
import Counter from '@/components/landing/Counter';
import BoxContainer from '@/components/landing/BoxContainer';
import { VerticalDivider, Button, Title, Icon, TextBlock } from '@/components/UI';
import { VerticalDivider, Button, Title, Icon, TextBlock, YoutubeVideoContainer } from '@/components/UI';
import AppearFromSide from '@/components/UI/AppearFromSide';
import Link from 'next/link';
import ParallaxElementSettings from '@/components/parallax/ParallaxElementSettings';
Expand Down Expand Up @@ -65,7 +65,7 @@ const Home = () => {
</p>
</div>
</div>,
/*<YoutubeVideoContainer key={'slide-2'} id="Rapw-tXMeDU" />,*/
<YoutubeVideoContainer key={'slide-2'} id="geOoiwoYtps" />,
<div key={'slide-3'} className={styles.homeHeader}>
<div className={styles.content}>
<img src={banner.src} alt="Rejoindre l'aventure" loading="lazy" />
Expand Down
23 changes: 9 additions & 14 deletions src/components/dashboard/UserModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -275,26 +275,20 @@ const UserModal = ({
containerClassName={styles.userModal}>
<>
<Input label="ID" value={searchUser?.id ?? ''} readOnly />
<Input label="Nom" value={lastname} onChange={setLastname} disabled={!isAdmin && !isAnim} />
<Input label="Prénom" value={firstname} onChange={setFirstname} disabled={!isAdmin && !isAnim} />
<Input label="Nom" value={lastname} onChange={setLastname} disabled={!isAdmin} />
<Input label="Prénom" value={firstname} onChange={setFirstname} disabled={!isAdmin} />
{(!searchUser || searchUser.type !== UserType.attendant) && (
<>
<Input label="Pseudo" value={username} onChange={setUsername} disabled={!isAdmin && !isAnim} />
<Input label="Email" value={email} onChange={setEmail} disabled={!isAdmin && !isAnim} />
<Input label="Pseudo" value={username} onChange={setUsername} disabled={!isAdmin} />
<Input label="Email" value={email} onChange={setEmail} disabled={!isAdmin} />
{!searchUser && (
<Input
label="Mot de passe"
type="password"
value={password}
onChange={setPassword}
disabled={!isAdmin && !isAnim}
/>
<Input label="Mot de passe" type="password" value={password} onChange={setPassword} disabled={!isAdmin} />
)}
<Textarea
label="Infos complémentaires"
value={customMessage ?? ''}
onChange={setCustomMessage}
disabled={!isAdmin && !isAnim}
disabled={!isAdmin}
/>
{searchUser && (
<>
Expand Down Expand Up @@ -426,7 +420,7 @@ const UserModal = ({
options={typeOptions}
value={type?.toString()}
onChange={(v) => setType(v as unknown as UserType)}
disabled={searchUser.hasPaid}></Radio>
disabled={searchUser.hasPaid || !isAdmin}></Radio>
<Radio
label="Âge"
name="age"
Expand All @@ -435,13 +429,14 @@ const UserModal = ({
value={age?.toString()}
onChange={(v) => setAge(v as unknown as UserAge)}
disabled={
!isAdmin ||
searchUser.type === UserType.attendant ||
(searchUser.hasPaid && searchUser.age === UserAge.child && searchUser.attendant !== null)
}></Radio>
{searchUser.type !== UserType.attendant && (
<>
<Input label="Place" value={place} onChange={setPlace} />
<Input label="Discord Id" value={discordId} onChange={setDiscordId}></Input>
<Input label="Discord Id" value={discordId} onChange={setDiscordId} disabled={!isAdmin}></Input>
</>
)}
</>
Expand Down
2 changes: 1 addition & 1 deletion src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,7 @@ export interface UserFilters extends Record<string, string | undefined> {
}

export type BadgeType = 'orgas' | 'custom' | 'single' | 'singlecustom';
export type BadgePermission = 'restricted' | 'orgaprice' | 'fullaccess';
export type BadgePermission = 'restricted' | 'orgaprice' | 'fullaccess' | 'invite';

export interface Badge {
type: BadgeType;
Expand Down

0 comments on commit 4489c5a

Please sign in to comment.