diff --git a/ui/components/app/flask/update-snap-permission-list/update-snap-permission-list.js b/ui/components/app/flask/update-snap-permission-list/update-snap-permission-list.js
index 85f3373d4..5ed3a6669 100644
--- a/ui/components/app/flask/update-snap-permission-list/update-snap-permission-list.js
+++ b/ui/components/app/flask/update-snap-permission-list/update-snap-permission-list.js
@@ -9,24 +9,13 @@ export default function UpdateSnapPermissionList({
approvedPermissions,
revokedPermissions,
newPermissions,
+ targetSubjectMetadata,
}) {
const t = useI18nContext();
return (
- {getWeightedPermissions(t, newPermissions).map((permission, index) => {
- return (
-
- );
- })}
- {getWeightedPermissions(t, approvedPermissions).map(
+ {getWeightedPermissions(t, newPermissions, targetSubjectMetadata).map(
(permission, index) => {
return (
{
+ return (
+
+ );
+ })}
+ {getWeightedPermissions(t, revokedPermissions, targetSubjectMetadata).map(
(permission, index) => {
return (
- {getWeightedPermissions(t, permissions).map((permission, index) => {
- return (
-
- );
- })}
+ {getWeightedPermissions(t, permissions, targetSubjectMetadata).map(
+ (permission, index) => {
+ return (
+
+ );
+ },
+ )}
);
}
PermissionsConnectPermissionList.propTypes = {
permissions: PropTypes.object.isRequired,
+ targetSubjectMetadata: PropTypes.object.isRequired,
};
diff --git a/ui/helpers/utils/permission.js b/ui/helpers/utils/permission.js
index 234f1c6ba..b931f0656 100644
--- a/ui/helpers/utils/permission.js
+++ b/ui/helpers/utils/permission.js
@@ -409,6 +409,7 @@ export const getPermissionDescription = ({
t,
permissionName,
permissionValue,
+ targetSubjectMetadata,
}) => {
let value = PERMISSION_DESCRIPTIONS[UNKNOWN_PERMISSION];
@@ -416,7 +417,12 @@ export const getPermissionDescription = ({
value = PERMISSION_DESCRIPTIONS[permissionName];
}
- const result = value({ t, permissionName, permissionValue });
+ const result = value({
+ t,
+ permissionName,
+ permissionValue,
+ targetSubjectMetadata,
+ });
if (!Array.isArray(result)) {
return [{ ...result, permissionName, permissionValue }];
}
@@ -434,14 +440,20 @@ export const getPermissionDescription = ({
*
* @param {Function} t - The translation function
* @param {object} permissions - The permissions object.
+ * @param {object} targetSubjectMetadata - The subject metadata.
* @returns {PermissionLabelObject[]}
*/
-export function getWeightedPermissions(t, permissions) {
+export function getWeightedPermissions(t, permissions, targetSubjectMetadata) {
return Object.entries(permissions)
.reduce(
(target, [permissionName, permissionValue]) =>
target.concat(
- getPermissionDescription({ t, permissionName, permissionValue }),
+ getPermissionDescription({
+ t,
+ permissionName,
+ permissionValue,
+ targetSubjectMetadata,
+ }),
),
[],
)
diff --git a/ui/pages/permissions-connect/flask/snap-install/snap-install.js b/ui/pages/permissions-connect/flask/snap-install/snap-install.js
index 776cd7323..34a0cbcd3 100644
--- a/ui/pages/permissions-connect/flask/snap-install/snap-install.js
+++ b/ui/pages/permissions-connect/flask/snap-install/snap-install.js
@@ -123,6 +123,7 @@ export default function SnapInstall({
>
)}
diff --git a/ui/pages/permissions-connect/flask/snap-update/snap-update.js b/ui/pages/permissions-connect/flask/snap-update/snap-update.js
index e6d6d7920..f31aabf09 100644
--- a/ui/pages/permissions-connect/flask/snap-update/snap-update.js
+++ b/ui/pages/permissions-connect/flask/snap-update/snap-update.js
@@ -135,6 +135,7 @@ export default function SnapUpdate({
approvedPermissions={approvedPermissions}
revokedPermissions={revokedPermissions}
newPermissions={newPermissions}
+ targetSubjectMetadata={targetSubjectMetadata}
/>
>
)}
diff --git a/ui/pages/permissions-connect/flask/util.js b/ui/pages/permissions-connect/flask/util.js
index 6711b98a5..0ded62e40 100644
--- a/ui/pages/permissions-connect/flask/util.js
+++ b/ui/pages/permissions-connect/flask/util.js
@@ -1,29 +1,18 @@
-import { isObject } from '@metamask/utils';
-import { PERMISSION_DESCRIPTIONS } from '../../../helpers/utils/permission';
+import { getPermissionDescription } from '../../../helpers/utils/permission';
export function getSnapInstallWarnings(permissions, targetSubjectMetadata, t) {
const weightOneWarnings = Object.entries(permissions).reduce(
(filteredWarnings, [permissionName, permissionValue]) => {
- const permissionDescription = PERMISSION_DESCRIPTIONS[permissionName]({
+ const permissionDescription = getPermissionDescription({
t,
+ permissionName,
permissionValue,
targetSubjectMetadata,
});
- if (Array.isArray(permissionDescription)) {
- permissionDescription.forEach((description) => {
- if (description.weight === 1) {
- const { id, message } = description;
- filteredWarnings.push({ id, message });
- }
- });
- } else if (
- isObject(permissionDescription) &&
- permissionDescription.weight === 1
- ) {
- const { id, message } = permissionDescription;
- filteredWarnings.push({ id, message });
- }
- return filteredWarnings;
+
+ return filteredWarnings.concat(
+ permissionDescription.filter((description) => description.weight === 1),
+ );
},
[],
);
diff --git a/ui/pages/settings/flask/view-snap/view-snap.js b/ui/pages/settings/flask/view-snap/view-snap.js
index d8f5b6e93..3261652d9 100644
--- a/ui/pages/settings/flask/view-snap/view-snap.js
+++ b/ui/pages/settings/flask/view-snap/view-snap.js
@@ -35,6 +35,7 @@ import {
getSubjectsWithSnapPermission,
getPermissions,
getPermissionSubjects,
+ getTargetSubjectMetadata,
} from '../../../../selectors';
import { formatDate } from '../../../../helpers/utils/util';
@@ -65,6 +66,9 @@ function ViewSnap() {
(state) => snap && getPermissions(state, snap.id),
);
const subjects = useSelector((state) => getPermissionSubjects(state));
+ const targetSubjectMetadata = useSelector((state) =>
+ getTargetSubjectMetadata(state, snap?.id),
+ );
const dispatch = useDispatch();
const onToggle = () => {
@@ -180,6 +184,7 @@ function ViewSnap() {