Commit f42c9676 by Tuomas Riihimäki

* Permission checking before EJB checks.

* Convert users login to lowercase before trying to find from database
1 parent e970bad0
...@@ -50,7 +50,7 @@ public class JaasBean implements MoyaRealmBeanRemote { ...@@ -50,7 +50,7 @@ public class JaasBean implements MoyaRealmBeanRemote {
public EventUser tryLogin(String username, String password) { public EventUser tryLogin(String username, String password) {
EventUser eventUser = eventUserFacade.findByLogin(username.trim()); EventUser eventUser = eventUserFacade.findByLogin(username.trim().toLowerCase());
User user = null; User user = null;
// Might not have EventUser // Might not have EventUser
...@@ -106,7 +106,7 @@ public class JaasBean implements MoyaRealmBeanRemote { ...@@ -106,7 +106,7 @@ public class JaasBean implements MoyaRealmBeanRemote {
@Override @Override
public Enumeration<String> getGroupNames(String user) { public Enumeration<String> getGroupNames(String user) {
logger.info("Fetching groupNames for user {} event {}", user, eventbean.getCurrentEvent().getName()); logger.info("Fetching groupNames for user {} event {}", user, eventbean.getCurrentEvent().getName());
EventUser usr = eventUserFacade.findByLogin(user); EventUser usr = eventUserFacade.findByLogin(user.toLowerCase().trim());
HashSet<String> roleset = new HashSet<String>(); HashSet<String> roleset = new HashSet<String>();
roleset.add(UserPermission.ANYUSER.getFullName()); roleset.add(UserPermission.ANYUSER.getFullName());
......
...@@ -16,14 +16,12 @@ import fi.codecrew.moya.facade.TournamentFacade; ...@@ -16,14 +16,12 @@ import fi.codecrew.moya.facade.TournamentFacade;
import fi.codecrew.moya.facade.TournamentGameFacade; import fi.codecrew.moya.facade.TournamentGameFacade;
import fi.codecrew.moya.facade.TournamentParticipantFacade; import fi.codecrew.moya.facade.TournamentParticipantFacade;
import fi.codecrew.moya.facade.TournamentRuleFacade; import fi.codecrew.moya.facade.TournamentRuleFacade;
import fi.codecrew.moya.facade.UserFacade;
import fi.codecrew.moya.model.EventUser; import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.Tournament; import fi.codecrew.moya.model.Tournament;
import fi.codecrew.moya.model.TournamentGame; import fi.codecrew.moya.model.TournamentGame;
import fi.codecrew.moya.model.TournamentParticipant; import fi.codecrew.moya.model.TournamentParticipant;
import fi.codecrew.moya.model.TournamentRule; import fi.codecrew.moya.model.TournamentRule;
import fi.codecrew.moya.model.TournamentTeamMember; import fi.codecrew.moya.model.TournamentTeamMember;
import fi.codecrew.moya.model.User;
/** /**
* Session Bean implementation class TournamentBean * Session Bean implementation class TournamentBean
...@@ -32,43 +30,49 @@ import fi.codecrew.moya.model.User; ...@@ -32,43 +30,49 @@ import fi.codecrew.moya.model.User;
@LocalBean @LocalBean
public class TournamentBean implements TournamentBeanLocal { public class TournamentBean implements TournamentBeanLocal {
@EJB private TournamentRuleFacade tournamentRuleFacade; @EJB
@EJB private TournamentGameFacade tournamentGameFacade; private TournamentRuleFacade tournamentRuleFacade;
@EJB private TournamentFacade tournamentFacade; @EJB
@EJB private TournamentParticipantFacade tournamentParticipantFacade; private TournamentGameFacade tournamentGameFacade;
@EJB private EventUserFacade eventUserFacade; @EJB
@EJB private EventBean eventBean; private TournamentFacade tournamentFacade;
@EJB
/** private TournamentParticipantFacade tournamentParticipantFacade;
* Default constructor. @EJB
*/ private EventUserFacade eventUserFacade;
public TournamentBean() { @EJB
// TODO Auto-generated constructor stub private EventBean eventBean;
}
/**
@Override * Default constructor.
@RolesAllowed(TournamentPermission.S_VIEW) */
public List<TournamentRule> getRulesByGame(TournamentGame tg) { public TournamentBean() {
return tournamentRuleFacade.getRulesByGame(tg); // TODO Auto-generated constructor stub
} }
@Override @Override
@RolesAllowed(TournamentPermission.S_VIEW) @RolesAllowed(TournamentPermission.S_VIEW)
public List<TournamentGame> getGames() { public List<TournamentRule> getRulesByGame(TournamentGame tg) {
return tournamentGameFacade.getGames(); return tournamentRuleFacade.getRulesByGame(tg);
} }
@Override @Override
@RolesAllowed(TournamentPermission.S_MANAGE_ALL) @RolesAllowed(TournamentPermission.S_VIEW)
public TournamentGame createGame(TournamentGame tg) { public List<TournamentGame> getGames() {
return tournamentGameFacade.create(tg); return tournamentGameFacade.getGames();
} }
@Override @Override
@RolesAllowed(TournamentPermission.S_MANAGE_ALL) @RolesAllowed(TournamentPermission.S_MANAGE_ALL)
public TournamentRule createRule(TournamentRule tr) { public TournamentGame createGame(TournamentGame tg) {
return tournamentRuleFacade.create(tr); return tournamentGameFacade.create(tg);
} }
@Override
@RolesAllowed(TournamentPermission.S_MANAGE_ALL)
public TournamentRule createRule(TournamentRule tr) {
return tournamentRuleFacade.create(tr);
}
@Override @Override
@RolesAllowed(TournamentPermission.S_VIEW) @RolesAllowed(TournamentPermission.S_VIEW)
...@@ -86,18 +90,18 @@ public class TournamentBean implements TournamentBeanLocal { ...@@ -86,18 +90,18 @@ public class TournamentBean implements TournamentBeanLocal {
@RolesAllowed(TournamentPermission.S_MANAGE_ALL) @RolesAllowed(TournamentPermission.S_MANAGE_ALL)
public void createTournament(Tournament tournament) throws Exception { public void createTournament(Tournament tournament) throws Exception {
// Assert correct event // Assert correct event
if(eventBean.getCurrentEvent().equals(tournament.getLanEvent())) if (eventBean.getCurrentEvent().equals(tournament.getLanEvent()))
tournamentFacade.create(tournament); tournamentFacade.create(tournament);
else else
throw new Exception("tournament.invalid_event"); throw new Exception("tournament.invalid_event");
} }
@Override @Override
@RolesAllowed(TournamentPermission.S_VIEW) @RolesAllowed(TournamentPermission.S_VIEW)
public List<Tournament> getTournamentsInStatus(TournamentStatus status, boolean useTimeConstraints) { public List<Tournament> getTournamentsInStatus(TournamentStatus status, boolean useTimeConstraints) {
return tournamentFacade.getTournamentsInStatusWithParticipationTimeIn(status, eventBean.getCurrentEvent()); return tournamentFacade.getTournamentsInStatusWithParticipationTimeIn(status, eventBean.getCurrentEvent());
} }
@Override @Override
@RolesAllowed(TournamentPermission.S_VIEW) @RolesAllowed(TournamentPermission.S_VIEW)
public List<Tournament> getActiveTournaments() { public List<Tournament> getActiveTournaments() {
...@@ -127,21 +131,23 @@ public class TournamentBean implements TournamentBeanLocal { ...@@ -127,21 +131,23 @@ public class TournamentBean implements TournamentBeanLocal {
@RolesAllowed(TournamentPermission.S_PARTICIPATE) @RolesAllowed(TournamentPermission.S_PARTICIPATE)
public void createParticipation(TournamentParticipant tournamentParticipant) throws Exception { public void createParticipation(TournamentParticipant tournamentParticipant) throws Exception {
Tournament t = tournamentFacade.find(tournamentParticipant.getTournament().getId()); Tournament t = tournamentFacade.find(tournamentParticipant.getTournament().getId());
Date currentTime = new Date(); Date currentTime = new Date();
// Assert registration time is correct // Assert registration time is correct
if(t.getRegistrationOpensAt() != null && t.getRegistrationClosesAt() != null && currentTime.after(t.getRegistrationOpensAt()) && currentTime.before(t.getRegistrationClosesAt())) { if (t.getRegistrationOpensAt() != null && t.getRegistrationClosesAt() != null && currentTime.after(t.getRegistrationOpensAt()) && currentTime.before(t.getRegistrationClosesAt())) {
// Assert participant size is smaller than max // Assert participant size is smaller than max
if(t.getParticipants().size() < t.getMaxParticipants()) { if (t.getParticipants().size() < t.getMaxParticipants()) {
TournamentTeamMember capt = null; TournamentTeamMember capt = null;
for(TournamentTeamMember ttm : tournamentParticipant.getTeamMembers()) if(ttm.getRole() == TournamentTeamMemberRole.CAPTAIN) capt=ttm; for (TournamentTeamMember ttm : tournamentParticipant.getTeamMembers())
if (ttm.getRole() == TournamentTeamMemberRole.CAPTAIN)
capt = ttm;
// Assert team has a captain // Assert team has a captain
if(capt != null) { if (capt != null) {
// Assert team has the correct number of players for a match // Assert team has the correct number of players for a match
if(tournamentParticipant.getTeamMembers().size() >= tournamentParticipant.getTournament().getPlayersPerMatch()) { if (tournamentParticipant.getTeamMembers().size() >= tournamentParticipant.getTournament().getPlayersPerMatch()) {
tournamentParticipant = tournamentParticipantFacade.create(tournamentParticipant); tournamentParticipant = tournamentParticipantFacade.create(tournamentParticipant);
t.getParticipants().add(tournamentParticipant); t.getParticipants().add(tournamentParticipant);
} else { } else {
...@@ -161,25 +167,26 @@ public class TournamentBean implements TournamentBeanLocal { ...@@ -161,25 +167,26 @@ public class TournamentBean implements TournamentBeanLocal {
@Override @Override
@RolesAllowed(TournamentPermission.S_VIEW) @RolesAllowed(TournamentPermission.S_VIEW)
public boolean hasParticipations(EventUser currentUser, Tournament tournament) { public boolean hasParticipations(EventUser currentUser, Tournament tournament) {
for(TournamentParticipant tp : tournament.getParticipants()) { for (TournamentParticipant tp : tournament.getParticipants()) {
for(TournamentTeamMember tm : tp.getTeamMembers()) { for (TournamentTeamMember tm : tp.getTeamMembers()) {
EventUser eu = tm.getEventUser(); EventUser eu = tm.getEventUser();
System.out.println(eu.getNick()); System.out.println(eu.getNick());
if(eu.equals(currentUser)) { if (eu.equals(currentUser)) {
return true; return true;
} }
} }
} }
return false; return false;
} }
@Override @Override
@RolesAllowed(TournamentPermission.S_VIEW) @RolesAllowed(TournamentPermission.S_VIEW)
public EventUser findAvailablePlayerForTournamentByLogin(Tournament t, String login) throws Exception { public EventUser findAvailablePlayerForTournamentByLogin(Tournament t, String login) throws Exception {
EventUser u = eventUserFacade.findByLogin(login);
if(u != null) { EventUser u = eventUserFacade.findByLogin(login.toLowerCase().trim());
if(!hasParticipations(u,t)) if (u != null) {
if (!hasParticipations(u, t))
return u; return u;
else else
throw new Exception("tournaments.participation_already_exists"); throw new Exception("tournaments.participation_already_exists");
......
...@@ -912,7 +912,7 @@ submenu.shop.listReaders = N\u00E4yt\u00E4 lukijat ...@@ -912,7 +912,7 @@ submenu.shop.listReaders = N\u00E4yt\u00E4 lukijat
submenu.shop.shopToUser = Osta k\u00E4ytt\u00E4j\u00E4lle submenu.shop.shopToUser = Osta k\u00E4ytt\u00E4j\u00E4lle
submenu.shop.showReaderEvents = Lukijan tapahtumat submenu.shop.showReaderEvents = Lukijan tapahtumat
submenu.tournaments.admin.index = Katsele ja hallinnoi submenu.tournaments.admin.index = Katsele ja hallinnoi
submenu.tournaments.index = Katsele ja osallistu submenu.tournaments.index = Listaa turnaukset
submenu.user.accountEvents = Tilitapahtumat submenu.user.accountEvents = Tilitapahtumat
submenu.user.changePassword = Vaihda salasana submenu.user.changePassword = Vaihda salasana
submenu.user.create = Luo k\u00E4ytt\u00E4j\u00E4 submenu.user.create = Luo k\u00E4ytt\u00E4j\u00E4
......
...@@ -8,22 +8,29 @@ import javax.inject.Named; ...@@ -8,22 +8,29 @@ import javax.inject.Named;
import fi.codecrew.moya.beans.TournamentBeanLocal; import fi.codecrew.moya.beans.TournamentBeanLocal;
import fi.codecrew.moya.enums.TournamentStatus; import fi.codecrew.moya.enums.TournamentStatus;
import fi.codecrew.moya.enums.apps.TournamentPermission;
import fi.codecrew.moya.model.Tournament; import fi.codecrew.moya.model.Tournament;
import fi.codecrew.moya.web.cdiview.GenericCDIView;
@Named @Named
@RequestScoped @RequestScoped
public class TournamentListView { public class TournamentListView extends GenericCDIView {
@EJB private TournamentBeanLocal tournamentBean; @EJB
private TournamentBeanLocal tournamentBean;
public void initView() {
super.requirePermissions(TournamentPermission.VIEW);
}
public List<Tournament> getSetupPhaseTournaments() { public List<Tournament> getSetupPhaseTournaments() {
return tournamentBean.getTournamentsInStatus(TournamentStatus.SETUP, true); return tournamentBean.getTournamentsInStatus(TournamentStatus.SETUP, true);
} }
public List<Tournament> getInProgressTournaments() { public List<Tournament> getInProgressTournaments() {
return tournamentBean.getTournamentsInStatus(TournamentStatus.IN_PROGRESS, false); return tournamentBean.getTournamentsInStatus(TournamentStatus.IN_PROGRESS, false);
} }
public List<Tournament> getCompletedTournaments() { public List<Tournament> getCompletedTournaments() {
return tournamentBean.getTournamentsInStatus(TournamentStatus.COMPLETED, false); return tournamentBean.getTournamentsInStatus(TournamentStatus.COMPLETED, false);
} }
......
...@@ -10,11 +10,11 @@ import javax.inject.Named; ...@@ -10,11 +10,11 @@ import javax.inject.Named;
import fi.codecrew.moya.beans.PermissionBeanLocal; import fi.codecrew.moya.beans.PermissionBeanLocal;
import fi.codecrew.moya.beans.TournamentBeanLocal; import fi.codecrew.moya.beans.TournamentBeanLocal;
import fi.codecrew.moya.enums.TournamentTeamMemberRole; import fi.codecrew.moya.enums.TournamentTeamMemberRole;
import fi.codecrew.moya.enums.apps.TournamentPermission;
import fi.codecrew.moya.model.EventUser; import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.Tournament; import fi.codecrew.moya.model.Tournament;
import fi.codecrew.moya.model.TournamentParticipant; import fi.codecrew.moya.model.TournamentParticipant;
import fi.codecrew.moya.model.TournamentTeamMember; import fi.codecrew.moya.model.TournamentTeamMember;
import fi.codecrew.moya.utilities.I18n;
import fi.codecrew.moya.utilities.jsf.MessageHelper; import fi.codecrew.moya.utilities.jsf.MessageHelper;
import fi.codecrew.moya.web.cdiview.GenericCDIView; import fi.codecrew.moya.web.cdiview.GenericCDIView;
...@@ -24,54 +24,56 @@ public class TournamentParticipateView extends GenericCDIView { ...@@ -24,54 +24,56 @@ public class TournamentParticipateView extends GenericCDIView {
private static final long serialVersionUID = 8002140932622853455L; private static final long serialVersionUID = 8002140932622853455L;
private Tournament tournament; private Tournament tournament;
private TournamentParticipant tournamentParticipant; private TournamentParticipant tournamentParticipant;
@EJB private TournamentBeanLocal tournamentBean; @EJB
@EJB private PermissionBeanLocal permissionBean; private TournamentBeanLocal tournamentBean;
@EJB
private PermissionBeanLocal permissionBean;
private String selectedPlayerLogin; private String selectedPlayerLogin;
private String selectedBackupPlayerLogin; private String selectedBackupPlayerLogin;
public Integer getTeamMax() { public Integer getTeamMax() {
return tournament.getPlayersPerMatch(); return tournament.getPlayersPerMatch();
} }
public Integer getBackupMax() { public Integer getBackupMax() {
return (tournament.getPlayersPerTeam() - tournament.getPlayersPerMatch()); return (tournament.getPlayersPerTeam() - tournament.getPlayersPerMatch());
} }
public Integer getPlayerCount() { public Integer getPlayerCount() {
return getPlayers().size(); return getPlayers().size();
} }
public Integer getBackupPlayerCount() { public Integer getBackupPlayerCount() {
return getBackupPlayers().size(); return getBackupPlayers().size();
} }
public void removePlayerFromTeam(Integer euid) { public void removePlayerFromTeam(Integer euid) {
TournamentTeamMember ttcand = null; TournamentTeamMember ttcand = null;
for(TournamentTeamMember ttm : tournamentParticipant.getTeamMembers()) { for (TournamentTeamMember ttm : tournamentParticipant.getTeamMembers()) {
if(ttm.getEventUser().getId() == euid) { if (ttm.getEventUser().getId() == euid) {
ttcand = ttm; ttcand = ttm;
} }
} }
if(ttcand != null) { if (ttcand != null) {
if(ttcand.getRole() == TournamentTeamMemberRole.CAPTAIN) { if (ttcand.getRole() == TournamentTeamMemberRole.CAPTAIN) {
MessageHelper.err("tournament.cannot_remove_captain"); MessageHelper.err("tournament.cannot_remove_captain");
} else { } else {
tournamentParticipant.getTeamMembers().remove(ttcand); tournamentParticipant.getTeamMembers().remove(ttcand);
} }
} }
} }
public String participate(Integer tournamentId) { public String participate(Integer tournamentId) {
tournament = tournamentBean.getTournamentById(tournamentId); tournament = tournamentBean.getTournamentById(tournamentId);
if(tournamentBean.hasParticipations(permissionBean.getCurrentUser(), tournament)) { if (tournamentBean.hasParticipations(permissionBean.getCurrentUser(), tournament)) {
MessageHelper.err("tournament.already_participated_into_tournament"); MessageHelper.err("tournament.already_participated_into_tournament");
return "/tournaments/index.xhtml"; return "/tournaments/index.xhtml";
} }
this.beginConversation(); this.beginConversation();
if(tournament != null) { if (tournament != null) {
tournamentParticipant = new TournamentParticipant(); tournamentParticipant = new TournamentParticipant();
tournamentParticipant.setTournament(tournament); tournamentParticipant.setTournament(tournament);
tournamentParticipant.setParticipator(permissionBean.getCurrentUser()); tournamentParticipant.setParticipator(permissionBean.getCurrentUser());
...@@ -81,8 +83,8 @@ public class TournamentParticipateView extends GenericCDIView { ...@@ -81,8 +83,8 @@ public class TournamentParticipateView extends GenericCDIView {
captain.setEventUser(permissionBean.getCurrentUser()); captain.setEventUser(permissionBean.getCurrentUser());
captain.setTeam(tournamentParticipant); captain.setTeam(tournamentParticipant);
tournamentParticipant.getTeamMembers().add(captain); tournamentParticipant.getTeamMembers().add(captain);
if(tournament.getPlayersPerTeam() == 1) { if (tournament.getPlayersPerTeam() == 1) {
return "/tournaments/participate_single.xhtml"; return "/tournaments/participate_single.xhtml";
} else { } else {
return "/tournaments/participate_multi.xhtml"; return "/tournaments/participate_multi.xhtml";
...@@ -91,97 +93,101 @@ public class TournamentParticipateView extends GenericCDIView { ...@@ -91,97 +93,101 @@ public class TournamentParticipateView extends GenericCDIView {
return "/tournaments/index.xhtml"; return "/tournaments/index.xhtml";
} }
} }
public String addMainPlayerToTeam() { public String addMainPlayerToTeam() {
try { try {
EventUser p = tournamentBean.findAvailablePlayerForTournamentByLogin(this.tournament, selectedPlayerLogin); EventUser p = tournamentBean.findAvailablePlayerForTournamentByLogin(this.tournament, selectedPlayerLogin);
for(TournamentTeamMember member : tournamentParticipant.getTeamMembers()) for (TournamentTeamMember member : tournamentParticipant.getTeamMembers())
if(member.getEventUser().equals(p)) if (member.getEventUser().equals(p))
throw new Exception("tournament.player_already_exists_in_team"); throw new Exception("tournament.player_already_exists_in_team");
if(p.isAnonymous()) { if (p.isAnonymous()) {
throw new Exception("tournament.cannot_add_anon_user"); throw new Exception("tournament.cannot_add_anon_user");
} }
TournamentTeamMember ttm = new TournamentTeamMember(); TournamentTeamMember ttm = new TournamentTeamMember();
ttm.setEventUser(p); ttm.setEventUser(p);
ttm.setRole(TournamentTeamMemberRole.PLAYER); ttm.setRole(TournamentTeamMemberRole.PLAYER);
ttm.setTeam(tournamentParticipant); ttm.setTeam(tournamentParticipant);
this.tournamentParticipant.getTeamMembers().add(ttm); this.tournamentParticipant.getTeamMembers().add(ttm);
MessageHelper.info("tournament.player_successfully_added_to_team"); MessageHelper.info("tournament.player_successfully_added_to_team");
this.selectedPlayerLogin = ""; this.selectedPlayerLogin = "";
} catch (Exception e) { } catch (Exception e) {
MessageHelper.err(e.getMessage()); MessageHelper.err(e.getMessage());
} }
return ""; return "";
} }
public String addBackupPlayerToTeam() { public String addBackupPlayerToTeam() {
try { try {
EventUser p = tournamentBean.findAvailablePlayerForTournamentByLogin(this.tournament, selectedBackupPlayerLogin); EventUser p = tournamentBean.findAvailablePlayerForTournamentByLogin(this.tournament, selectedBackupPlayerLogin);
for(TournamentTeamMember member : tournamentParticipant.getTeamMembers()) for (TournamentTeamMember member : tournamentParticipant.getTeamMembers())
if(member.getEventUser().equals(p)) if (member.getEventUser().equals(p))
throw new Exception("tournament.player_already_exists_in_team"); throw new Exception("tournament.player_already_exists_in_team");
if(p.isAnonymous()) { if (p.isAnonymous()) {
throw new Exception("tournament.cannot_add_anon_user"); throw new Exception("tournament.cannot_add_anon_user");
} }
TournamentTeamMember ttm = new TournamentTeamMember(); TournamentTeamMember ttm = new TournamentTeamMember();
ttm.setEventUser(p); ttm.setEventUser(p);
ttm.setRole(TournamentTeamMemberRole.BACKUP_PLAYER); ttm.setRole(TournamentTeamMemberRole.BACKUP_PLAYER);
ttm.setTeam(tournamentParticipant); ttm.setTeam(tournamentParticipant);
this.tournamentParticipant.getTeamMembers().add(ttm); this.tournamentParticipant.getTeamMembers().add(ttm);
MessageHelper.info("tournament.backup_player_successfully_added_to_team"); MessageHelper.info("tournament.backup_player_successfully_added_to_team");
this.selectedBackupPlayerLogin = ""; this.selectedBackupPlayerLogin = "";
} catch (Exception e) { } catch (Exception e) {
MessageHelper.err(e.getMessage()); MessageHelper.err(e.getMessage());
} }
return ""; return "";
} }
public List<TournamentTeamMember> getPlayers() { public List<TournamentTeamMember> getPlayers() {
ArrayList<TournamentTeamMember> ttms = new ArrayList<>(); ArrayList<TournamentTeamMember> ttms = new ArrayList<>();
for(TournamentTeamMember ttm : tournamentParticipant.getTeamMembers()) { for (TournamentTeamMember ttm : tournamentParticipant.getTeamMembers()) {
if(ttm.getRole() == TournamentTeamMemberRole.CAPTAIN || ttm.getRole() == TournamentTeamMemberRole.PLAYER) { if (ttm.getRole() == TournamentTeamMemberRole.CAPTAIN || ttm.getRole() == TournamentTeamMemberRole.PLAYER) {
ttms.add(ttm); ttms.add(ttm);
} }
} }
return ttms; return ttms;
} }
public List<TournamentTeamMember> getBackupPlayers() { public List<TournamentTeamMember> getBackupPlayers() {
ArrayList<TournamentTeamMember> ttms = new ArrayList<>(); ArrayList<TournamentTeamMember> ttms = new ArrayList<>();
for(TournamentTeamMember ttm : tournamentParticipant.getTeamMembers()) { for (TournamentTeamMember ttm : tournamentParticipant.getTeamMembers()) {
if(ttm.getRole() == TournamentTeamMemberRole.BACKUP_PLAYER) { if (ttm.getRole() == TournamentTeamMemberRole.BACKUP_PLAYER) {
ttms.add(ttm); ttms.add(ttm);
} }
} }
return ttms; return ttms;
} }
public String saveParticipation() { public String saveParticipation() {
if(tournamentParticipant != null) { if (tournamentParticipant != null) {
try { try {
tournamentBean.createParticipation(tournamentParticipant); tournamentBean.createParticipation(tournamentParticipant);
MessageHelper.info("tournament.participation_success"); MessageHelper.info("tournament.participation_success");
} catch(Exception e) { } catch (Exception e) {
MessageHelper.err(e.getMessage()); MessageHelper.err(e.getMessage());
} }
} else { } else {
MessageHelper.err("tournament.participation_failed"); MessageHelper.err("tournament.participation_failed");
} }
this.endConversation(); this.endConversation();
return "/tournaments/index.xhtml"; return "/tournaments/index.xhtml";
} }
public String cancelParticipation() { public String cancelParticipation() {
this.endConversation(); this.endConversation();
return "/tournaments/index.xhtml"; return "/tournaments/index.xhtml";
} }
public boolean canParticipate() {
return super.hasPermission(TournamentPermission.PARTICIPATE);
}
public Tournament getTournament() { public Tournament getTournament() {
return tournament; return tournament;
...@@ -190,11 +196,11 @@ public class TournamentParticipateView extends GenericCDIView { ...@@ -190,11 +196,11 @@ public class TournamentParticipateView extends GenericCDIView {
public void setTournament(Tournament tournament) { public void setTournament(Tournament tournament) {
this.tournament = tournament; this.tournament = tournament;
} }
public TournamentParticipant getTournamentParticipant() { public TournamentParticipant getTournamentParticipant() {
return this.tournamentParticipant; return this.tournamentParticipant;
} }
public void setTournamentParticipant(TournamentParticipant tp) { public void setTournamentParticipant(TournamentParticipant tp) {
this.tournamentParticipant = tp; this.tournamentParticipant = tp;
} }
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!