mirror of
https://github.com/wassname/talk.git
synced 2026-08-08 11:28:12 +08:00
[CORL 133] API Review (#2197)
* refactor: removed unused subscription code
* refactor: removed management api's
* refactor: cleanup of connections
* refactor: refactored comments edge
* refactor: simplified connection resolving
* feat: added story connection edge
* fix: added story index
* feat: added user pagination and user edge
* fix: added filter to comment query
* fix: removed unused resolvers
* fix: creating a comment reply should require auth
* refactor: cleanup of graph files
* feat: removed display name, made username non-unique
* fix: fixed tests
* fix: fixed tests
* fix: added more api docs
* fix: fixed bug with installer
* refactor: fixes and updates
* fix: added linting for graphql, fixed schema
* feat: added docker build tests
* fix: upped output timeout
* fix: fixed stacktraces in production builds
* fix: removed `git add`
- `git add` was causing issues with
partial staged changs on files
* feat: improved error messaging for auth
* refactor: cleaned up queue names
* fix: merge error
This commit is contained in:
@@ -3,13 +3,11 @@ import React, { StatelessComponent } from "react";
|
||||
import { PropTypesOf } from "talk-framework/types";
|
||||
import { HorizontalGutter } from "talk-ui/components";
|
||||
|
||||
import DisplayNamesConfigContainer from "../containers/DisplayNamesConfigContainer";
|
||||
import AuthIntegrationsConfig from "./AuthIntegrationsConfig";
|
||||
|
||||
interface Props {
|
||||
disabled?: boolean;
|
||||
auth: PropTypesOf<typeof AuthIntegrationsConfig>["auth"] &
|
||||
PropTypesOf<typeof DisplayNamesConfigContainer>["auth"];
|
||||
auth: PropTypesOf<typeof AuthIntegrationsConfig>["auth"];
|
||||
onInitValues: (values: any) => void;
|
||||
}
|
||||
|
||||
@@ -19,11 +17,6 @@ const AuthConfig: StatelessComponent<Props> = ({
|
||||
onInitValues,
|
||||
}) => (
|
||||
<HorizontalGutter size="double" data-testid="configure-authContainer">
|
||||
<DisplayNamesConfigContainer
|
||||
disabled={disabled}
|
||||
auth={auth}
|
||||
onInitValues={onInitValues}
|
||||
/>
|
||||
<AuthIntegrationsConfig
|
||||
disabled={disabled}
|
||||
auth={auth}
|
||||
|
||||
-93
@@ -1,93 +0,0 @@
|
||||
import { Localized } from "fluent-react/compat";
|
||||
import React, { StatelessComponent } from "react";
|
||||
import { Field } from "react-final-form";
|
||||
|
||||
import { parseStringBool } from "talk-framework/lib/form";
|
||||
import {
|
||||
Flex,
|
||||
FormField,
|
||||
HorizontalGutter,
|
||||
RadioButton,
|
||||
Typography,
|
||||
} from "talk-ui/components";
|
||||
|
||||
import Header from "../../../components/Header";
|
||||
|
||||
interface Props {
|
||||
disabled?: boolean;
|
||||
}
|
||||
|
||||
const DisplayNamesConfig: StatelessComponent<Props> = ({ disabled }) => (
|
||||
<HorizontalGutter size="oneAndAHalf">
|
||||
<Localized id="configure-auth-displayNamesConfig-title">
|
||||
<Header>Display Names</Header>
|
||||
</Localized>
|
||||
<Localized id="configure-auth-displayNamesConfig-explanationShort">
|
||||
<Typography variant="detail">
|
||||
Some AUTH integrations include a Display Name as well as a User Name.
|
||||
</Typography>
|
||||
</Localized>
|
||||
<Localized id="configure-auth-displayNamesConfig-explanationLong">
|
||||
<Typography variant="detail">
|
||||
A User Name has to be unique (there can only be one Juan_Doe, for
|
||||
example), whereas a Display Name does not. If your AUTH provider allows
|
||||
for Display Names, you can enable this option. This allows for fewer
|
||||
strange names (Juan_Doe23245) – however it could also be used to
|
||||
spoof/impersonate another user.
|
||||
</Typography>
|
||||
</Localized>
|
||||
|
||||
<FormField>
|
||||
<Flex direction="row" itemGutter="double">
|
||||
<Field
|
||||
name={"auth.displayName.enabled"}
|
||||
type="radio"
|
||||
parse={parseStringBool}
|
||||
value
|
||||
>
|
||||
{({ input }) => (
|
||||
<Localized id="configure-auth-displayNamesConfig-showDisplayNames">
|
||||
<RadioButton
|
||||
id={`${input.name}-true`}
|
||||
name={input.name}
|
||||
onChange={input.onChange}
|
||||
onFocus={input.onFocus}
|
||||
onBlur={input.onBlur}
|
||||
checked={input.checked}
|
||||
disabled={disabled}
|
||||
value={input.value}
|
||||
>
|
||||
Show Display Names (if available)
|
||||
</RadioButton>
|
||||
</Localized>
|
||||
)}
|
||||
</Field>
|
||||
<Field
|
||||
name={"auth.displayName.enabled"}
|
||||
type="radio"
|
||||
parse={parseStringBool}
|
||||
value={false}
|
||||
>
|
||||
{({ input }) => (
|
||||
<Localized id="configure-auth-displayNamesConfig-hideDisplayNames">
|
||||
<RadioButton
|
||||
id={`${input.name}-false`}
|
||||
name={input.name}
|
||||
onChange={input.onChange}
|
||||
onFocus={input.onFocus}
|
||||
onBlur={input.onBlur}
|
||||
checked={input.checked}
|
||||
disabled={disabled}
|
||||
value={input.value}
|
||||
>
|
||||
Hide Display Names (if available)
|
||||
</RadioButton>
|
||||
</Localized>
|
||||
)}
|
||||
</Field>
|
||||
</Flex>
|
||||
</FormField>
|
||||
</HorizontalGutter>
|
||||
);
|
||||
|
||||
export default DisplayNamesConfig;
|
||||
-1
@@ -104,7 +104,6 @@ const enhanced = withFragmentContainer<Props>({
|
||||
...SSOConfigContainer_auth
|
||||
...SSOConfigContainer_authReadOnly
|
||||
...LocalAuthConfigContainer_auth
|
||||
...DisplayNamesConfigContainer_auth
|
||||
...OIDCConfigContainer_auth
|
||||
...OIDCConfigContainer_authReadOnly
|
||||
}
|
||||
|
||||
-37
@@ -1,37 +0,0 @@
|
||||
import React from "react";
|
||||
import { graphql } from "react-relay";
|
||||
|
||||
import { DisplayNamesConfigContainer_auth as AuthData } from "talk-admin/__generated__/DisplayNamesConfigContainer_auth.graphql";
|
||||
import { withFragmentContainer } from "talk-framework/lib/relay";
|
||||
|
||||
import DisplayNamesConfig from "../components/DisplayNamesConfig";
|
||||
|
||||
interface Props {
|
||||
auth: AuthData;
|
||||
onInitValues: (values: AuthData) => void;
|
||||
disabled?: boolean;
|
||||
}
|
||||
|
||||
class DisplayNamesConfigContainer extends React.Component<Props> {
|
||||
constructor(props: Props) {
|
||||
super(props);
|
||||
props.onInitValues(props.auth);
|
||||
}
|
||||
|
||||
public render() {
|
||||
const { disabled } = this.props;
|
||||
return <DisplayNamesConfig disabled={disabled} />;
|
||||
}
|
||||
}
|
||||
|
||||
const enhanced = withFragmentContainer<Props>({
|
||||
auth: graphql`
|
||||
fragment DisplayNamesConfigContainer_auth on Auth {
|
||||
displayName {
|
||||
enabled
|
||||
}
|
||||
}
|
||||
`,
|
||||
})(DisplayNamesConfigContainer);
|
||||
|
||||
export default enhanced;
|
||||
+2
-2
@@ -36,8 +36,8 @@ const CreateUsername: StatelessComponent<CreateUsernameForm> = props => {
|
||||
<HorizontalGutter size="oneAndAHalf">
|
||||
<Localized id="createUsername-whatItIs">
|
||||
<Typography variant="bodyCopy">
|
||||
Your username is a unique identifier that will appear on all
|
||||
of your comments.
|
||||
Your username is an identifier that will appear on all of your
|
||||
comments.
|
||||
</Typography>
|
||||
</Localized>
|
||||
{submitError && (
|
||||
|
||||
@@ -79,7 +79,7 @@ const enhanced = (withPaginationContainer<
|
||||
count: { type: "Int!", defaultValue: 5 }
|
||||
cursor: { type: "Cursor" }
|
||||
) {
|
||||
comments(filter: { status: REJECTED }, first: $count, after: $cursor)
|
||||
comments(status: REJECTED, first: $count, after: $cursor)
|
||||
@connection(key: "RejectedQueue_comments") {
|
||||
edges {
|
||||
node {
|
||||
|
||||
Reference in New Issue
Block a user