all repos — caroster @ 997251c1c1a845b64e9b3df53d3747e47babe9ab

[Octree] Group carpool to your event https://caroster.io

fix: :bug: Fix password update
Tim Izzo tim@octree.ch
Wed, 07 Sep 2022 09:29:24 +0200
commit

997251c1c1a845b64e9b3df53d3747e47babe9ab

parent

9787630e10794638e6d3ef5a2a92f056ba8569ce

M backend/src/extensions/users-permissions/content-types/user/schema.jsonbackend/src/extensions/users-permissions/content-types/user/schema.json

@@ -29,7 +29,7 @@ },

"provider": { "type": "string", "configurable": false, - "private": true + "private": false }, "password": { "type": "password",
M frontend/containers/Profile/EditPassword.tsxfrontend/containers/Profile/EditPassword.tsx

@@ -21,8 +21,7 @@ const classes = useStyles();

return ( <form onSubmit={evt => { - // Stop editing - if (evt.preventDefault) evt.preventDefault(); + evt?.preventDefault?.(); save(); }} >
M frontend/containers/Profile/ProfileField.tsxfrontend/containers/Profile/ProfileField.tsx

@@ -1,25 +1,21 @@

-import React from 'react'; import Typography from '@material-ui/core/Typography'; -import TextField from '@material-ui/core/TextField'; -const ProfileField = ({ - name, - label, - value, - defaultValue = '', - onChange, - isEditing, - ...inputProps -}) => { +import TextField, {TextFieldProps} from '@material-ui/core/TextField'; + +type Props = TextFieldProps & { + isEditing: boolean; +}; + +const ProfileField = (props: Props) => { + const {onChange, isEditing, ...inputProps} = props; + const {name, label, value, defaultValue = ''} = inputProps; + if (isEditing) { return ( <TextField - label={label} fullWidth margin="dense" - value={value} - onChange={({target: {value = ''}}) => onChange(value)} + onChange={e => onChange(e.target.value)} id={`Profile${name}`} - name={name} {...inputProps} /> );
M frontend/containers/Profile/index.tsxfrontend/containers/Profile/index.tsx

@@ -21,6 +21,7 @@ const [email, setEmail] = useState(profile.email);

const [oldPassword, setOldPassword] = useState(''); const [newPassword, setNewPassword] = useState(''); const [errorPassword, setErrorPassword] = useState(''); + const isStrapiUser = profile.provider === 'local'; const resetPassword = () => { setIsEditingPassword(false);

@@ -32,7 +33,7 @@

const savePassword = async () => { try { await updateProfile({ - old_password: oldPassword, + oldPassword, password: newPassword, }); addToast(t('profile.password_changed'));

@@ -100,6 +101,7 @@ field: '$t(profile.email)',

})} onChange={setEmail} isEditing={isEditing} + disabled={!isStrapiUser} /> </CardContent> <CardActions className={classes.actions}>

@@ -118,26 +120,26 @@ {t('profile.actions.edit')}

</Button> </> )} + {isEditing && isStrapiUser && ( + <Button + type="button" + onClick={evt => { + if (evt.preventDefault) evt.preventDefault(); + setIsEditingPassword(true); + }} + > + {t('profile.actions.change_password')} + </Button> + )} {isEditing && ( - <> - <Button - type="button" - onClick={evt => { - if (evt.preventDefault) evt.preventDefault(); - setIsEditingPassword(true); - }} - > - {t('profile.actions.change_password')} - </Button> - <Button - type="submit" - color="primary" - onClick={onSave} - variant="contained" - > - {t('profile.actions.save')} - </Button> - </> + <Button + type="submit" + color="primary" + onClick={onSave} + variant="contained" + > + {t('profile.actions.save')} + </Button> )} </CardActions> </Card>
M frontend/generated/graphql.tsxfrontend/generated/graphql.tsx

@@ -1391,6 +1391,7 @@ export type UsersPermissionsUser = {

__typename?: 'UsersPermissionsUser'; username: Scalars['String']; email: Scalars['String']; + provider?: Maybe<Scalars['String']>; confirmed?: Maybe<Scalars['Boolean']>; role?: Maybe<UsersPermissionsRoleEntityResponse>; events?: Maybe<EventRelationResponseCollection>;

@@ -1888,7 +1889,7 @@ );

export type UserFieldsFragment = ( { __typename?: 'UsersPermissionsUser' } - & Pick<UsersPermissionsUser, 'username' | 'email' | 'confirmed' | 'lastName' | 'firstName' | 'lang' | 'onboardingUser' | 'onboardingCreator'> + & Pick<UsersPermissionsUser, 'username' | 'email' | 'confirmed' | 'lastName' | 'firstName' | 'lang' | 'onboardingUser' | 'onboardingCreator' | 'provider'> & { events?: Maybe<( { __typename?: 'EventRelationResponseCollection' } & { data: Array<(

@@ -2119,6 +2120,7 @@ firstName

lang onboardingUser onboardingCreator + provider events { data { id
M frontend/graphql/user.gqlfrontend/graphql/user.gql

@@ -7,6 +7,7 @@ firstName

lang onboardingUser onboardingCreator + provider events { data { id