From 1b22ca65fc5508ad59f6957b2ae0a6d7d8da2daa Mon Sep 17 00:00:00 2001 From: Yann Stepienik Date: Sun, 2 Jul 2023 15:28:14 +0100 Subject: [PATCH] [release] v0.9.0-unstable6 --- client/src/App.jsx | 25 +++++++++++--- client/src/api/index.jsx | 2 ++ client/src/pages/config/users/configman.jsx | 38 ++++++++++++--------- client/src/pages/config/users/restart.jsx | 2 +- client/src/routes/MainRoutes.jsx | 11 ------ package.json | 2 +- src/authorizationserver/oauth2.go | 3 +- src/utils/utils.go | 7 ++-- 8 files changed, 53 insertions(+), 37 deletions(-) diff --git a/client/src/App.jsx b/client/src/App.jsx index b83485a..f79c602 100644 --- a/client/src/App.jsx +++ b/client/src/App.jsx @@ -9,7 +9,8 @@ import logo from './assets/images/icons/cosmos.png'; import * as API from './api'; -import { setSnackit } from './api/wrap'; +import { setSnackit, snackit } from './api/wrap'; +import { DisconnectOutlined } from '@ant-design/icons'; // ==============================|| APP - THEME, ROUTER, LOCAL ||============================== // @@ -33,6 +34,7 @@ const App = () => { const [statusLoaded, setStatusLoaded] = React.useState(false); const [PrimaryColor, setPrimaryColor] = React.useState(API.PRIMARY_COLOR); const [SecondaryColor, setSecondaryColor] = React.useState(API.SECONDARY_COLOR); + const [timeoutError, setTimeoutError] = React.useState(false); SetPrimaryColor = (color) => { setPrimaryColor(color); @@ -45,13 +47,24 @@ const App = () => { } React.useEffect(() => { + const timeout = setTimeout( + () => { + setTimeoutError(true); + }, 10000 + ) API.getStatus(true).then((r) => { - if(r) { + clearTimeout(timeout); + if(r == "NOT_AVAILABLE") { + setTimeoutError(true); + } + else if(r) { setStatusLoaded(true); - } + } setPrimaryColor(API.PRIMARY_COLOR); setSecondaryColor(API.SECONDARY_COLOR); + }).catch(() => { + clearTimeout(timeout); setStatusLoaded(true); setPrimaryColor(API.PRIMARY_COLOR); setSecondaryColor(API.SECONDARY_COLOR); @@ -84,7 +97,11 @@ const App = () => { :
{/* */} - + {!timeoutError && } + {timeoutError && }
diff --git a/client/src/api/index.jsx b/client/src/api/index.jsx index 9b9997a..3e44e43 100644 --- a/client/src/api/index.jsx +++ b/client/src/api/index.jsx @@ -62,6 +62,8 @@ let getStatus = (initial) => { return "nothing"; } } + + return "NOT_AVAILABLE"; }); } diff --git a/client/src/pages/config/users/configman.jsx b/client/src/pages/config/users/configman.jsx index 0a87e5e..1fce67f 100644 --- a/client/src/pages/config/users/configman.jsx +++ b/client/src/pages/config/users/configman.jsx @@ -8,41 +8,34 @@ import { Alert, Button, Checkbox, - Divider, FormControlLabel, Grid, - IconButton, - InputAdornment, InputLabel, - Link, OutlinedInput, Stack, - Typography, FormHelperText, - Collapse, TextField, MenuItem, Skeleton, - } from '@mui/material'; -import { EyeOutlined, EyeInvisibleOutlined } from '@ant-design/icons'; -import AnimateButton from '../../../components/@extended/AnimateButton'; import RestartModal from './restart'; -import { WarningOutlined, PlusCircleOutlined, CopyOutlined, ExclamationCircleOutlined , SyncOutlined, UserOutlined, KeyOutlined } from '@ant-design/icons'; +import { SyncOutlined } from '@ant-design/icons'; import { CosmosCheckbox, CosmosFormDivider, CosmosInputPassword, CosmosInputText, CosmosSelect } from './formShortcuts'; -import CountrySelect, { countries } from '../../../components/countrySelect'; +import CountrySelect from '../../../components/countrySelect'; import { DnsChallengeComp } from '../../../utils/dns-challenge-comp'; -import { values } from 'lodash'; + import UploadButtons from '../../../components/fileUpload'; import { TwitterPicker } from 'react-color'; -import {SetPrimaryColor, SetSecondaryColor} from '../../../App'; -import { LoadingButton } from '@mui/lab'; + import { LoadingButton } from '@mui/lab'; + // TODO: Remove circular deps + import {SetPrimaryColor, SetSecondaryColor} from '../../../App'; const ConfigManagement = () => { const [config, setConfig] = React.useState(null); const [openModal, setOpenModal] = React.useState(false); + const [openResartModal, setOpenRestartModal] = React.useState(false); const [uploadingBackground, setUploadingBackground] = React.useState(false); const [saveLabel, setSaveLabel] = React.useState("Save"); @@ -58,11 +51,21 @@ const ConfigManagement = () => { return
-

+ + + + + + + {config && <> + + { PrimaryColor: config && config.ThemeConfig && config.ThemeConfig.PrimaryColor, SecondaryColor: config && config.ThemeConfig && config.ThemeConfig.SecondaryColor, }} + validationSchema={Yup.object().shape({ Hostname: Yup.string().max(255).required('Hostname is required'), MongoDB: Yup.string().max(512), diff --git a/client/src/pages/config/users/restart.jsx b/client/src/pages/config/users/restart.jsx index 830687f..c68aec9 100644 --- a/client/src/pages/config/users/restart.jsx +++ b/client/src/pages/config/users/restart.jsx @@ -70,7 +70,7 @@ const RestartModal = ({openModal, setOpenModal, config}) => {
- : 'A restart is required to apply changes. Do you want to restart?'} + : 'Do you want to restart your server?'} {!isRestarting && diff --git a/client/src/routes/MainRoutes.jsx b/client/src/routes/MainRoutes.jsx index 71a450a..503e179 100644 --- a/client/src/routes/MainRoutes.jsx +++ b/client/src/routes/MainRoutes.jsx @@ -12,7 +12,6 @@ import RouteConfigPage from '../pages/config/routeConfigPage'; import logo from '../assets/images/icons/cosmos.png'; import HomePage from '../pages/home'; import ContainerIndex from '../pages/servapps/containers'; -import NewDockerService from '../pages/servapps/containers/newService'; import NewDockerServiceForm from '../pages/servapps/containers/newServiceForm'; import OpenIdList from '../pages/openid/openid-list'; import MarketPage from '../pages/market/listing'; @@ -21,16 +20,6 @@ import MarketPage from '../pages/market/listing'; // render - dashboard const DashboardDefault = Loadable(lazy(() => import('../pages/dashboard'))); -// render - sample page -const SamplePage = Loadable(lazy(() => import('../pages/extra-pages/SamplePage'))); - -// render - utilities -const Typography = Loadable(lazy(() => import('../pages/components-overview/Typography'))); -const Color = Loadable(lazy(() => import('../pages/components-overview/Color'))); -const Shadow = Loadable(lazy(() => import('../pages/components-overview/Shadow'))); -const AntIcons = Loadable(lazy(() => import('../pages/components-overview/AntIcons'))); - - // ==============================|| MAIN ROUTING ||============================== // const MainRoutes = { diff --git a/package.json b/package.json index 251110a..c6f8a98 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cosmos-server", - "version": "0.9.0-unstable5", + "version": "0.9.0-unstable6", "description": "", "main": "test-server.js", "bugs": { diff --git a/src/authorizationserver/oauth2.go b/src/authorizationserver/oauth2.go index beeaafe..5c6f98b 100644 --- a/src/authorizationserver/oauth2.go +++ b/src/authorizationserver/oauth2.go @@ -7,6 +7,7 @@ import ( "time" "net/http" "os" + "strings" "crypto/sha256" "encoding/binary" @@ -49,7 +50,7 @@ func Init() { store.Clients[client.ID] = &fosite.DefaultClient{ ID: client.ID, Secret: []byte(client.Secret), - RedirectURIs: []string{client.Redirect}, + RedirectURIs: strings.Split(client.Redirect, ","), Scopes: []string{"openid", "email", "profile", "offline", "roles", "groups", "address", "phone", "role"}, ResponseTypes: []string{"id_token", "code", "token", "id_token token", "code id_token", "code token", "code id_token token"}, GrantTypes: []string{"implicit", "refresh_token", "authorization_code", "password", "client_credentials"}, diff --git a/src/utils/utils.go b/src/utils/utils.go index 5bc2ff5..11b2287 100644 --- a/src/utils/utils.go +++ b/src/utils/utils.go @@ -358,9 +358,12 @@ func GetAllHostnames(applyWildCard bool, removePorts bool) []string { } if applyWildCard && MainConfig.HTTPConfig.UseWildcardCertificate { + // remove subdomains, keep domain.extension + bareMainHostname := strings.Split(mainHostname, ".")[len(strings.Split(mainHostname, "."))-2] + "." + strings.Split(mainHostname, ".")[len(strings.Split(mainHostname, "."))-1] + filteredHostnames := []string{ - mainHostname, - "*." + mainHostname, + bareMainHostname, + "*." + bareMainHostname, } for _, hostname := range uniqueHostnames {