Commit cd83eda8 by Antti Tönkyrä

I18N, stuff...

1 parent 547bf0fb
...@@ -17,6 +17,7 @@ import fi.codecrew.moya.enums.apps.ContentPermission; ...@@ -17,6 +17,7 @@ import fi.codecrew.moya.enums.apps.ContentPermission;
import fi.codecrew.moya.enums.apps.EventPermission; import fi.codecrew.moya.enums.apps.EventPermission;
import fi.codecrew.moya.enums.apps.LicensePermission; import fi.codecrew.moya.enums.apps.LicensePermission;
import fi.codecrew.moya.enums.apps.MapPermission; import fi.codecrew.moya.enums.apps.MapPermission;
import fi.codecrew.moya.enums.apps.NetworkAssociationPermission;
import fi.codecrew.moya.enums.apps.PollPermission; import fi.codecrew.moya.enums.apps.PollPermission;
import fi.codecrew.moya.enums.apps.ShopPermission; import fi.codecrew.moya.enums.apps.ShopPermission;
import fi.codecrew.moya.enums.apps.SpecialPermission; import fi.codecrew.moya.enums.apps.SpecialPermission;
...@@ -195,6 +196,10 @@ public class MenuBean implements MenuBeanLocal { ...@@ -195,6 +196,10 @@ public class MenuBean implements MenuBeanLocal {
adminEventCards.addPage(menuitemfacade.findOrCreate("/shop/shopToUser"), null).setVisible(false); adminEventCards.addPage(menuitemfacade.findOrCreate("/shop/shopToUser"), null).setVisible(false);
adminEventCards.addPage(menuitemfacade.findOrCreate("/shop/assocToUser"), null).setVisible(false); adminEventCards.addPage(menuitemfacade.findOrCreate("/shop/assocToUser"), null).setVisible(false);
MenuNavigation adminAssociation = adminmenu.addPage(null, null);
adminAssociation.setKey("topnavi.adminassoc");
adminAssociation.addPage(menuitemfacade.findOrCreate("/networkassociation/index"), NetworkAssociationPermission.CAN_ADMINISTER_ASSOCIATIONS);
// shop // shop
MenuNavigation adminshop = adminmenu.addPage(null, null); MenuNavigation adminshop = adminmenu.addPage(null, null);
adminshop.setKey("topnavi.adminshop"); adminshop.setKey("topnavi.adminshop");
......
...@@ -4,6 +4,7 @@ import java.util.Calendar; ...@@ -4,6 +4,7 @@ import java.util.Calendar;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import javax.annotation.security.RolesAllowed;
import javax.ejb.EJB; import javax.ejb.EJB;
import javax.ejb.LocalBean; import javax.ejb.LocalBean;
import javax.ejb.Stateless; import javax.ejb.Stateless;
...@@ -41,15 +42,20 @@ public class NetworkAssociationBean implements NetworkAssociationBeanLocal { ...@@ -41,15 +42,20 @@ public class NetworkAssociationBean implements NetworkAssociationBeanLocal {
@EJB @EJB
private EventBean eventBean; private EventBean eventBean;
@EJB
private PermissionBean permissionBean;
public NetworkAssociationBean() {} public NetworkAssociationBean() {}
@Override @Override
@RolesAllowed(NetworkAssociationPermission.S_CAN_ADMINISTER_ASSOCIATIONS)
public List<NetworkAssociation> getStatusByIPAndMAC(String ip, String mac) { public List<NetworkAssociation> getStatusByIPAndMAC(String ip, String mac) {
return networkAssociationFacade.findByIPAndMAC(eventBean.getCurrentEvent(), ip, mac); return networkAssociationFacade.findByIPAndMAC(eventBean.getCurrentEvent(), ip, mac);
} }
@Override @Override
@RolesAllowed(NetworkAssociationPermission.S_CAN_ADMINISTER_ASSOCIATIONS)
public List<NetworkAssociation> getActiveAssociations(boolean activatePending) { public List<NetworkAssociation> getActiveAssociations(boolean activatePending) {
if(activatePending) if(activatePending)
activatePendingAssociations(); activatePendingAssociations();
...@@ -57,7 +63,18 @@ public class NetworkAssociationBean implements NetworkAssociationBeanLocal { ...@@ -57,7 +63,18 @@ public class NetworkAssociationBean implements NetworkAssociationBeanLocal {
return networkAssociationFacade.findByStatus(eventBean.getCurrentEvent(), NetworkAssociationStatus.ACTIVE); return networkAssociationFacade.findByStatus(eventBean.getCurrentEvent(), NetworkAssociationStatus.ACTIVE);
} }
@Override
@RolesAllowed(NetworkAssociationPermission.S_CAN_ADMINISTER_ASSOCIATIONS)
public NetworkAssociation tryAssociate(String ip, String mac) {
EventUser eu = permissionBean.getCurrentUser();
HashSet<IAppPermission> userPerms = buildPermsFor(eu);
NetworkAssociation nasc = associate(eu, userPerms, null, ip, mac);
return nasc;
}
@Override @Override
@RolesAllowed(NetworkAssociationPermission.S_CAN_ADMINISTER_ASSOCIATIONS)
public NetworkAssociation tryAssociate(String username, String password, public NetworkAssociation tryAssociate(String username, String password,
String ip, String mac, String code, boolean codeRequired) String ip, String mac, String code, boolean codeRequired)
throws Exception { throws Exception {
...@@ -68,24 +85,7 @@ public class NetworkAssociationBean implements NetworkAssociationBeanLocal { ...@@ -68,24 +85,7 @@ public class NetworkAssociationBean implements NetworkAssociationBeanLocal {
NetworkAssociation association; NetworkAssociation association;
HashSet<IAppPermission> userPerms = new HashSet<>(); HashSet<IAppPermission> userPerms = buildPermsFor(authUser);
if (authUser.getUser().isSuperadmin()) {
// Iterate through all permissions & add
for (BortalApplication app : BortalApplication.values()) {
for (IAppPermission perm : app.getPermissions()) {
userPerms.add(perm);
}
}
} else {
for(Role r : userBean.localFindUsersRoles(authUser)) {
for(ApplicationPermission appPerm : r.getPermissions()) {
IAppPermission iap = appPerm.getPermission();
if(!userPerms.contains(iap)) {
userPerms.add(iap);
}
}
}
}
if(!userPerms.contains(NetworkAssociationPermission.CAN_ASSOCIATE)) if(!userPerms.contains(NetworkAssociationPermission.CAN_ASSOCIATE))
throw new Exception("USER_HAS_NO_ASSOCIATE_PERMISSION"); throw new Exception("USER_HAS_NO_ASSOCIATE_PERMISSION");
...@@ -134,6 +134,45 @@ public class NetworkAssociationBean implements NetworkAssociationBeanLocal { ...@@ -134,6 +134,45 @@ public class NetworkAssociationBean implements NetworkAssociationBeanLocal {
return association; return association;
} }
@Override
@RolesAllowed(NetworkAssociationPermission.S_CAN_ADMINISTER_ASSOCIATIONS)
public List<NetworkAssociation> getPendingAssociations() {
return networkAssociationFacade.findByStatus(eventBean.getCurrentEvent(), NetworkAssociationStatus.PENDING);
}
@Override
@RolesAllowed(NetworkAssociationPermission.S_CAN_ADMINISTER_ASSOCIATIONS)
public void dropAssociationById(Integer associd) {
NetworkAssociation na = networkAssociationFacade.find(associd);
if(na.getEvent().equals(eventBean.getCurrentEvent())) {
na.setModifyTime(Calendar.getInstance());
na.setStatus(NetworkAssociationStatus.EXPIRED);
}
}
private HashSet<IAppPermission> buildPermsFor(EventUser authUser) {
HashSet<IAppPermission> userPerms = new HashSet<>();
if (authUser.getUser().isSuperadmin()) {
// Iterate through all permissions & add
for (BortalApplication app : BortalApplication.values()) {
for (IAppPermission perm : app.getPermissions()) {
userPerms.add(perm);
}
}
} else {
for(Role r : userBean.localFindUsersRoles(authUser)) {
for(ApplicationPermission appPerm : r.getPermissions()) {
IAppPermission iap = appPerm.getPermission();
if(!userPerms.contains(iap)) {
userPerms.add(iap);
}
}
}
}
return userPerms;
}
private void activatePendingAssociations() { private void activatePendingAssociations() {
List<NetworkAssociation> netAssocs = networkAssociationFacade.findByStatus( List<NetworkAssociation> netAssocs = networkAssociationFacade.findByStatus(
...@@ -210,5 +249,5 @@ public class NetworkAssociationBean implements NetworkAssociationBeanLocal { ...@@ -210,5 +249,5 @@ public class NetworkAssociationBean implements NetworkAssociationBeanLocal {
private Place resolvePlaceFromCode(String code) { private Place resolvePlaceFromCode(String code) {
if(code == null) return null; if(code == null) return null;
return barcodeBean.getPlaceFromTextCode(code); return barcodeBean.getPlaceFromTextCode(code);
} }
} }
...@@ -17,4 +17,10 @@ public interface NetworkAssociationBeanLocal { ...@@ -17,4 +17,10 @@ public interface NetworkAssociationBeanLocal {
List<NetworkAssociation> getActiveAssociations(boolean activatePending); List<NetworkAssociation> getActiveAssociations(boolean activatePending);
NetworkAssociation tryAssociate(String ip, String mac);
List<NetworkAssociation> getPendingAssociations();
void dropAssociationById(Integer associd);
} }
...@@ -8,12 +8,14 @@ public enum NetworkAssociationPermission implements IAppPermission { ...@@ -8,12 +8,14 @@ public enum NetworkAssociationPermission implements IAppPermission {
CAN_SHUFFLE_IN_GROUP, CAN_SHUFFLE_IN_GROUP,
CAN_ASSOCIATE, CAN_ASSOCIATE,
CAN_ASSOCIATE_MANY_PER_PLACE, CAN_ASSOCIATE_MANY_PER_PLACE,
CAN_ADMINISTER_ASSOCIATIONS,
; ;
public static final String S_OVERRIDE_PLACE_REQUIREMENT = "NETWORKASSOCIATION/OVERRIDE_PLACE_REQUIREMENT"; public static final String S_OVERRIDE_PLACE_REQUIREMENT = "NETWORKASSOCIATION/OVERRIDE_PLACE_REQUIREMENT";
public static final String S_CAN_SHUFFLE_IN_GROUP = "NETWORKASSOCIATION/CAN_SHUFFLE_IN_GROUP"; public static final String S_CAN_SHUFFLE_IN_GROUP = "NETWORKASSOCIATION/CAN_SHUFFLE_IN_GROUP";
public static final String S_CAN_ASSOCIATE = "NETWORKASSOCIATION/CAN_ASSOCIATE"; public static final String S_CAN_ASSOCIATE = "NETWORKASSOCIATION/CAN_ASSOCIATE";
public static final String S_CAN_ASSOCIATE_MANY_PER_PLACE = "NETWORKASSOCIATION/CAN_ASSOCIATE_MANY_PER_PLACE"; public static final String S_CAN_ASSOCIATE_MANY_PER_PLACE = "NETWORKASSOCIATION/CAN_ASSOCIATE_MANY_PER_PLACE";
public static final String S_CAN_ADMINISTER_ASSOCIATIONS = "NETWORKASSOCIATION/CAN_ADMINISTER_ASSOCIATIONS";
private final String fullName; private final String fullName;
private final String key; private final String key;
......
...@@ -27,8 +27,10 @@ ...@@ -27,8 +27,10 @@
</h:outputText> </h:outputText>
</p:column> </p:column>
<p:column headerText="#{i18n['networkassociation.create_time']}"> <p:column headerText="#{i18n['networkassociation.user']}">
<h:outputText value="#{activeAssoc.eventUser.user.nick}" /> <h:link outcome="/useradmin/edit" value="#{activeAssoc.eventUser.user.nick}">
<f:param name="userid" value="#{activeAssoc.eventUser.user.id}" />
</h:link>
</p:column> </p:column>
<p:column headerText="#{i18n['networkassociation.ip_address']}"> <p:column headerText="#{i18n['networkassociation.ip_address']}">
...@@ -44,17 +46,55 @@ ...@@ -44,17 +46,55 @@
</p:column> </p:column>
<p:column headerText="#{i18n['networkassociation.action']}"> <p:column headerText="#{i18n['networkassociation.action']}">
PRESSME <p:commandButton value="#{i18n['networkassociation.drop_association']}" action="#{networkAssociationView.dropAssociation(activeAssoc.id)}" update="@form" immediate="true"/>
</p:column> </p:column>
</p:dataTable> </p:dataTable>
<h1>#{i18n['networkassociation.pending_associations']}</h1>
<p:dataTable var="activeAssoc" value="#{networkAssociationView.pendingAssociations}">
<p:column headerText="#{i18n['networkassociation.create_time']}">
<h:outputText value="#{activeAssoc.createTime.time}">
<f:convertDateTime pattern="#{sessionHandler.datetimeFormat}" timeZone="#{sessionHandler.timezone}" />
</h:outputText>
</p:column>
<p:column headerText="#{i18n['networkassociation.modify_time']}">
<h:outputText value="#{activeAssoc.modifyTime.time}">
<f:convertDateTime pattern="#{sessionHandler.datetimeFormat}" timeZone="#{sessionHandler.timezone}" />
</h:outputText>
</p:column>
<p:column headerText="#{i18n['networkassociation.user']}">
<h:link outcome="/useradmin/edit" value="#{activeAssoc.eventUser.user.nick}">
<f:param name="userid" value="#{activeAssoc.eventUser.user.id}" />
</h:link>
</p:column>
<p:column headerText="#{i18n['networkassociation.ip_address']}">
<h:outputText value="#{activeAssoc.ip}" />
</p:column>
<p:column headerText="#{i18n['networkassociation.mac_address']}">
<h:outputText value="#{activeAssoc.mac}" />
</p:column>
<p:column headerText="#{i18n['networkassociation.place']}">
<h:outputText value="#{activeAssoc.place.name}" />
</p:column>
<p:column headerText="#{i18n['networkassociation.action']}">
<p:commandButton value="#{i18n['networkassociation.drop_association']}" action="#{networkAssociationView.dropAssociation(activeAssoc.id)}" update="@form" immediate="true"/>
</p:column>
</p:dataTable>
<br />
<h:panelGrid columns="3"> <h:panelGrid columns="3">
<h:outputText value="#{i18n['networkassociation.ip_address']}" /> <h:outputText value="#{i18n['networkassociation.ip_address']}" />
<h:outputText value="#{i18n['networkassociation.mac_address']}" /> <h:outputText value="#{i18n['networkassociation.mac_address']}" />
<h:outputText value="" /> <h:outputText value="" />
<p:inputText style="width: 100%;" validator="#{networkAssociationView.validateIP}"/> <p:inputText style="width: 90%;" validator="#{networkAssociationView.validateIP}" value="#{networkAssociationView.ipAddress}"/>
<p:inputText style="width: 100%;" validator="#{networkAssociationView.validateMAC}"/> <p:inputText style="width: 90%;" validator="#{networkAssociationView.validateMAC}" value="#{networkAssociationView.macAddress}"/>
<p:commandButton value="#{i18n['networkassociation.create_association']}" action="#{networkAssociationView.createAssociation}"/> <p:commandButton value="#{i18n['networkassociation.create_association']}" action="#{networkAssociationView.createAssociation}" update="@form"/>
</h:panelGrid> </h:panelGrid>
</h:form> </h:form>
</ui:define> </ui:define>
......
...@@ -232,17 +232,17 @@ resetMail.username = Username ...@@ -232,17 +232,17 @@ resetMail.username = Username
resetmailSent.body = Email has been sent containing a link where you can change the password. resetmailSent.body = Email has been sent containing a link where you can change the password.
resetmailSent.header = Email sent resetmailSent.header = Email sent
submenu.NotImplementedYet = Not implemented submenu.NotImplementedYet = Not implemented
submenu.admin.adduser = K\u00E4ytt\u00E4j\u00E4nlis\u00E4ys submenu.admin.adduser = K\u00E4ytt\u00E4j\u00E4nlis\u00E4ys
submenu.admin.adduser.index = K\u00E4ytt\u00E4j\u00E4nlis\u00E4ys submenu.admin.adduser.index = K\u00E4ytt\u00E4j\u00E4nlis\u00E4ys
submenu.frontpage = Frontpage submenu.frontpage = Frontpage
submenu.info.incoming = Incomingview submenu.info.incoming = Incomingview
submenu.info.index = Infon\u00E4kym\u00E4 submenu.info.index = Infon\u00E4kym\u00E4
subnavi.cards = \u0009\u0009 subnavi.cards = \u0009\u0009
subnavi.info = Info subnavi.info = Info
topnavi.license = Lisenssikoodit topnavi.license = Lisenssikoodit
user.cropImage = Crop user.cropImage = Crop
user.imageUpload.imageNotFound = Select image to upload user.imageUpload.imageNotFound = Select image to upload
......
...@@ -545,6 +545,18 @@ menuitem.navigation.key = Product flag ...@@ -545,6 +545,18 @@ menuitem.navigation.key = Product flag
nasty.user = Go away! nasty.user = Go away!
networkassociation.action = Action
networkassociation.create_association = Create association
networkassociation.create_time = Created on
networkassociation.current_associations = Current Associations
networkassociation.drop_association = Drop
networkassociation.ip_address = IP Address
networkassociation.mac_address = MAC Address
networkassociation.modify_time = Modified on
networkassociation.pending_associations = Pending Associations
networkassociation.place = Place
networkassociation.user = User
news.abstract = Abstract news.abstract = Abstract
news.edit = Edit news.edit = Edit
news.expire = Expire news.expire = Expire
...@@ -952,6 +964,7 @@ submenu.license.manageCodes = Manage codes ...@@ -952,6 +964,7 @@ submenu.license.manageCodes = Manage codes
submenu.license.viewCodes = View codes submenu.license.viewCodes = View codes
submenu.map.create = Create map submenu.map.create = Create map
submenu.map.list = List maps submenu.map.list = List maps
submenu.networkassociation.index = Associations
submenu.orgrole.create = Create organisationrole submenu.orgrole.create = Create organisationrole
submenu.orgrole.list = Organisation roles submenu.orgrole.list = Organisation roles
submenu.pages.create = Create content submenu.pages.create = Create content
...@@ -1029,6 +1042,7 @@ topmenu.admin = Admin View ...@@ -1029,6 +1042,7 @@ topmenu.admin = Admin View
topmenu.helpdesk = Helpdesk topmenu.helpdesk = Helpdesk
topmenu.user = User View topmenu.user = User View
topnavi.adminassoc = Net Associations
topnavi.adminshop = Adminshop topnavi.adminshop = Adminshop
topnavi.billing = Billing topnavi.billing = Billing
topnavi.competitions = Competitions topnavi.competitions = Competitions
......
...@@ -555,6 +555,18 @@ menu.user.edit = Omat tiedot ...@@ -555,6 +555,18 @@ menu.user.edit = Omat tiedot
nasty.user = Mene pois! nasty.user = Mene pois!
networkassociation.action = Toiminto
networkassociation.create_association = Luo assosiaatio
networkassociation.create_time = Luontiaika
networkassociation.current_associations = Aktiiviset assosiaatiot
networkassociation.drop_association = Poista
networkassociation.ip_address = IP-osoite
networkassociation.mac_address = MAC-osoite
networkassociation.modify_time = Muutosaika
networkassociation.pending_associations = Odottavat assosiaatiot
networkassociation.place = Paikka
networkassociation.user = K\u00E4ytt\u00E4j\u00E4
news.abstract = Lyhennelm\u00E4 news.abstract = Lyhennelm\u00E4
news.edit = Muokkaa news.edit = Muokkaa
news.expire = Lopeta julkaisu news.expire = Lopeta julkaisu
...@@ -933,6 +945,7 @@ submenu.license.manageCodes = Hallinnoi lisenssej\u00E4 ...@@ -933,6 +945,7 @@ submenu.license.manageCodes = Hallinnoi lisenssej\u00E4
submenu.license.viewCodes = N\u00E4yt\u00E4 koodit submenu.license.viewCodes = N\u00E4yt\u00E4 koodit
submenu.map.create = Uusi kartta submenu.map.create = Uusi kartta
submenu.map.list = N\u00E4yt\u00E4 kartat submenu.map.list = N\u00E4yt\u00E4 kartat
submenu.networkassociation.index = Assosiaatiot
submenu.orgrole.create = Luo j\u00E4rjest\u00E4j\u00E4rooli submenu.orgrole.create = Luo j\u00E4rjest\u00E4j\u00E4rooli
submenu.orgrole.list = J\u00E4rjest\u00E4j\u00E4roolit submenu.orgrole.list = J\u00E4rjest\u00E4j\u00E4roolit
submenu.pages.create = Luo sis\u00E4lt\u00F6\u00E4 submenu.pages.create = Luo sis\u00E4lt\u00F6\u00E4
...@@ -1013,6 +1026,7 @@ topmenu.admin = Yll\u00E4piton\u00E4kym\u00E4 ...@@ -1013,6 +1026,7 @@ topmenu.admin = Yll\u00E4piton\u00E4kym\u00E4
topmenu.helpdesk = Helpdesk topmenu.helpdesk = Helpdesk
topmenu.user = K\u00E4ytt\u00E4j\u00E4n\u00E4kym\u00E4 topmenu.user = K\u00E4ytt\u00E4j\u00E4n\u00E4kym\u00E4
topnavi.adminassoc = Verkkoassosioinnit
topnavi.adminshop = Kauppa topnavi.adminshop = Kauppa
topnavi.billing = Laskutus topnavi.billing = Laskutus
topnavi.competitions = Kilpailut topnavi.competitions = Kilpailut
......
...@@ -82,12 +82,12 @@ public class NetworkAssociationRestView { ...@@ -82,12 +82,12 @@ public class NetworkAssociationRestView {
} }
} }
@GET @POST
@Path("/get_status_by_ip_mac/{ip}/{mac}") @Path("/get_status_by_ip_mac")
@Produces({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON })
public NetworkAssociationResponseRoot getChanges( public NetworkAssociationResponseRoot getChanges(
@PathParam("ip") String ip, @FormParam("ip") String ip,
@PathParam("mac") String mac @FormParam("mac") String mac
) { ) {
NetworkAssociationResponseRoot resp = new NetworkAssociationResponseRoot(); NetworkAssociationResponseRoot resp = new NetworkAssociationResponseRoot();
try { try {
......
...@@ -5,6 +5,7 @@ import java.util.List; ...@@ -5,6 +5,7 @@ import java.util.List;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import javax.ejb.EJB; import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.faces.application.FacesMessage; import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent; import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext; import javax.faces.context.FacesContext;
...@@ -13,11 +14,15 @@ import javax.inject.Named; ...@@ -13,11 +14,15 @@ import javax.inject.Named;
import javax.mail.internet.InternetAddress; import javax.mail.internet.InternetAddress;
import fi.codecrew.moya.beans.NetworkAssociationBeanLocal; import fi.codecrew.moya.beans.NetworkAssociationBeanLocal;
import fi.codecrew.moya.enums.apps.NetworkAssociationPermission;
import fi.codecrew.moya.enums.apps.TournamentPermission;
import fi.codecrew.moya.model.NetworkAssociation; import fi.codecrew.moya.model.NetworkAssociation;
import fi.codecrew.moya.utilities.jsf.MessageHelper; import fi.codecrew.moya.utilities.jsf.MessageHelper;
import fi.codecrew.moya.web.cdiview.GenericCDIView;
@Named @Named
public class NetworkAssociationView { @RequestScoped
public class NetworkAssociationView extends GenericCDIView {
private String ipAddress; private String ipAddress;
private String macAddress; private String macAddress;
...@@ -26,15 +31,27 @@ public class NetworkAssociationView { ...@@ -26,15 +31,27 @@ public class NetworkAssociationView {
private NetworkAssociationBeanLocal networkAssociationBean; private NetworkAssociationBeanLocal networkAssociationBean;
public void initView() { public void initView() {
super.requirePermissions(NetworkAssociationPermission.CAN_ADMINISTER_ASSOCIATIONS);
} }
public String createAssociation() { public String createAssociation() {
this.networkAssociationBean.tryAssociate(this.ipAddress, this.macAddress.toLowerCase());
this.ipAddress = "";
this.macAddress = "";
return "";
}
public String dropAssociation(String aid) {
Integer associd = Integer.parseInt(aid);
this.networkAssociationBean.dropAssociationById(associd);
return ""; return "";
} }
public void validateIP(FacesContext context, UIComponent ui, Object object) throws Exception { public void validateIP(FacesContext context, UIComponent ui, Object object) throws Exception {
String addr = object.toString().trim(); String addr = object.toString().trim();
if(addr.length() == 0)
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "networkassociation.invalid_ip_address", ""));
try { try {
InetAddress.getByName(addr); InetAddress.getByName(addr);
} catch(Exception e) { } catch(Exception e) {
...@@ -53,6 +70,10 @@ public class NetworkAssociationView { ...@@ -53,6 +70,10 @@ public class NetworkAssociationView {
public List<NetworkAssociation> getActiveAssociations() { public List<NetworkAssociation> getActiveAssociations() {
return networkAssociationBean.getActiveAssociations(false); return networkAssociationBean.getActiveAssociations(false);
} }
public List<NetworkAssociation> getPendingAssociations() {
return networkAssociationBean.getPendingAssociations();
}
public String getIpAddress() { public String getIpAddress() {
return ipAddress; return ipAddress;
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!