mirror of
https://github.com/wisplite/raster.git
synced 2026-05-01 06:32:44 -05:00
basic account gating
This commit is contained in:
@@ -24,6 +24,7 @@ func Init() bool {
|
|||||||
&models.AccessToken{},
|
&models.AccessToken{},
|
||||||
&models.UserAlbumAccess{},
|
&models.UserAlbumAccess{},
|
||||||
&models.Media{},
|
&models.Media{},
|
||||||
|
&models.Settings{},
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("failed to migrate database: ", err)
|
log.Fatal("failed to migrate database: ", err)
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import { useNavigate } from 'react-router-dom'
|
|||||||
import { useNotifier } from '../../contexts/useNotifier'
|
import { useNotifier } from '../../contexts/useNotifier'
|
||||||
import AlbumEditModal from './AlbumEditModal'
|
import AlbumEditModal from './AlbumEditModal'
|
||||||
export default function AlbumList({ currentAlbumName }) {
|
export default function AlbumList({ currentAlbumName }) {
|
||||||
const { getAccessToken } = useAccount()
|
const { getAccessToken, user } = useAccount()
|
||||||
const [open, setOpen] = useState(false)
|
const [open, setOpen] = useState(false)
|
||||||
const [openEdit, setOpenEdit] = useState(false)
|
const [openEdit, setOpenEdit] = useState(false)
|
||||||
const [editingAlbum, setEditingAlbum] = useState(null)
|
const [editingAlbum, setEditingAlbum] = useState(null)
|
||||||
@@ -55,7 +55,7 @@ export default function AlbumList({ currentAlbumName }) {
|
|||||||
<div className="flex flex-col items-center justify-start h-min w-full bg-[#141414]">
|
<div className="flex flex-col items-center justify-start h-min w-full bg-[#141414]">
|
||||||
<div className="flex flex-row items-center justify-between gap-2 w-full px-6 py-4">
|
<div className="flex flex-row items-center justify-between gap-2 w-full px-6 py-4">
|
||||||
<h1 className="text-xl font-bold text-white red-hat-display">Albums</h1>
|
<h1 className="text-xl font-bold text-white red-hat-display">Albums</h1>
|
||||||
<PlusIcon className="w-6 h-6 cursor-pointer" color="white" onClick={() => setOpen(true)} />
|
<PlusIcon style={{ display: user?.IsAdmin ? 'block' : 'none' }} className="w-6 h-6 cursor-pointer" color="white" onClick={() => setOpen(true)} />
|
||||||
</div>
|
</div>
|
||||||
<div className="flex flex-row items-center justify-start gap-2 w-full px-6 flex-wrap">
|
<div className="flex flex-row items-center justify-start gap-2 w-full px-6 flex-wrap">
|
||||||
{albums.map((album) => (
|
{albums.map((album) => (
|
||||||
@@ -76,7 +76,7 @@ export default function AlbumList({ currentAlbumName }) {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<p className="text-white red-hat-text">{album.Title}</p>
|
<p className="text-white red-hat-text">{album.Title}</p>
|
||||||
<EllipsisVertical className="w-6 h-6 cursor-pointer" color="white" onClick={(e) => {
|
<EllipsisVertical style={{ display: user?.IsAdmin ? 'block' : 'none' }} className="w-6 h-6 cursor-pointer" color="white" onClick={(e) => {
|
||||||
e.stopPropagation()
|
e.stopPropagation()
|
||||||
setEditingAlbum(album)
|
setEditingAlbum(album)
|
||||||
setOpenEdit(true)
|
setOpenEdit(true)
|
||||||
|
|||||||
@@ -7,8 +7,9 @@ import { useAccount } from '../../contexts/useAccount'
|
|||||||
import { useNotifier } from '../../contexts/useNotifier'
|
import { useNotifier } from '../../contexts/useNotifier'
|
||||||
import { useNavigate } from 'react-router-dom'
|
import { useNavigate } from 'react-router-dom'
|
||||||
import * as Popover from '@radix-ui/react-popover'
|
import * as Popover from '@radix-ui/react-popover'
|
||||||
|
|
||||||
export default function MediaList({ albumId, albumName }) {
|
export default function MediaList({ albumId, albumName }) {
|
||||||
const { getAccessToken } = useAccount()
|
const { getAccessToken, user } = useAccount()
|
||||||
const [open, setOpen] = useState(false)
|
const [open, setOpen] = useState(false)
|
||||||
const [media, setMedia] = useState([])
|
const [media, setMedia] = useState([])
|
||||||
const [aspectRatios, setAspectRatios] = useState({})
|
const [aspectRatios, setAspectRatios] = useState({})
|
||||||
@@ -58,7 +59,7 @@ export default function MediaList({ albumId, albumName }) {
|
|||||||
<div className="flex flex-col items-center justify-start w-full bg-[#141414]">
|
<div className="flex flex-col items-center justify-start w-full bg-[#141414]">
|
||||||
<div className="flex flex-row items-center justify-between gap-2 w-full px-6 py-4">
|
<div className="flex flex-row items-center justify-between gap-2 w-full px-6 py-4">
|
||||||
<h1 className="text-xl font-bold text-white red-hat-display">Media</h1>
|
<h1 className="text-xl font-bold text-white red-hat-display">Media</h1>
|
||||||
<Upload className="w-6 h-6 cursor-pointer" color="white" onClick={() => setOpen(true)} />
|
<Upload style={{ display: user?.IsAdmin ? 'block' : 'none' }} className="w-6 h-6 cursor-pointer" color="white" onClick={() => setOpen(true)} />
|
||||||
</div>
|
</div>
|
||||||
<MediaUploadModal
|
<MediaUploadModal
|
||||||
open={open}
|
open={open}
|
||||||
@@ -104,7 +105,7 @@ export default function MediaList({ albumId, albumName }) {
|
|||||||
<button className="text-white px-1 py-1 rounded-md absolute top-2 right-2 cursor-pointer z-50" onClick={(e) => {
|
<button className="text-white px-1 py-1 rounded-md absolute top-2 right-2 cursor-pointer z-50" onClick={(e) => {
|
||||||
e.stopPropagation()
|
e.stopPropagation()
|
||||||
}}>
|
}}>
|
||||||
<EllipsisVertical className="w-4 h-4" />
|
<EllipsisVertical style={{ display: user?.IsAdmin ? 'block' : 'none' }} className="w-4 h-4" />
|
||||||
</button>
|
</button>
|
||||||
</Popover.Trigger>
|
</Popover.Trigger>
|
||||||
<Popover.Portal>
|
<Popover.Portal>
|
||||||
|
|||||||
Reference in New Issue
Block a user