Skip to content

Commit

Permalink
Feature: Expose org affiliations when login not required (#5822)
Browse files Browse the repository at this point in the history
* remove unused isLoginRequired prop

* return org affiliations when login not required

* display org affiliations when login not required
  • Loading branch information
lcampbell2 authored Oct 17, 2024
1 parent a03f03b commit 5d889a6
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 10 deletions.
4 changes: 2 additions & 2 deletions api/src/organization/objects/organization.js
Original file line number Diff line number Diff line change
Expand Up @@ -308,10 +308,10 @@ export const organizationType = new GraphQLObjectType({
resolve: async (
{ _id },
args,
{ i18n, auth: { checkPermission }, loaders: { loadAffiliationConnectionsByOrgId } },
{ i18n, auth: { checkPermission, loginRequiredBool }, loaders: { loadAffiliationConnectionsByOrgId } },
) => {
const permission = await checkPermission({ orgId: _id })
if (['user', 'admin', 'owner', 'super_admin'].includes(permission) === false) {
if (['user', 'admin', 'owner', 'super_admin'].includes(permission) === false && loginRequiredBool) {
throw new Error(i18n._(t`Cannot query affiliations on organization without admin permission or higher.`))
}

Expand Down
3 changes: 1 addition & 2 deletions frontend/src/admin/AdminPage.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import { ErrorBoundary } from 'react-error-boundary'
import withSuperAdmin from '../app/withSuperAdmin'
// import { TourComponent } from '../userOnboarding/components/TourComponent'

export default function AdminPage({ isLoginRequired }) {
export default function AdminPage() {
const [selectedOrg, setSelectedOrg] = useState('none')
const [orgDetails, setOrgDetails] = useState({})
const [searchTerm, setSearchTerm] = useState('')
Expand Down Expand Up @@ -147,7 +147,6 @@ export default function AdminPage({ isLoginRequired }) {
mb="1rem"
removeOrgCallback={setSelectedOrg}
key={orgDetails.slug} // set key, this resets state when switching orgs (closes editing box)
isLoginRequired={isLoginRequired}
/>
<AdminPanel
activeMenu={activeMenu}
Expand Down
1 change: 0 additions & 1 deletion frontend/src/admin/OrganizationInformation.js
Original file line number Diff line number Diff line change
Expand Up @@ -461,6 +461,5 @@ const AcronymFields = withSuperAdmin(() => {
OrganizationInformation.propTypes = {
orgSlug: string.isRequired,
removeOrgCallback: func.isRequired,
isLoginRequired: bool,
isUserSuperAdmin: bool,
}
4 changes: 2 additions & 2 deletions frontend/src/app/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -249,14 +249,14 @@ export function App({ initialLoading, isLoginRequired }) {
>
{() => (
<ErrorBoundary FallbackComponent={ErrorFallbackMessage}>
<OrganizationDetails />
<OrganizationDetails loginRequired={isLoginRequired} />
</ErrorBoundary>
)}
</PrivatePage>

<Page path="/admin/:activeMenu?" title={t`Admin`}>
{isLoggedIn() && isEmailValidated() && currentTFAMethod() !== 'NONE' ? (
<AdminPage isLoginRequired={isLoginRequired} />
<AdminPage />
) : (
<Redirect
to={{
Expand Down
11 changes: 8 additions & 3 deletions frontend/src/organizationDetails/OrganizationDetails.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,9 @@ import { RequestOrgInviteModal } from '../organizations/RequestOrgInviteModal'
import { useUserVar } from '../utilities/userState'
import { HistoricalSummariesGraph } from '../summaries/HistoricalSummariesGraph'
import { ABTestVariant, ABTestWrapper } from '../app/ABTestWrapper'
import { bool } from 'prop-types'

export default function OrganizationDetails() {
export default function OrganizationDetails({ loginRequired }) {
const { isLoggedIn } = useUserVar()
const { orgSlug, activeTab } = useParams()
const history = useHistory()
Expand Down Expand Up @@ -137,7 +138,7 @@ export default function OrganizationDetails() {
<Tab borderTopWidth="4px">
<Trans>Domains</Trans>
</Tab>
{data?.organization?.userHasPermission && (
{(data?.organization?.userHasPermission || !loginRequired) && (
<Tab borderTopWidth="4px">
<Trans>Users</Trans>
</Tab>
Expand Down Expand Up @@ -185,7 +186,7 @@ export default function OrganizationDetails() {
/>
</ErrorBoundary>
</TabPanel>
{data?.organization?.userHasPermission && (
{(data?.organization?.userHasPermission || !loginRequired) && (
<TabPanel>
<ErrorBoundary FallbackComponent={ErrorFallbackMessage}>
<OrganizationAffiliations orgSlug={orgSlug} />
Expand All @@ -197,3 +198,7 @@ export default function OrganizationDetails() {
</Box>
)
}

OrganizationDetails.propTypes = {
loginRequired: bool,
}

0 comments on commit 5d889a6

Please sign in to comment.