feat: WIP role form localization.

This commit is contained in:
a.bouhuolia
2021-12-27 16:01:22 +02:00
parent 0860db87fb
commit 96cb3177aa
5 changed files with 45 additions and 22 deletions

View File

@@ -1,4 +1,5 @@
import { chain } from 'lodash'; import { chain } from 'lodash';
import intl from 'react-intl-universal';
import { import {
AbilitySubject, AbilitySubject,
AccountAction, AccountAction,
@@ -30,21 +31,20 @@ const PermissionColumn = {
Edit: 'edit', Edit: 'edit',
}; };
export const permissions = [ export const getPermissionsSchema = () => [
{ {
label: 'Items & Inventory', label: intl.get('permissions.items_inventory'),
type: ModulePermissionsStyle.Columns, type: ModulePermissionsStyle.Columns,
serviceFullAccess: true, serviceFullAccess: true,
moduleFullAccess: true,
columns: [ columns: [
{ label: 'View', key: 'view' }, { label: intl.get('permissions.column.view'), key: 'view' },
{ label: 'Create', key: 'create' }, { label: intl.get('permissions.column.create'), key: 'create' },
{ label: 'Edit', key: 'edit' }, { label: intl.get('permissions.column.edit'), key: 'edit' },
{ label: 'Delete', key: 'delete' }, { label: intl.get('permissions.column.delete'), key: 'delete' },
], ],
services: [ services: [
{ {
label: 'Items', label: intl.get('permissions.items'),
subject: AbilitySubject.Item, subject: AbilitySubject.Item,
permissions: [ permissions: [
{ label: 'View', key: ItemAction.View, relatedColumn: PermissionColumn.View }, { label: 'View', key: ItemAction.View, relatedColumn: PermissionColumn.View },
@@ -54,7 +54,7 @@ export const permissions = [
], ],
}, },
{ {
label: 'Inventory adjustments', label: intl.get('permissions.inventory_adjustment'),
subject: AbilitySubject.InventoryAdjustment, subject: AbilitySubject.InventoryAdjustment,
permissions: [ permissions: [
{ label: 'View', key: ItemAction.View, relatedColumn: PermissionColumn.View }, { label: 'View', key: ItemAction.View, relatedColumn: PermissionColumn.View },
@@ -174,11 +174,7 @@ export const permissions = [
label: 'Sale Receipt', label: 'Sale Receipt',
subject: AbilitySubject.Receipt, subject: AbilitySubject.Receipt,
permissions: [ permissions: [
{ { label: 'View', key: SaleReceiptAction.View, relatedColumn: PermissionColumn.View, },
label: 'View',
key: SaleReceiptAction.View,
relatedColumn: PermissionColumn.View,
},
{ {
label: 'Create', label: 'Create',
key: SaleReceiptAction.Create, key: SaleReceiptAction.Create,
@@ -514,7 +510,10 @@ export const permissions = [
}, },
]; ];
export function getPermissionsSchemaService(subject) { export function getPermissionsSchemaService(subject) {
const permissions = getPermissionsSchema();
return chain(permissions) return chain(permissions)
.map((perm) => perm.services) .map((perm) => perm.services)
.flatten() .flatten()
@@ -523,6 +522,8 @@ export function getPermissionsSchemaService(subject) {
} }
export function getPermissionsSchemaServices() { export function getPermissionsSchemaServices() {
const permissions = getPermissionsSchema();
return chain(permissions) return chain(permissions)
.map((module) => module.services) .map((module) => module.services)
.flatten() .flatten()

View File

@@ -3,8 +3,8 @@ import { Checkbox, Popover } from '@blueprintjs/core';
import styled from 'styled-components'; import styled from 'styled-components';
import { Field } from 'formik'; import { Field } from 'formik';
import { permissions, ModulePermissionsStyle } from 'common/permissionsSchema'; import { getPermissionsSchema, ModulePermissionsStyle } from 'common/permissionsSchema';
import { Card, If, ButtonLink, Choose } from 'components'; import { Card, If, ButtonLink, Choose, T } from 'components';
import { import {
getSerivceColumnPermission, getSerivceColumnPermission,
getServiceExtraPermissions, getServiceExtraPermissions,
@@ -167,7 +167,7 @@ function ModulePermissionsTableHead() {
<tr> <tr>
<th></th> <th></th>
<If condition={serviceFullAccess}> <If condition={serviceFullAccess}>
<th class={'full'}>Full Access</th> <th class={'full'}><T id={'permissions.column.full_access'} /></th>
</If> </If>
{columns.map((column) => ( {columns.map((column) => (
<th class={'permission'}>{column.label}</th> <th class={'permission'}>{column.label}</th>
@@ -354,6 +354,8 @@ function ModulePermissions({ module }) {
* @return {React.JSX} * @return {React.JSX}
*/ */
export const RolesPermissionList = () => { export const RolesPermissionList = () => {
const permissions = getPermissionsSchema();
return ( return (
<ModulesPermission> <ModulesPermission>
{permissions.map((module) => ( {permissions.map((module) => (

View File

@@ -2,7 +2,7 @@ import { chain, isEmpty, castArray, memoize } from 'lodash';
import * as R from 'ramda'; import * as R from 'ramda';
import { DepGraph } from 'dependency-graph'; import { DepGraph } from 'dependency-graph';
import { import {
permissions as PERMISSIONS_SCHEMA, getPermissionsSchema,
getPermissionsSchemaService, getPermissionsSchemaService,
getPermissionsSchemaServices, getPermissionsSchemaServices,
} from 'common/permissionsSchema'; } from 'common/permissionsSchema';
@@ -266,7 +266,9 @@ export const handleCheckboxFullAccessChange = R.curry(
* Retrieves all flatten modules permissions. * Retrieves all flatten modules permissions.
*/ */
export function getAllFlattenPermissionsSchema() { export function getAllFlattenPermissionsSchema() {
return chain(PERMISSIONS_SCHEMA) const permissions = getPermissionsSchema();
return chain(permissions)
.map((module) => module.services) .map((module) => module.services)
.flatten() .flatten()
.map((module) => .map((module) =>

View File

@@ -1674,7 +1674,17 @@
"inventory_adjustment.column.product":"المنتج", "inventory_adjustment.column.product":"المنتج",
"invoice.convert_to_credit_note":"تحويل إلى إشعار دائن", "invoice.convert_to_credit_note":"تحويل إلى إشعار دائن",
"bill.convert_to_credit_note":"تحويل إلى إشعار مدين", "bill.convert_to_credit_note":"تحويل إلى إشعار مدين",
"overdue":"متأخرّة" "overdue":"متأخرّة",
"permissions.column.view": "عرض",
"permissions.column.full_access": "تحكم كامل",
"permissions.column.delete": "حذف",
"permissions.column.edit": "تعديل",
"permissions.column.create": "اضافة",
"permissions.items_inventory": "منتجات والمخزون",
"permissions.inventory_adjustment": "تسويات المخزون",
"permissions.items": "المنتجات"
} }

View File

@@ -1670,7 +1670,15 @@
"inventory_adjustment.column.product":"Product", "inventory_adjustment.column.product":"Product",
"invoice.convert_to_credit_note":"Convert to Credit Note", "invoice.convert_to_credit_note":"Convert to Credit Note",
"bill.convert_to_credit_note":"Convert to Vendor Credit", "bill.convert_to_credit_note":"Convert to Vendor Credit",
"overdue":"Overdue" "overdue":"Overdue",
"permissions.column.view": "View",
"permissions.column.full_access": "Full Access",
"permissions.column.delete": "Delete",
"permissions.column.edit": "Edit",
"permissions.column.create": "Create",
"permissions.items_inventory": "Items & Inventory",
"permissions.inventory_adjustment": "Inventory Adjustment",
"permissions.items": "Items"
} }