Commit 0f125c44 by Tuukka Kivilahti

and now it works, lets do it with this

1 parent 21ed9402
...@@ -12,6 +12,7 @@ import javax.annotation.Resource; ...@@ -12,6 +12,7 @@ import javax.annotation.Resource;
import javax.annotation.security.DeclareRoles; import javax.annotation.security.DeclareRoles;
import javax.annotation.security.RolesAllowed; import javax.annotation.security.RolesAllowed;
import javax.ejb.EJB; import javax.ejb.EJB;
import javax.ejb.EJBAccessException;
import javax.ejb.LocalBean; import javax.ejb.LocalBean;
import javax.ejb.SessionContext; import javax.ejb.SessionContext;
import javax.ejb.Stateless; import javax.ejb.Stateless;
...@@ -20,6 +21,7 @@ import org.slf4j.Logger; ...@@ -20,6 +21,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import fi.codecrew.moya.enums.apps.IAppPermission; import fi.codecrew.moya.enums.apps.IAppPermission;
import fi.codecrew.moya.enums.apps.SpecialPermission;
import fi.codecrew.moya.enums.apps.UserPermission; import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.facade.EventUserFacade; import fi.codecrew.moya.facade.EventUserFacade;
import fi.codecrew.moya.facade.RoleFacade; import fi.codecrew.moya.facade.RoleFacade;
...@@ -56,7 +58,10 @@ public class RoleBean implements RoleBeanLocal { ...@@ -56,7 +58,10 @@ public class RoleBean implements RoleBeanLocal {
private EventUserFacade eventuserfacade; private EventUserFacade eventuserfacade;
@EJB @EJB
private EventBeanLocal permbean; private PermissionBeanLocal permbean;
@EJB
private LoggingBeanLocal loggerbean;
@EJB @EJB
private CardTemplateBean cardTemplateBean; private CardTemplateBean cardTemplateBean;
...@@ -215,8 +220,12 @@ public class RoleBean implements RoleBeanLocal { ...@@ -215,8 +220,12 @@ public class RoleBean implements RoleBeanLocal {
@Override @Override
@RolesAllowed(UserPermission.S_READ_ROLES) @RolesAllowed(SpecialPermission.S_USER)
public List<Role> getRoles(EventUser selectedUser) { public List<Role> getRoles(EventUser selectedUser) {
if (!permbean.isCurrentUser(selectedUser) && !permbean.hasPermission(UserPermission.READ_ROLES)) {
loggerbean.logMessage(SecurityLogType.permissionDenied, permbean.getCurrentUser(), "User tried to touch another user roles: " + selectedUser);
throw new EJBAccessException("Not enough rights to read user permissions");
}
return roleFacade.findForUser(selectedUser); return roleFacade.findForUser(selectedUser);
} }
...@@ -238,4 +247,10 @@ public class RoleBean implements RoleBeanLocal { ...@@ -238,4 +247,10 @@ public class RoleBean implements RoleBeanLocal {
cardTemplateBean.checkPrintedCard(user); cardTemplateBean.checkPrintedCard(user);
} }
@Override
public List<Role> listUserSelectableRoles() {
return roleFacade.findUserSelectableRoles();
}
} }
...@@ -40,4 +40,6 @@ public interface RoleBeanLocal { ...@@ -40,4 +40,6 @@ public interface RoleBeanLocal {
Role addRole(EventUser eventuser, Role role); Role addRole(EventUser eventuser, Role role);
List<Role> listUserSelectableRoles();
} }
...@@ -225,7 +225,7 @@ public class Role extends GenericEntity { ...@@ -225,7 +225,7 @@ public class Role extends GenericEntity {
return userSelectableRole; return userSelectableRole;
} }
public void setRserSelectableRole(boolean user_selectable_group) { public void setUserSelectableRole(boolean user_selectable_group) {
this.userSelectableRole = user_selectable_group; this.userSelectableRole = user_selectable_group;
} }
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<h:panelGrid columns="2"> <h:panelGrid columns="2">
<h:outputText value="#{i18n['role.name']}" /> <h:outputText value="#{i18n['role.name']}" />
<h:inputText value="#{roleView.role.name}" /> <h:inputText value="#{roleView.role.name}" />
<h:outputText value="* #{i18n['role.userSelectableRole']}" /> <h:outputText value="#{i18n['role.userSelectableRole']}" />
<p:selectBooleanCheckbox value="#{roleView.role.userSelectableRole}" /> <p:selectBooleanCheckbox value="#{roleView.role.userSelectableRole}" />
<h:outputText value="#{i18n['role.parents']}" /> <h:outputText value="#{i18n['role.parents']}" />
......
...@@ -9,14 +9,13 @@ ...@@ -9,14 +9,13 @@
<composite:attribute name="creating" required="false" default="false" /> <composite:attribute name="creating" required="false" default="false" />
<composite:attribute name="commitaction" required="true" method-signature="java.lang.String action()" /> <composite:attribute name="commitaction" required="true" method-signature="java.lang.String action()" />
<composite:attribute name="camAlwaysOn" required="false" default="false" /> <composite:attribute name="camAlwaysOn" required="false" default="false" />
<composite:attribute name="showRoles" required="false" default="false" />
</composite:interface> </composite:interface>
<composite:implementation> <composite:implementation>
<h:outputScript library="primefaces" name="jquery/jquery.js" target="head" /> <h:outputScript library="primefaces" name="jquery/jquery.js" target="head" />
<h:panelGrid columns="3" cellpadding="20" columnClasses="topalign,topalign,topalign">
<h:panelGrid columns="2">
<h:form id="userform" enctype="multipart/form-data"> <h:form id="userform" enctype="multipart/form-data">
<h:panelGroup> <h:panelGroup>
...@@ -152,10 +151,21 @@ ...@@ -152,10 +151,21 @@
</h:panelGroup> </h:panelGroup>
</h:form> </h:form>
<h:form> <h:form>
<h:panelGroup> <h:panelGroup rendered="#{userView.showUserSelectableRoles and cc.attrs.showRoles}">
asdf
<h2>
<h:outputText value="#{i18n['user.userSelectableRoles']}:" />
</h2>
<h:selectManyCheckbox converter="#{roleConverter}" layout="pageDirection" id="roles" value="#{userView.usersRoles}">
<f:selectItems var="roleitem" itemLabel="#{roleitem.name}" value="#{roleDataView.userSelectableRoles}" />
</h:selectManyCheckbox>
<div>
<h:message rendered="#{roleView.canReadRoles}" for="roles" />
</div>
<h:commandButton action="#{userView.saveUserSelectableRoles}" value="#{i18n['user.saveUserSelectableRoles']}" />
</h:panelGroup> </h:panelGroup>
</h:form> </h:form>
......
...@@ -206,3 +206,8 @@ th, td { ...@@ -206,3 +206,8 @@ th, td {
padding-left: 10px; padding-left: 10px;
padding-top: 10px; padding-top: 10px;
} }
.topalign {
vertical-align: top;
padding-left: 20px;
}
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<h1>#{i18n['user.edit.title']}</h1> <h1>#{i18n['user.edit.title']}</h1>
</ui:define> </ui:define>
<ui:define name="content"> <ui:define name="content">
<users:edit commitaction="#{userView.saveUser()}" commitvalue="#{i18n['user.save']}" /> <users:edit commitaction="#{userView.saveUser()}" commitvalue="#{i18n['user.save']}" showRoles="true" />
</ui:define> </ui:define>
</ui:composition> </ui:composition>
</h:body> </h:body>
......
...@@ -328,7 +328,9 @@ topnavi.userlectures = Kurssit ja luennot ...@@ -328,7 +328,9 @@ topnavi.userlectures = Kurssit ja luennot
user.cropImage = Crop user.cropImage = Crop
user.imageUpload.imageNotFound = Select image to upload user.imageUpload.imageNotFound = Select image to upload
user.saveUserSelectableRoles = Tallenna
user.unauthenticated = Kirjautumaton user.unauthenticated = Kirjautumaton
user.userSelectableRoles = Valitse yksi
usercart.downloadCsv = CSV usercart.downloadCsv = CSV
usercart.showoverview = Vie tarkastusn\u00E4kym\u00E4\u00E4n usercart.showoverview = Vie tarkastusn\u00E4kym\u00E4\u00E4n
......
...@@ -1391,6 +1391,7 @@ user.save = Save ...@@ -1391,6 +1391,7 @@ user.save = Save
user.saveFailed = Save failed, Not enough permissions! user.saveFailed = Save failed, Not enough permissions!
user.saveRoles = Save roles user.saveRoles = Save roles
user.saveSuccessfull = Changes saved successfully user.saveSuccessfull = Changes saved successfully
user.saveUserSelectableRoles = Save
user.search = Search user.search = Search
user.searchUser = Search user user.searchUser = Search user
user.sendPicture = Send image user.sendPicture = Send image
...@@ -1405,6 +1406,7 @@ user.superadmin = Superadmin ...@@ -1405,6 +1406,7 @@ user.superadmin = Superadmin
user.thisIsCurrentImage = Current image user.thisIsCurrentImage = Current image
user.town = City user.town = City
user.uploadimage = Send image user.uploadimage = Send image
user.userSelectableRoles = Select one
user.username = Username user.username = Username
user.validate.notUniqueUsername = Username already exists. Please select another. user.validate.notUniqueUsername = Username already exists. Please select another.
user.validateUser.commit = Send user.validateUser.commit = Send
......
...@@ -1372,6 +1372,7 @@ user.roles = Roolit ...@@ -1372,6 +1372,7 @@ user.roles = Roolit
user.rolesave = Tallenna roolit user.rolesave = Tallenna roolit
user.save = Tallenna user.save = Tallenna
user.saveRoles = Tallenna roolit user.saveRoles = Tallenna roolit
user.saveUserSelectableRoles = Tallenna
user.search = Hae user.search = Hae
user.searchUser = Hae k\u00E4ytt\u00E4j\u00E4\u00E4 user.searchUser = Hae k\u00E4ytt\u00E4j\u00E4\u00E4
user.sendPicture = Kuvan l\u00E4hetys user.sendPicture = Kuvan l\u00E4hetys
...@@ -1386,6 +1387,7 @@ user.superadmin = Superadmin ...@@ -1386,6 +1387,7 @@ user.superadmin = Superadmin
user.thisIsCurrentImage = Nykyinen kuva user.thisIsCurrentImage = Nykyinen kuva
user.town = Kaupunki user.town = Kaupunki
user.uploadimage = L\u00E4het\u00E4 kuva user.uploadimage = L\u00E4het\u00E4 kuva
user.userSelectableRoles = Valitse yksi
user.username = K\u00E4ytt\u00E4j\u00E4tunnus user.username = K\u00E4ytt\u00E4j\u00E4tunnus
user.validate.notUniqueUsername = K\u00E4ytt\u00E4j\u00E4tunnus on jo olemassa. Ole hyv\u00E4 ja valitse toinen tunnus user.validate.notUniqueUsername = K\u00E4ytt\u00E4j\u00E4tunnus on jo olemassa. Ole hyv\u00E4 ja valitse toinen tunnus
user.validateUser.commit = L\u00E4het\u00E4 user.validateUser.commit = L\u00E4het\u00E4
......
...@@ -54,4 +54,11 @@ public class RoleDataView extends GenericCDIView { ...@@ -54,4 +54,11 @@ public class RoleDataView extends GenericCDIView {
} }
return roles; return roles;
} }
public ListDataModel<Role> getUserSelectableRoles() {
if (roles == null) {
roles = new ListDataModel<Role>(rolebean.listUserSelectableRoles());
}
return roles;
}
} }
...@@ -161,7 +161,7 @@ public class UserView extends GenericCDIView { ...@@ -161,7 +161,7 @@ public class UserView extends GenericCDIView {
/** /**
* This is the user we are currently editing, if that is not found we user * This is the user we are currently editing, if that is not found we use
* current user * current user
* *
* @return * @return
...@@ -532,4 +532,24 @@ public class UserView extends GenericCDIView { ...@@ -532,4 +532,24 @@ public class UserView extends GenericCDIView {
public void setLayoutview(LayoutView layoutview) { public void setLayoutview(LayoutView layoutview) {
this.layoutview = layoutview; this.layoutview = layoutview;
} }
public String saveUserSelectableRoles()
{
rolebean.saveUserSelectableRoles(user, usersRoles);
usersRoles = null;
return null;
}
public boolean isShowUserSelectableRoles() {
return (rolebean.listUserSelectableRoles().size() >= 1);
}
} }
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!