diff --git a/src/components/UserDetailSections/PatronBlock/PatronBlock.js b/src/components/UserDetailSections/PatronBlock/PatronBlock.js
index 458da4776..68f31b324 100644
--- a/src/components/UserDetailSections/PatronBlock/PatronBlock.js
+++ b/src/components/UserDetailSections/PatronBlock/PatronBlock.js
@@ -16,6 +16,7 @@ import {
} from '@folio/stripes/components';
import { stripesConnect } from '@folio/stripes/core';
+import { isDcbUser } from '../../util';
import css from './PatronBlock.css';
const PATRON_BLOCKS_COLUMNS = {
@@ -37,6 +38,11 @@ class PatronBlock extends React.Component {
expanded: PropTypes.bool,
accordionId: PropTypes.string,
patronBlocks: PropTypes.arrayOf(PropTypes.object),
+ resources: PropTypes.shape({
+ selUser: PropTypes.shape({
+ records: PropTypes.arrayOf(PropTypes.object),
+ }),
+ }),
mutator: PropTypes.shape({
activeRecord: PropTypes.shape({
update: PropTypes.func,
@@ -160,7 +166,11 @@ class PatronBlock extends React.Component {
patronBlocks,
match: { params },
location,
+ resources,
} = this.props;
+
+ const user = resources?.selUser?.records[0];
+
const {
sortOrder,
sortDirection,
@@ -203,7 +213,7 @@ class PatronBlock extends React.Component {
id={accordionId}
onToggle={onToggle}
label={title}
- displayWhenOpen={displayWhenOpen}
+ displayWhenOpen={!isDcbUser(user) ? displayWhenOpen : null}
>
{items}
diff --git a/src/components/UserDetailSections/UserAccounts/UserAccounts.js b/src/components/UserDetailSections/UserAccounts/UserAccounts.js
index 23971afca..c506d7cab 100644
--- a/src/components/UserDetailSections/UserAccounts/UserAccounts.js
+++ b/src/components/UserDetailSections/UserAccounts/UserAccounts.js
@@ -2,6 +2,7 @@ import React, { useEffect, useState } from 'react';
import PropTypes from 'prop-types';
import { Link } from 'react-router-dom';
import { FormattedMessage } from 'react-intl';
+import { get } from 'lodash';
import {
Row,
@@ -20,6 +21,7 @@ import {
refundStatuses,
refundClaimReturned,
} from '../../../constants';
+import { isDcbUser } from '../../util';
/**
@@ -39,6 +41,7 @@ const UserAccounts = ({
},
resources,
}) => {
+ const user = get(resources, ['selUser', 'records', '0']);
const [totals, setTotals] = useState({
openAccountsCount: 0,
closedAccountsCount: 0,
@@ -98,7 +101,7 @@ const UserAccounts = ({
onToggle={onToggle}
label={}
displayWhenClosed={displayWhenClosed}
- displayWhenOpen={displayWhenOpen}
+ displayWhenOpen={!isDcbUser(user) ? displayWhenOpen : null}
>
{accountsLoaded ?
diff --git a/src/components/UserDetailSections/UserRequests/UserRequests.js b/src/components/UserDetailSections/UserRequests/UserRequests.js
index 38de0d339..b849ec1c1 100644
--- a/src/components/UserDetailSections/UserRequests/UserRequests.js
+++ b/src/components/UserDetailSections/UserRequests/UserRequests.js
@@ -21,6 +21,7 @@ import {
getOpenRequestStatusesFilterString,
getClosedRequestStatusesFilterString,
getRequestUrl,
+ isDcbUser,
} from '../../util';
/**
@@ -107,12 +108,10 @@ class UserRequests extends React.Component {
expanded,
onToggle,
accordionId,
- user: {
- barcode,
- id,
- },
+ user,
resources
} = this.props;
+ const { barcode, id } = user;
const openRequestsTotal = _.get(resources.openRequestsCount, ['records', '0', 'totalRecords'], 0);
const closedRequestsTotal = _.get(resources.closedRequestsCount, ['records', '0', 'totalRecords'], 0);
const openRequestsCount = (_.get(resources.openRequestsCount, ['isPending'], true)) ? -1 : openRequestsTotal;
@@ -142,7 +141,7 @@ class UserRequests extends React.Component {
onToggle={onToggle}
label={}
displayWhenClosed={displayWhenClosed}
- displayWhenOpen={displayWhenOpen}
+ displayWhenOpen={!isDcbUser(user) ? displayWhenOpen : null}
>
{requestsLoaded ?
{!isShadowUser && (
@@ -624,6 +626,7 @@ class UserDetail extends React.Component {
const isAffiliationsVisible = isAffiliationsEnabled(user);
const isShadowUser = user?.type === USER_TYPES.SHADOW;
+ const isVirtualPatron = isDcbUser(user);
const showPatronBlocksSection = hasPatronBlocksPermissions && !isShadowUser;
if (this.userNotFound()) {
@@ -862,6 +865,7 @@ class UserDetail extends React.Component {
pathToNoteCreate="/users/notes/new"
pathToNoteDetails="/users/notes"
hideAssignButton
+ hideNewButton={isVirtualPatron}
/>