mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-09-22 13:39:35 +00:00
fix: terminal text alignment
This commit is contained in:
@@ -528,7 +528,8 @@ func browserCliLogin() (models.UserCredentials, error) {
|
||||
timeout := time.After(time.Second * time.Duration(SERVER_TIMEOUT))
|
||||
quit := make(chan bool)
|
||||
|
||||
//
|
||||
//terminal state
|
||||
var oldState term.State
|
||||
|
||||
//create handler
|
||||
c := cors.New(cors.Options{
|
||||
@@ -541,21 +542,24 @@ func browserCliLogin() (models.UserCredentials, error) {
|
||||
corsHandler := c.Handler(browserLoginHandler(success, failure))
|
||||
|
||||
log.Debug().Msgf("Callback server listening on port %d", callbackPort)
|
||||
go quitBrowserLogin(quit)
|
||||
go quitBrowserLogin(quit, &oldState)
|
||||
go http.Serve(listener, corsHandler)
|
||||
|
||||
for {
|
||||
select {
|
||||
case loginResponse := <-success:
|
||||
err = closeListener(&listener)
|
||||
restoreTerminal(&oldState)
|
||||
return loginResponse, nil
|
||||
|
||||
case err = <-failure:
|
||||
err = closeListener(&listener)
|
||||
restoreTerminal(&oldState)
|
||||
return models.UserCredentials{}, err
|
||||
|
||||
case _ = <-timeout:
|
||||
err = closeListener(&listener)
|
||||
restoreTerminal(&oldState)
|
||||
return models.UserCredentials{}, errors.New("server timeout")
|
||||
|
||||
case _ = <-quit:
|
||||
@@ -565,16 +569,20 @@ func browserCliLogin() (models.UserCredentials, error) {
|
||||
}
|
||||
}
|
||||
|
||||
func restoreTerminal(oldState *term.State) {
|
||||
term.Restore(int(os.Stdin.Fd()), oldState)
|
||||
}
|
||||
|
||||
// listens to 'q' input on terminal and
|
||||
// sends 'true' to 'quit' channel
|
||||
func quitBrowserLogin(quit chan bool) {
|
||||
func quitBrowserLogin(quit chan bool, oState *term.State) {
|
||||
//
|
||||
oldState, err := term.MakeRaw(int(os.Stdin.Fd()))
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
defer term.Restore(int(os.Stdin.Fd()), oldState)
|
||||
*oState = *oldState
|
||||
defer restoreTerminal(oldState)
|
||||
b := make([]byte, 1)
|
||||
for {
|
||||
_, _ = os.Stdin.Read(b)
|
||||
|
||||
@@ -39,7 +39,7 @@ export default function InitialLoginStep({
|
||||
|
||||
setIsLoading(true);
|
||||
const queryParams = new URLSearchParams(location.search)
|
||||
if (queryParams) {
|
||||
if (queryParams && queryParams.get("callback_port")) {
|
||||
const callbackPort = queryParams.get("callback_port")
|
||||
|
||||
//attemptCliLogin
|
||||
|
||||
@@ -79,7 +79,7 @@ export default function MFAStep({
|
||||
|
||||
setIsLoading(true);
|
||||
const queryParams = new URLSearchParams(location.search)
|
||||
if (queryParams){
|
||||
if (queryParams && queryParams.get("callback_port")){
|
||||
const callbackPort = queryParams.get("callback_port")
|
||||
|
||||
//attemptCliLogin
|
||||
@@ -94,7 +94,7 @@ export default function MFAStep({
|
||||
// case: login was successful
|
||||
const cliUrl = `http://localhost:${callbackPort}`
|
||||
|
||||
//send request to server endpoint
|
||||
//send request to server endpoint
|
||||
const instance = axios.create()
|
||||
const cliResp = await instance.post(cliUrl,{...isCliLoginSuccessful.loginResponse,email})
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ const userKeys = {
|
||||
getOrgUsers: (orgId: string) => [{ orgId }, 'user']
|
||||
};
|
||||
|
||||
const fetchUserDetails = async () => {
|
||||
export const fetchUserDetails = async () => {
|
||||
const { data } = await apiRequest.get<{ user: User }>('/api/v1/user');
|
||||
|
||||
return data.user;
|
||||
|
||||
@@ -4,13 +4,15 @@ import Head from 'next/head';
|
||||
import Image from 'next/image';
|
||||
import Link from 'next/link';
|
||||
import { useRouter } from 'next/router';
|
||||
import axios from "axios"
|
||||
|
||||
// import ListBox from '@app/components/basic/Listbox';
|
||||
import InitialLoginStep from '@app/components/login/InitialLoginStep';
|
||||
import MFAStep from '@app/components/login/MFAStep';
|
||||
import PasswordInputStep from '@app/components/login/PasswordInputStep';
|
||||
import { useProviderAuth } from '@app/hooks/useProviderAuth';
|
||||
import { isLoggedIn } from '@app/reactQuery';
|
||||
import { getAuthToken, isLoggedIn } from '@app/reactQuery';
|
||||
import { fetchUserDetails } from '~/hooks/api/users/queries';
|
||||
|
||||
import getWorkspaces from './api/workspace/getWorkspaces';
|
||||
|
||||
@@ -20,6 +22,7 @@ export default function Login() {
|
||||
const [password, setPassword] = useState('');
|
||||
const [step, setStep] = useState(1);
|
||||
const { t } = useTranslation();
|
||||
|
||||
// const lang = router.locale ?? 'en';
|
||||
const {
|
||||
providerAuthToken,
|
||||
@@ -44,6 +47,20 @@ export default function Login() {
|
||||
try {
|
||||
const userWorkspaces = await getWorkspaces();
|
||||
userWorkspace = userWorkspaces[0] && userWorkspaces[0]._id;
|
||||
|
||||
//user details
|
||||
const userDetails = await fetchUserDetails()
|
||||
//send details back to client
|
||||
|
||||
const queryParams = new URLSearchParams(location.search)
|
||||
if(queryParams && queryParams.get("callback_port")){
|
||||
const callback_port = queryParams.get("callback_port")
|
||||
|
||||
//send post request to cli with details
|
||||
const cliUrl = `http://localhost:${callback_port}`
|
||||
const instance = axios.create()
|
||||
const cliResp = await instance.post(cliUrl,{email:userDetails.email,privateKey:localStorage.getItem("PRIVATE_KEY"),JTWToken:getAuthToken()})
|
||||
}
|
||||
router.push(`/dashboard/${userWorkspace}`);
|
||||
} catch (error) {
|
||||
console.log('Error - Not logged in yet');
|
||||
|
||||
Reference in New Issue
Block a user