From 831acbb5dafa574c716e818484d1703e0d21dce7 Mon Sep 17 00:00:00 2001 From: Rama Priyanto Date: Tue, 25 Mar 2025 00:03:56 +0700 Subject: [PATCH] disable otp --- .../form/article/speech-to-text-form.tsx | 1 - components/form/login.tsx | 236 ++++++++++++++++-- 2 files changed, 222 insertions(+), 15 deletions(-) diff --git a/components/form/article/speech-to-text-form.tsx b/components/form/article/speech-to-text-form.tsx index 36ea6f7..dae38a2 100644 --- a/components/form/article/speech-to-text-form.tsx +++ b/components/form/article/speech-to-text-form.tsx @@ -40,7 +40,6 @@ export default function SpeechToText(props: { }) { const searchParam = useSearchParams(); const transcriptQuery = searchParam.get("transcriptId"); - const roleId = Cookies.get("urie"); let [files, setFiles] = useState([]); const [handleFileStatus, setHandleFileStatus] = useState(""); diff --git a/components/form/login.tsx b/components/form/login.tsx index 5c940e5..e98bb13 100644 --- a/components/form/login.tsx +++ b/components/form/login.tsx @@ -19,18 +19,26 @@ import withReactContent from "sweetalert2-react-content"; import { saveActivity } from "@/service/activity-log"; import { Image } from "@heroui/react"; import { InputOtp } from "@heroui/input-otp"; +import PasswordChecklist from "react-password-checklist"; export default function Login() { const router = useRouter(); - const [isVisible, setIsVisible] = React.useState(false); + const [isVisible, setIsVisible] = useState(false); + const [isVisibleSetup, setIsVisibleSetup] = useState([false, false]); + const [emailSetup, setEmailSetup] = useState(""); + const [passwordSetup, setPasswordSetup] = useState(""); + const [confPasswordSetup, setConfPasswordSetup] = useState(""); const toggleVisibility = () => setIsVisible(!isVisible); const [needOtp, setNeedOtp] = useState(false); + const [isFirstLogin, setFirstLogin] = useState(false); const [otpValue, setOtpValue] = useState(""); const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [accessData, setAccessData] = useState(); const [profile, setProfile] = useState(); + const [isValidPassword, setIsValidPassword] = useState(false); + const onSubmit = async () => { const data = { username: username, @@ -46,16 +54,84 @@ export default function Login() { error("Username / Password Tidak Sesuai"); } else { setAccessData(response?.data?.data); - const access_token: any = response?.data?.data?.access_token; - const refresh_token: any = response?.data?.data?.refresh_token; - const profile = await getProfile(access_token); - console.log("PROFILE : ", profile?.data?.data?.email); - setProfile(profile?.data?.data); - const res = await otpRequest( - profile?.data?.data?.email, - profile?.data?.data?.fullname + const profile = await getProfile(response?.data?.data?.access_token); + console.log("PROFILE : ", profile?.data?.data); + // setEmailSetup(profile?.data?.data?.email); + // setProfile(profile?.data?.data); + // setFirstLogin(true); + + // if (profile?.data?.data?.isFirstLogin) { + // setFirstLogin(true); + // } else { + // const res = await otpRequest( + // profile?.data?.data?.email, + // profile?.data?.data?.fullname + // ); + // setNeedOtp(true); + // } + + const dateTime: any = new Date(); + + const newTime: any = dateTime.getTime() + 10 * 60 * 1000; + + Cookies.set("access_token", response?.data?.data?.access_token, { + expires: 1, + }); + Cookies.set("refresh_token", response?.data?.data?.refresh_token, { + expires: 1, + }); + Cookies.set("time_refresh", newTime, { + expires: 1, + }); + Cookies.set("is_first_login", "true", { + secure: true, + sameSite: "strict", + }); + const resActivity = await saveActivity( + { + activityTypeId: 1, + url: "https://kontenhumas.com/auth", + userId: profile?.data?.data?.id, + }, + accessData?.id_token ); - setNeedOtp(true); + Cookies.set("profile_picture", profile?.data?.data?.profilePictureUrl, { + expires: 1, + }); + Cookies.set("uie", profile?.data?.data?.id, { + expires: 1, + }); + Cookies.set("ufne", profile?.data?.data?.fullname, { + expires: 1, + }); + Cookies.set("ulie", profile?.data?.data?.userLevelGroup, { + expires: 1, + }); + Cookies.set("username", profile?.data?.data?.username, { + expires: 1, + }); + Cookies.set("urie", profile?.data?.data?.roleId, { + expires: 1, + }); + Cookies.set("roleName", profile?.data?.data?.roleName, { + expires: 1, + }); + Cookies.set("masterPoldaId", profile?.data?.data?.masterPoldaId, { + expires: 1, + }); + Cookies.set("ulne", profile?.data?.data?.userLevelId, { + expires: 1, + }); + Cookies.set("urce", profile?.data?.data?.roleCode, { + expires: 1, + }); + Cookies.set("email", profile?.data?.data?.email, { + expires: 1, + }); + router.push("/admin/dashboard"); + Cookies.set("status", "login", { + expires: 1, + }); close(); } @@ -175,6 +251,40 @@ export default function Login() { close(); }; + const generatePassword = () => { + const length = Math.floor(Math.random() * 9) + 8; + + const upperCaseChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + const lowerCaseChars = "abcdefghijklmnopqrstuvwxyz"; + const numberChars = "0123456789"; + const specialChars = "!@#$%^&*"; + const allChars = + upperCaseChars + lowerCaseChars + numberChars + specialChars; + + let generatedPassword = ""; + + generatedPassword += + upperCaseChars[Math.floor(Math.random() * upperCaseChars.length)]; + generatedPassword += + specialChars[Math.floor(Math.random() * specialChars.length)]; + generatedPassword += + numberChars[Math.floor(Math.random() * numberChars.length)]; + generatedPassword += + lowerCaseChars[Math.floor(Math.random() * lowerCaseChars.length)]; + + for (let i = generatedPassword.length; i < length; i++) { + generatedPassword += + allChars[Math.floor(Math.random() * allChars.length)]; + } + + generatedPassword = generatedPassword + .split("") + .sort(() => 0.5 - Math.random()) + .join(""); + + setPasswordSetup(generatedPassword); + }; + return (
- {needOtp ? ( + {isFirstLogin ? ( +
+

+ Setting Account +

+

Email

+ +

Password Baru

+ + setIsVisibleSetup([!isVisibleSetup[0], isVisibleSetup[1]]) + } + > + {isVisibleSetup[0] ? ( + + ) : ( + + )} + + } + type={isVisibleSetup[0] ? "text" : "password"} + label="" + placeholder="" + value={passwordSetup} + onValueChange={setPasswordSetup} + /> +

Konfirmasi Password Baru

+ + setIsVisibleSetup([isVisibleSetup[0], !isVisibleSetup[1]]) + } + > + {isVisibleSetup[1] ? ( + + ) : ( + + )} + + } + type={isVisibleSetup[1] ? "text" : "password"} + label="" + placeholder="" + value={confPasswordSetup} + onValueChange={setConfPasswordSetup} + /> + + Generate Password + + { + setIsValidPassword(isValid); + }} + className="text-white text-sm my-3" + messages={{ + minLength: "Kata sandi harus lebih dari 8 karakter", + specialChar: "Kata sandi harus mengandung karakter khusus", + number: "Kata sandi harus mengandung angka", + capital: "Kata sandi harus mengandung huruf kapital", + match: "Kata sandi cocok", + }} + /> + +
+ ) : needOtp ? (

Login @@ -237,6 +446,7 @@ export default function Login() { label="" placeholder="" className="my-2" + classNames={{ input: "rounded-md", inputWrapper: "rounded-md" }} value={checkUsernameValue} onChange={(e: any) => { setCheckUsernameValue(e.target.value.trim()); @@ -264,9 +474,7 @@ export default function Login() { > Beranda - {/*

- Remember me -
*/} + setIsResetPassword(false)}