From 01f1a028374d1659eaf9c18d0b68e6d4e5110549 Mon Sep 17 00:00:00 2001 From: Kurt Hutten Date: Tue, 10 Nov 2020 20:49:19 +1100 Subject: [PATCH 1/4] Add alpha numeric regex to username on sign up resolves #82 --- api/src/functions/identity-signup.js | 3 ++- api/src/services/helpers.js | 2 ++ api/src/services/parts/parts.js | 5 ++--- api/src/services/users/users.js | 3 ++- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/api/src/functions/identity-signup.js b/api/src/functions/identity-signup.js index 1d0a003..b9f3460 100644 --- a/api/src/functions/identity-signup.js +++ b/api/src/functions/identity-signup.js @@ -1,5 +1,6 @@ import { createUserInsecure } from 'src/services/users/users.js' import { db } from 'src/lib/db' +import { enforceAlphaNumeric } from 'src/services/helpers' export const handler = async (req, _context) => { const body = JSON.parse(req.body) @@ -74,7 +75,7 @@ export const handler = async (req, _context) => { const newSeed = count === 1 ? `${seed}_${count}` : seed.slice(0,-1) + count return generateUniqueUserName(newSeed, count) } - const userNameSeed = email.split('@')[0] + const userNameSeed = enforceAlphaNumeric(email.split('@')[0]) const userName = await generateUniqueUserName(userNameSeed) // TODO maybe come up with a better default userName? const input = { email, diff --git a/api/src/services/helpers.js b/api/src/services/helpers.js index ed474f3..d6e21f3 100644 --- a/api/src/services/helpers.js +++ b/api/src/services/helpers.js @@ -11,3 +11,5 @@ export const foreignKeyReplacement = (input) => { }) return output } + +export const enforceAlphaNumeric = (string) => string.replace(/([^a-zA-Z\d_:])/g, '-') diff --git a/api/src/services/parts/parts.js b/api/src/services/parts/parts.js index 1b96b42..260442c 100644 --- a/api/src/services/parts/parts.js +++ b/api/src/services/parts/parts.js @@ -1,8 +1,7 @@ import { db } from 'src/lib/db' -import { foreignKeyReplacement } from 'src/services/helpers' +import { foreignKeyReplacement, enforceAlphaNumeric } from 'src/services/helpers' import { requireAuth } from 'src/lib/auth' import { requireOwnership } from 'src/lib/owner' -import { user } from 'src/services/users/users' export const parts = () => { return db.part.findMany() @@ -40,7 +39,7 @@ export const updatePart = async ({ id, input }) => { requireAuth() await requireOwnership({partId: id}) if(input.title) { - input.title = input.title.replace(/([^a-zA-Z\d_:])/g, '-') + input.title = enforceAlphaNumeric(input.title) } return db.part.update({ data: foreignKeyReplacement(input), diff --git a/api/src/services/users/users.js b/api/src/services/users/users.js index cae1557..c06e1bf 100644 --- a/api/src/services/users/users.js +++ b/api/src/services/users/users.js @@ -2,6 +2,7 @@ import { db } from 'src/lib/db' import { requireAuth } from 'src/lib/auth' import { requireOwnership } from 'src/lib/owner' import { UserInputError } from '@redwoodjs/api' +import { enforceAlphaNumeric } from 'src/services/helpers' export const users = () => { requireAuth({ role: 'admin' }) @@ -42,7 +43,7 @@ export const updateUserByUserName = async ({ userName, input }) => { requireAuth() await requireOwnership({userName}) if(input.userName) { - input.userName = input.userName.replace(/([^a-zA-Z\d_:])/g, '-') + input.userName = enforceAlphaNumeric(input.userName) } if(input.userName && ['new', 'edit', 'update'].includes(input.userName)) { //TODO complete this and use a regexp so that it's not case sensitive, don't want someone with the userName eDiT throw new UserInputError(`You've tried to used a protected word as you userName, try something other than `) -- 2.39.5 From 96c210496dbbc2abda6f36d6b930f82ff3ef890d Mon Sep 17 00:00:00 2001 From: Kurt Hutten Date: Tue, 10 Nov 2020 20:59:52 +1100 Subject: [PATCH 2/4] Make emoji menu horizontal resolves #88 --- web/src/components/EmojiReaction/EmojiReaction.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/src/components/EmojiReaction/EmojiReaction.js b/web/src/components/EmojiReaction/EmojiReaction.js index 7f7fbf5..f4dd910 100644 --- a/web/src/components/EmojiReaction/EmojiReaction.js +++ b/web/src/components/EmojiReaction/EmojiReaction.js @@ -89,7 +89,7 @@ const EmojiReaction = ({ emotes, userEmotes, onEmote = () => {}, className }) => horizontal: 'left', }} > -
+
{emojiMenu.map((emoji, i) => ( + {isAuthenticated && data?.user?.userName ? + + + : + + }
  • diff --git a/web/src/pages/NewPart2Page/NewPart2Page.js b/web/src/pages/NewPart2Page/NewPart2Page.js index bd316a9..c1cb4e4 100644 --- a/web/src/pages/NewPart2Page/NewPart2Page.js +++ b/web/src/pages/NewPart2Page/NewPart2Page.js @@ -1,11 +1,16 @@ +import { useEffect } from 'react' import { useAuth } from '@redwoodjs/auth' +import { navigate, routes } from '@redwoodjs/router' import MainLayout from 'src/layouts/MainLayout' import Part2Cell from 'src/components/Part2Cell' const NewPart2Page = ({userName}) => { - const { currentUser } = useAuth() + const { isAuthenticated, currentUser } = useAuth() + useEffect(() => {!isAuthenticated && + navigate(routes.home())}, + [currentUser]) return ( Date: Tue, 10 Nov 2020 22:22:45 +0530 Subject: [PATCH 4/4] Fixed PropOver --- web/src/layouts/MainLayout/MainLayout.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/web/src/layouts/MainLayout/MainLayout.js b/web/src/layouts/MainLayout/MainLayout.js index 33a8215..045609d 100644 --- a/web/src/layouts/MainLayout/MainLayout.js +++ b/web/src/layouts/MainLayout/MainLayout.js @@ -25,7 +25,6 @@ import logo from 'src/layouts/MainLayout/Logo_2.jpg' const MainLayout = ({ children}) => { const { logIn, logOut, isAuthenticated, currentUser } = useAuth() const {data, loading} = useQuery(QUERY, {variables: {id: currentUser?.sub}}) - console.log(data?.user?.name); const [isOpen, setIsOpen] = useState(false) const [anchorEl, setAnchorEl] = useState(null) const [popoverId, setPopoverId] = useState(undefined) @@ -72,9 +71,12 @@ const MainLayout = ({ children}) => {
    • - + {isAuthenticated && data?.user?.userName ? + + + : + + }
    • @@ -95,11 +97,11 @@ const MainLayout = ({ children}) => { onClose={closePopover} anchorOrigin={{ vertical: 'bottom', - horizontal: 'left', + horizontal: 'right', }} transformOrigin={{ vertical: 'top', - horizontal: 'left', + horizontal: 'right', }} > { -- 2.39.5