Compare commits

...

4 Commits

Author SHA1 Message Date
Elias Schneider
c0d0f6fa90 release: 0.3.2 2022-12-07 12:41:14 +01:00
Elias Schneider
4a016ed57d fix: unauthenticated dialog not shown 2022-12-06 11:05:04 +01:00
Elias Schneider
5ea63fb60b fix: use session storage for share token 2022-12-06 10:54:17 +01:00
Elias Schneider
57cb683c64 fix: make share password optional 2022-12-05 23:58:18 +01:00
6 changed files with 27 additions and 21 deletions

View File

@@ -1,3 +1,12 @@
### [0.3.2](https://github.com/stonith404/pingvin-share/compare/v0.3.1...v0.3.2) (2022-12-07)
### Bug Fixes
* make share password optional ([57cb683](https://github.com/stonith404/pingvin-share/commit/57cb683c64eaedec2697ea6863948bd2ae68dd75))
* unauthenticated dialog not shown ([4a016ed](https://github.com/stonith404/pingvin-share/commit/4a016ed57db526ee900c567f7b7f0991f948c631))
* use session storage for share token ([5ea63fb](https://github.com/stonith404/pingvin-share/commit/5ea63fb60be0c508c38ba228cc8ac6dd7b403aac))
### [0.3.1](https://github.com/stonith404/pingvin-share/compare/v0.3.0...v0.3.1) (2022-12-05) ### [0.3.1](https://github.com/stonith404/pingvin-share/compare/v0.3.0...v0.3.1) (2022-12-05)

View File

@@ -1,6 +1,7 @@
import { IsString } from "class-validator"; import { IsOptional, IsString } from "class-validator";
export class SharePasswordDto { export class SharePasswordDto {
@IsString() @IsString()
@IsOptional()
password: string; password: string;
} }

View File

@@ -29,8 +29,8 @@ const showCreateUploadModal = (
modals: ModalsContextProps, modals: ModalsContextProps,
options: { options: {
isUserSignedIn: boolean; isUserSignedIn: boolean;
ALLOW_UNAUTHENTICATED_SHARES: boolean; allowUnauthenticatedShares: boolean;
ENABLE_EMAIL_RECIPIENTS: boolean; enableEmailRecepients: boolean;
}, },
uploadCallback: ( uploadCallback: (
id: string, id: string,
@@ -62,15 +62,13 @@ const CreateUploadModalBody = ({
) => void; ) => void;
options: { options: {
isUserSignedIn: boolean; isUserSignedIn: boolean;
ALLOW_UNAUTHENTICATED_SHARES: boolean; allowUnauthenticatedShares: boolean;
ENABLE_EMAIL_RECIPIENTS: boolean; enableEmailRecepients: boolean;
}; };
}) => { }) => {
const modals = useModals(); const modals = useModals();
const [showNotSignedInAlert, setShowNotSignedInAlert] = useState( const [showNotSignedInAlert, setShowNotSignedInAlert] = useState(true);
options.ENABLE_EMAIL_RECIPIENTS
);
const validationSchema = yup.object().shape({ const validationSchema = yup.object().shape({
link: yup link: yup
@@ -230,7 +228,7 @@ const CreateUploadModalBody = ({
{ExpirationPreview({ form })} {ExpirationPreview({ form })}
</Text> </Text>
<Accordion> <Accordion>
{options.ENABLE_EMAIL_RECIPIENTS && ( {options.enableEmailRecepients && (
<Accordion.Item value="recipients" sx={{ borderBottom: "none" }}> <Accordion.Item value="recipients" sx={{ borderBottom: "none" }}>
<Accordion.Control>Email recipients</Accordion.Control> <Accordion.Control>Email recipients</Accordion.Control>
<Accordion.Panel> <Accordion.Panel>

View File

@@ -105,21 +105,19 @@ const Upload = () => {
<Button <Button
loading={isUploading} loading={isUploading}
disabled={files.length <= 0} disabled={files.length <= 0}
onClick={() => onClick={() => {
showCreateUploadModal( showCreateUploadModal(
modals, modals,
{ {
isUserSignedIn: user ? true : false, isUserSignedIn: user ? true : false,
ALLOW_UNAUTHENTICATED_SHARES: config.get( allowUnauthenticatedShares: config.get(
"ALLOW_UNAUTHENTICATED_SHARES" "ALLOW_UNAUTHENTICATED_SHARES"
), ),
ENABLE_EMAIL_RECIPIENTS: config.get( enableEmailRecepients: config.get("ENABLE_EMAIL_RECIPIENTS"),
"ENABLE_EMAIL_RECIPIENTS"
),
}, },
uploadFiles uploadFiles
) );
} }}
> >
Share Share
</Button> </Button>

View File

@@ -21,7 +21,7 @@ const completeShare = async (id: string) => {
}; };
const get = async (id: string): Promise<Share> => { const get = async (id: string): Promise<Share> => {
const shareToken = localStorage.getItem(`share_${id}_token`); const shareToken = sessionStorage.getItem(`share_${id}_token`);
return ( return (
await api.get(`shares/${id}`, { await api.get(`shares/${id}`, {
headers: { "X-Share-Token": shareToken ?? "" }, headers: { "X-Share-Token": shareToken ?? "" },
@@ -30,7 +30,7 @@ const get = async (id: string): Promise<Share> => {
}; };
const getMetaData = async (id: string): Promise<ShareMetaData> => { const getMetaData = async (id: string): Promise<ShareMetaData> => {
const shareToken = localStorage.getItem(`share_${id}_token`); const shareToken = sessionStorage.getItem(`share_${id}_token`);
return ( return (
await api.get(`shares/${id}/metaData`, { await api.get(`shares/${id}/metaData`, {
headers: { "X-Share-Token": shareToken ?? "" }, headers: { "X-Share-Token": shareToken ?? "" },
@@ -49,7 +49,7 @@ const getMyShares = async (): Promise<MyShare[]> => {
const getShareToken = async (id: string, password?: string) => { const getShareToken = async (id: string, password?: string) => {
const { token } = (await api.post(`/shares/${id}/token`, { password })).data; const { token } = (await api.post(`/shares/${id}/token`, { password })).data;
localStorage.setItem(`share_${id}_token`, token); sessionStorage.setItem(`share_${id}_token`, token);
}; };
const isShareIdAvailable = async (id: string): Promise<boolean> => { const isShareIdAvailable = async (id: string): Promise<boolean> => {
@@ -57,7 +57,7 @@ const isShareIdAvailable = async (id: string): Promise<boolean> => {
}; };
const getFileDownloadUrl = async (shareId: string, fileId: string) => { const getFileDownloadUrl = async (shareId: string, fileId: string) => {
const shareToken = localStorage.getItem(`share_${shareId}_token`); const shareToken = sessionStorage.getItem(`share_${shareId}_token`);
return ( return (
await api.get(`shares/${shareId}/files/${fileId}/download`, { await api.get(`shares/${shareId}/files/${fileId}/download`, {
headers: { "X-Share-Token": shareToken ?? "" }, headers: { "X-Share-Token": shareToken ?? "" },

View File

@@ -1,6 +1,6 @@
{ {
"name": "pingvin-share", "name": "pingvin-share",
"version": "0.3.1", "version": "0.3.2",
"scripts": { "scripts": {
"format": "cd frontend && npm run format && cd ../backend && npm run format", "format": "cd frontend && npm run format && cd ../backend && npm run format",
"lint": "cd frontend && npm run lint && cd ../backend && npm run lint", "lint": "cd frontend && npm run lint && cd ../backend && npm run lint",