fix: club set role
This commit is contained in:
parent
5ba4ee1f90
commit
43f7a54b15
@ -159,7 +159,7 @@ public class MembreService {
|
|||||||
if (securityIdentity.getRoles().contains("club_president")) source = RoleAsso.PRESIDENT;
|
if (securityIdentity.getRoles().contains("club_president")) source = RoleAsso.PRESIDENT;
|
||||||
else if (securityIdentity.getRoles().contains("club_secretaire")) source = RoleAsso.SECRETAIRE;
|
else if (securityIdentity.getRoles().contains("club_secretaire")) source = RoleAsso.SECRETAIRE;
|
||||||
else if (securityIdentity.getRoles().contains("club_respo_intra")) source = RoleAsso.MEMBREBUREAU;
|
else if (securityIdentity.getRoles().contains("club_respo_intra")) source = RoleAsso.MEMBREBUREAU;
|
||||||
if (!membre.getRole().equals(membreModel.getRole()) && membre.getRole().level > source.level)
|
if (!membre.getRole().equals(membreModel.getRole()) && membre.getRole().level >= source.level)
|
||||||
throw new ForbiddenException();
|
throw new ForbiddenException();
|
||||||
}))
|
}))
|
||||||
.onItem().transformToUni(target -> {
|
.onItem().transformToUni(target -> {
|
||||||
|
|||||||
@ -46,7 +46,7 @@ function ClubMenu() {
|
|||||||
const {is_authenticated, userinfo} = useAuth()
|
const {is_authenticated, userinfo} = useAuth()
|
||||||
|
|
||||||
if (!is_authenticated || !(userinfo?.roles?.includes("club_president")
|
if (!is_authenticated || !(userinfo?.roles?.includes("club_president")
|
||||||
|| userinfo?.roles?.includes("club_secretaire") || userinfo?.roles?.includes("club_tresorier")))
|
|| userinfo?.roles?.includes("club_secretaire") || userinfo?.roles?.includes("club_respo_intra")))
|
||||||
return <></>
|
return <></>
|
||||||
|
|
||||||
return <li className="nav-item dropdown">
|
return <li className="nav-item dropdown">
|
||||||
|
|||||||
@ -11,12 +11,6 @@ import {apiAxios} from "../utils/Tools.js";
|
|||||||
import {toast} from "react-toastify";
|
import {toast} from "react-toastify";
|
||||||
import {SearchBar} from "../components/SearchBar.jsx";
|
import {SearchBar} from "../components/SearchBar.jsx";
|
||||||
|
|
||||||
const removeDiacritics = str => {
|
|
||||||
return str
|
|
||||||
.normalize('NFD')
|
|
||||||
.replace(/[\u0300-\u036f]/g, '')
|
|
||||||
}
|
|
||||||
|
|
||||||
export function MemberList({source}) {
|
export function MemberList({source}) {
|
||||||
const {hash} = useLocation();
|
const {hash} = useLocation();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
@ -47,6 +41,7 @@ export function MemberList({source}) {
|
|||||||
fname: e.fname,
|
fname: e.fname,
|
||||||
lname: e.lname,
|
lname: e.lname,
|
||||||
club: e.club,
|
club: e.club,
|
||||||
|
categorie: e.categorie,
|
||||||
licence_number: e.licence,
|
licence_number: e.licence,
|
||||||
licence: showLicenceState ? licenceData.find(licence => licence.membre === e.id) : null
|
licence: showLicenceState ? licenceData.find(licence => licence.membre === e.id) : null
|
||||||
})
|
})
|
||||||
@ -84,7 +79,7 @@ export function MemberList({source}) {
|
|||||||
<SearchBar search={search}/>
|
<SearchBar search={search}/>
|
||||||
{data
|
{data
|
||||||
? <MakeCentralPanel data={data} visibleMember={memberData} navigate={navigate} showLicenceState={showLicenceState}
|
? <MakeCentralPanel data={data} visibleMember={memberData} navigate={navigate} showLicenceState={showLicenceState}
|
||||||
page={page}/>
|
page={page} source={source}/>
|
||||||
: error
|
: error
|
||||||
? <AxiosError error={error}/>
|
? <AxiosError error={error}/>
|
||||||
: <Def/>
|
: <Def/>
|
||||||
@ -107,7 +102,7 @@ export function MemberList({source}) {
|
|||||||
</>
|
</>
|
||||||
}
|
}
|
||||||
|
|
||||||
function MakeCentralPanel({data, visibleMember, navigate, showLicenceState, page}) {
|
function MakeCentralPanel({data, visibleMember, navigate, showLicenceState, page, source}) {
|
||||||
const pages = []
|
const pages = []
|
||||||
for (let i = 1; i <= data.page_count; i++) {
|
for (let i = 1; i <= data.page_count; i++) {
|
||||||
pages.push(<li key={i} className={"page-item " + ((page === i) ? "active" : "")}>
|
pages.push(<li key={i} className={"page-item " + ((page === i) ? "active" : "")}>
|
||||||
@ -120,7 +115,7 @@ function MakeCentralPanel({data, visibleMember, navigate, showLicenceState, page
|
|||||||
<small>Ligne {((page - 1) * data.page_size) + 1} à {
|
<small>Ligne {((page - 1) * data.page_size) + 1} à {
|
||||||
(page * data.page_size > data.result_count) ? data.result_count : (page * data.page_size)} (page {page} sur {data.page_count})</small>
|
(page * data.page_size > data.result_count) ? data.result_count : (page * data.page_size)} (page {page} sur {data.page_count})</small>
|
||||||
<div className="list-group">
|
<div className="list-group">
|
||||||
{visibleMember.map(member => (<MakeRow key={member.id} member={member} navigate={navigate} showLicenceState={showLicenceState}/>))}
|
{visibleMember.map(member => (<MakeRow key={member.id} member={member} navigate={navigate} showLicenceState={showLicenceState} source={source}/>))}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="mb-4">
|
<div className="mb-4">
|
||||||
@ -137,7 +132,7 @@ function MakeCentralPanel({data, visibleMember, navigate, showLicenceState, page
|
|||||||
</>
|
</>
|
||||||
}
|
}
|
||||||
|
|
||||||
function MakeRow({member, showLicenceState, navigate}) {
|
function MakeRow({member, showLicenceState, navigate, source}) {
|
||||||
const rowContent = <>
|
const rowContent = <>
|
||||||
<div className="row">
|
<div className="row">
|
||||||
<span className="col-auto">{String(member.licence_number).padStart(5, '0')}</span>
|
<span className="col-auto">{String(member.licence_number).padStart(5, '0')}</span>
|
||||||
@ -145,7 +140,9 @@ function MakeRow({member, showLicenceState, navigate}) {
|
|||||||
<div className="fw-bold">{member.fname} {member.lname}</div>
|
<div className="fw-bold">{member.fname} {member.lname}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<small>{member.club?.name || "Sans club"}</small>
|
{source === "club" ?
|
||||||
|
<small>{member.categorie}</small>
|
||||||
|
: <small>{member.club?.name || "Sans club"}</small>}
|
||||||
</>
|
</>
|
||||||
|
|
||||||
if (showLicenceState && member.licence != null) {
|
if (showLicenceState && member.licence != null) {
|
||||||
|
|||||||
@ -55,7 +55,7 @@ export function InformationForm({data}) {
|
|||||||
<CountryList name="country" text="Pays" value={data.country}/>
|
<CountryList name="country" text="Pays" value={data.country}/>
|
||||||
<BirthDayField inti_date={data.birth_date ? data.birth_date.split('T')[0] : ''}
|
<BirthDayField inti_date={data.birth_date ? data.birth_date.split('T')[0] : ''}
|
||||||
inti_category={data.categorie}/>
|
inti_category={data.categorie}/>
|
||||||
<RoleList name="role" text="Rôle" value={data.role} disabled={true}/>
|
<RoleList name="role" text="Rôle" value={data.role}/>
|
||||||
<OptionField name="grade_arbitrage" text="Grade d'arbitrage" value={data.grade_arbitrage}
|
<OptionField name="grade_arbitrage" text="Grade d'arbitrage" value={data.grade_arbitrage}
|
||||||
values={{NA: 'N/A', ASSESSEUR: 'Assesseur', ARBITRE: 'Arbitre'}} disabled={true}/>
|
values={{NA: 'N/A', ASSESSEUR: 'Assesseur', ARBITRE: 'Arbitre'}} disabled={true}/>
|
||||||
<div className="row">
|
<div className="row">
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user