mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-15 06:27:21 +00:00
[improvement][semantic-fe] Adding permission logic for bulk operations in the indicator market. (#471)
* [improvement][semantic-fe] Add model alias setting & Add view permission restrictions to the model permission management tab. [improvement][semantic-fe] Add permission control to the action buttons for the main domain; apply high sensitivity filtering to the authorization of metrics/dimensions. [improvement][semantic-fe] Optimize the editing mode in the dimension/metric/datasource components to use the modelId stored in the database for data, instead of relying on the data from the state manager. * [improvement][semantic-fe] Add time granularity setting in the data source configuration. * [improvement][semantic-fe] Dictionary import for dimension values supported in Q&A visibility * [improvement][semantic-fe] Modification of data source creation prompt wording" * [improvement][semantic-fe] metric market experience optimization * [improvement][semantic-fe] enhance the analysis of metric trends * [improvement][semantic-fe] optimize the presentation of metric trend permissions * [improvement][semantic-fe] add metric trend download functionality * [improvement][semantic-fe] fix the dimension initialization issue in metric correlation * [improvement][semantic-fe] Fix the issue of database changes not taking effect when creating based on an SQL data source. * [improvement][semantic-fe] Optimizing pagination logic and some CSS styles * [improvement][semantic-fe] Fixing the API for the indicator list by changing "current" to "pageNum" * [improvement][semantic-fe] Fixing the default value setting for the indicator list * [improvement][semantic-fe] Adding batch operations for indicators/dimensions/models * [improvement][semantic-fe] Replacing the single status update API for indicators/dimensions with a batch update API * [improvement][semantic-fe] Redesigning the indicator homepage to incorporate trend charts and table functionality for indicators * [improvement][semantic-fe] Optimizing the logic for setting dimension values and editing data sources, and adding system settings functionality * [improvement][semantic-fe] Upgrading antd version to 5.x, extracting the batch operation button component, optimizing the interaction for system settings, and expanding the configuration generation types for list-to-select component. * [improvement][semantic-fe] Adding the ability to filter dimensions based on whether they are tags or not. * [improvement][semantic-fe] Adding the ability to edit relationships between models in the canvas. * [improvement][semantic-fe] Updating the datePicker component to use dayjs instead. * [improvement][semantic-fe] Fixing the issue with passing the model ID for dimensions in the indicator market. * [improvement][semantic-fe] Fixing the abnormal state of the popup when creating a model. * [improvement][semantic-fe] Adding permission logic for bulk operations in the indicator market.
This commit is contained in:
@@ -60,6 +60,8 @@ const ClassMetricTable: React.FC<Props> = ({ domainManger, dispatch }) => {
|
||||
|
||||
const [downloadLoading, setDownloadLoading] = useState<boolean>(false);
|
||||
|
||||
const [hasAllPermission, setHasAllPermission] = useState<boolean>(true);
|
||||
|
||||
const actionRef = useRef<ActionType>();
|
||||
|
||||
useEffect(() => {
|
||||
@@ -322,11 +324,25 @@ const ClassMetricTable: React.FC<Props> = ({ domainManger, dispatch }) => {
|
||||
|
||||
const rowSelection = {
|
||||
onChange: (selectedRowKeys: React.Key[]) => {
|
||||
const permissionList: boolean[] = [];
|
||||
selectedRowKeys.forEach((id: React.Key) => {
|
||||
const target = dataSource.find((item) => {
|
||||
return item.id === id;
|
||||
});
|
||||
if (target) {
|
||||
permissionList.push(target.hasAdminRes);
|
||||
}
|
||||
});
|
||||
if (permissionList.includes(false)) {
|
||||
setHasAllPermission(false);
|
||||
} else {
|
||||
setHasAllPermission(true);
|
||||
}
|
||||
setSelectedRowKeys(selectedRowKeys);
|
||||
},
|
||||
getCheckboxProps: (record: ISemantic.IMetricItem) => ({
|
||||
disabled: !record.hasAdminRes,
|
||||
}),
|
||||
// getCheckboxProps: (record: ISemantic.IMetricItem) => ({
|
||||
// disabled: !record.hasAdminRes,
|
||||
// }),
|
||||
};
|
||||
|
||||
const onMenuClick = (key: string) => {
|
||||
@@ -397,6 +413,7 @@ const ClassMetricTable: React.FC<Props> = ({ domainManger, dispatch }) => {
|
||||
onDeleteConfirm={() => {
|
||||
queryBatchUpdateStatus(selectedRowKeys, StatusEnum.DELETED);
|
||||
}}
|
||||
disabledList={hasAllPermission ? [] : ['batchStart', 'batchStop', 'batchDelete']}
|
||||
onMenuClick={onMenuClick}
|
||||
onDownloadDateRangeChange={(searchDateRange, pickerType) => {
|
||||
downloadMetricQuery(selectedRowKeys, searchDateRange, pickerType);
|
||||
|
||||
@@ -194,7 +194,7 @@ export declare namespace ISemantic {
|
||||
domainName: string;
|
||||
modelName: string;
|
||||
modelId: number;
|
||||
hasAdminRes?: boolean;
|
||||
hasAdminRes: boolean;
|
||||
type: string;
|
||||
typeParams: ITypeParams;
|
||||
fullPath: string;
|
||||
|
||||
Reference in New Issue
Block a user