Skip to content

Commit a11f6db

Browse files
Merge pull request #1747 from OneCommunityGlobal/development
Frontend Release to Main [3.10]
2 parents 216b3e7 + 73ac199 commit a11f6db

26 files changed

Lines changed: 696 additions & 48 deletions

File tree

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,6 @@ yarn-debug.log*
2121
yarn-error.log*
2222
/.idea
2323

24-
.vscode/launch.json
24+
.vscode/launch.json
25+
26+
**\ **

public/Portrait_Placeholder.png

211 KB
Loading

public/profilepic.webp

21.1 KB
Loading

src/components/Header/Header.jsx

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ export const Header = props => {
4949
const { isAuthenticated, user, firstName, profilePic } = props.auth;
5050

5151
// Reports
52+
const canGetReports = props.hasPermission('getReports');
5253
const canGetWeeklySummaries = props.hasPermission('getWeeklySummaries');
5354
// Users
5455

@@ -137,24 +138,28 @@ export const Header = props => {
137138
<span className="dashboard-text-link">{TIMELOG}</span>
138139
</NavLink>
139140
</NavItem>
140-
{canGetWeeklySummaries ? (
141+
{(canGetReports || canGetWeeklySummaries) ? (
141142
<UncontrolledDropdown nav inNavbar>
142143
<DropdownToggle nav caret>
143144
<span className="dashboard-text-link">{REPORTS}</span>
144145
</DropdownToggle>
145146
<DropdownMenu>
146-
<DropdownItem tag={Link} to="/reports">
147-
{REPORTS}
148-
</DropdownItem>
149-
<DropdownItem tag={Link} to="/weeklysummariesreport">
150-
{WEEKLY_SUMMARIES_REPORT}
151-
</DropdownItem>
147+
{canGetReports &&
148+
<DropdownItem tag={Link} to="/reports">
149+
{REPORTS}
150+
</DropdownItem>
151+
}
152+
{canGetWeeklySummaries &&
153+
<DropdownItem tag={Link} to="/weeklysummariesreport">
154+
{WEEKLY_SUMMARIES_REPORT}
155+
</DropdownItem>
156+
}
152157
<DropdownItem tag={Link} to="/teamlocations">
153158
{TEAM_LOCATIONS}
154159
</DropdownItem>
155160
</DropdownMenu>
156161
</UncontrolledDropdown>
157-
) :
162+
) :
158163
<NavItem>
159164
<NavLink tag={Link} to="/teamlocations">
160165
{TEAM_LOCATIONS}

src/components/PermissionsManagement/PermissionsConst.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ export const permissionLabels = [
44
description: 'Category for all permissions related to reports',
55
subperms: [
66
{
7-
label: 'See Analytics Reports (WIP)',
7+
label: 'See Analytics Reports',
88
key: 'getReports',
99
description: 'Make ONLY "Reports -> “Reports” option appear/accessible.',
1010
},

src/components/PermissionsManagement/RolePermissions.jsx

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { boxStyle } from 'styles';
1515
import EditableInfoModal from 'components/UserProfile/EditableModal/EditableInfoModal';
1616
import PermissionsPresetsModal from './PermissionsPresetsModal.jsx';
1717
import { getPresetsByRole, createNewPreset } from 'actions/rolePermissionPresets';
18+
import hasPermission from '../../utils/permissions';
1819

1920

2021
function RolePermissions(props) {
@@ -27,6 +28,10 @@ function RolePermissions(props) {
2728
const history = useHistory();
2829
const [showPresetModal, setShowPresetModal] = useState(false);
2930

31+
const isEditableRole = props.role === 'Owner' ? props.hasPermission('addDeleteEditOwners') : props.auth.user.role !== props.role;
32+
const canEditRole = isEditableRole && props.hasPermission('putRole');
33+
const canDeleteRole = isEditableRole && props.hasPermission('deleteRole');
34+
3035
useEffect(() => {
3136
setRoleName(props.role);
3237
props.getPresets(props.role);
@@ -109,7 +114,7 @@ function RolePermissions(props) {
109114
<div className="user-role-tab__name-container">
110115
<div className="name-container__role-name">
111116
<h1 className="user-role-tab__h1">Role Name: {roleName}</h1>
112-
{props?.userRole === 'Owner' && (
117+
{canEditRole && (
113118
<FontAwesomeIcon
114119
icon={faEdit}
115120
size="lg"
@@ -118,7 +123,7 @@ function RolePermissions(props) {
118123
/>
119124
)}
120125
</div>
121-
{props?.userRole === 'Owner' && (
126+
{canEditRole && (
122127
<div style={{ flexDirection: 'row', display: 'flex' }}>
123128
<div className="name-container__btn_columns">
124129
<div className="name-container__btns">
@@ -151,7 +156,7 @@ function RolePermissions(props) {
151156
>
152157
Save
153158
</Button>
154-
<Button color="danger" onClick={toggleDeleteRoleModal} style={boxStyle}>
159+
<Button color="danger" onClick={toggleDeleteRoleModal} style={boxStyle} disabled={!canDeleteRole}>
155160
Delete Role
156161
</Button>
157162
</div>
@@ -222,7 +227,7 @@ function RolePermissions(props) {
222227
<PermissionList
223228
rolePermissions={permissions}
224229
permissionsList={permissionLabel}
225-
editable={true}
230+
editable={canEditRole}
226231
setPermissions={setPermissions}
227232
onChange={()=>{setChanged(true)}}
228233
/>
@@ -276,13 +281,14 @@ function RolePermissions(props) {
276281
);
277282
}
278283

279-
const mapStateToProps = state => ({ roles: state.role.roles, presets: state.rolePreset.presets });
284+
const mapStateToProps = state => ({ roles: state.role.roles, presets: state.rolePreset.presets, auth: state.auth });
280285

281286
const mapDispatchToProps = dispatch => ({
282287
getAllRoles: () => dispatch(getAllRoles()),
283288
updateRole: (roleId, updatedRole) => dispatch(updateRole(roleId, updatedRole)),
284289
getPresets: role => dispatch(getPresetsByRole(role)),
285290
createNewPreset: newPreset => dispatch(createNewPreset(newPreset)),
291+
hasPermission: permission => dispatch(hasPermission(permission)),
286292
});
287293

288294
export default connect(mapStateToProps, mapDispatchToProps)(RolePermissions);

src/components/Projects/Projects.jsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ export class Projects extends Component {
6262
};
6363

6464
onUpdateProjectName = (projectId, projectName, category, isActive) => {
65-
console.log('updateName', projectId, projectName, category, isActive);
6665
this.props.modifyProject('updateName', projectId, projectName, category, isActive);
6766
};
6867

src/components/Projects/WBS/WBSDetail/components/TagSent 2.jsx renamed to src/components/Projects/WBS/WBSDetail/components/TagSent_2.jsx

File renamed without changes.

src/components/Projects/WBS/WBSDetail/components/TagsSearch 2.css renamed to src/components/Projects/WBS/WBSDetail/components/TagsSearch_2.css

File renamed without changes.

src/components/Reports/sharedComponents/ReportPage/components/ReportCard/ReportCard 2.css renamed to src/components/Reports/sharedComponents/ReportPage/components/ReportCard/ReportCard_2.css

File renamed without changes.

0 commit comments

Comments
 (0)