Commit 608f25f8 by Tuukka Kivilahti

permissions, localization and menus

1 parent a50873a7
......@@ -4,9 +4,9 @@ import java.util.ArrayList;
import java.util.List;
import javax.annotation.security.DeclareRoles;
import javax.annotation.security.RolesAllowed;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.faces.model.ListDataModel;
import fi.codecrew.moya.enums.apps.LecturePermission;
import fi.codecrew.moya.facade.EventUserFacade;
......@@ -47,6 +47,7 @@ public class LectureBean implements LectureBeanLocal {
}
@Override
@RolesAllowed(LecturePermission.S_MANAGE)
public LectureGroup saveLectureGroup(LectureGroup group) {
if (group.getId() == null)
......@@ -64,11 +65,13 @@ public class LectureBean implements LectureBeanLocal {
}
@Override
@RolesAllowed({LecturePermission.S_VIEW, LecturePermission.S_MANAGE})
public LectureGroup findLectureGroup(Integer id) {
return lectureGroupFacade.find(id);
}
@Override
@RolesAllowed(LecturePermission.S_MANAGE)
public Lecture saveLecture(Lecture lecture) {
if (lecture == null || lecture.getLectureGroup() == null) {
......@@ -92,6 +95,7 @@ public class LectureBean implements LectureBeanLocal {
}
@Override
@RolesAllowed({LecturePermission.S_VIEW, LecturePermission.S_MANAGE})
public List<Lecture> findAvailableLectures(LectureGroup group, EventUser user) {
LectureGroup lectureGroup = lectureGroupFacade.reload(group);
......@@ -113,11 +117,13 @@ public class LectureBean implements LectureBeanLocal {
}
@Override
@RolesAllowed({LecturePermission.S_VIEW, LecturePermission.S_MANAGE})
public List<Lecture> getParticipatedLectures(EventUser user) {
return eventUserFacade.reload(user).getLectures();
}
@Override
@RolesAllowed({LecturePermission.S_VIEW, LecturePermission.S_MANAGE})
public Lecture participate(EventUser user, Lecture lecture) {
if(userLectureSelectsLeft(lecture.getLectureGroup(), user) <= 0)
......@@ -135,6 +141,7 @@ public class LectureBean implements LectureBeanLocal {
}
@Override
@RolesAllowed({LecturePermission.S_VIEW, LecturePermission.S_MANAGE})
public Lecture unparticipate(EventUser user, Lecture lecture) {
EventUser targetUser = eventUserFacade.reload(user);
......@@ -149,6 +156,7 @@ public class LectureBean implements LectureBeanLocal {
@Override
@RolesAllowed({LecturePermission.S_VIEW, LecturePermission.S_MANAGE})
public int userLectureSelects(LectureGroup group, EventUser user) {
EventUser updatedUser = eventUserFacade.reload(user);
......@@ -167,6 +175,7 @@ public class LectureBean implements LectureBeanLocal {
@Override
@RolesAllowed({LecturePermission.S_VIEW, LecturePermission.S_MANAGE})
public int userLectureSelectsLeft(LectureGroup group, EventUser user) {
LectureGroup updatedGroup = lectureGroupFacade.reload(group);
......
......@@ -15,6 +15,7 @@ import fi.codecrew.moya.enums.apps.BillPermission;
import fi.codecrew.moya.enums.apps.CompoPermission;
import fi.codecrew.moya.enums.apps.ContentPermission;
import fi.codecrew.moya.enums.apps.EventPermission;
import fi.codecrew.moya.enums.apps.LecturePermission;
import fi.codecrew.moya.enums.apps.LicensePermission;
import fi.codecrew.moya.enums.apps.MapPermission;
import fi.codecrew.moya.enums.apps.NetworkAssociationPermission;
......@@ -156,6 +157,12 @@ public class MenuBean implements MenuBeanLocal {
createuser.addPage(menuitemfacade.findOrCreate("/user/create"), UserPermission.CREATE_NEW).setVisible(false);
;
MenuNavigation userlectures = usermenu.addPage(null, null);
userlectures.setKey("topnavi.userlectures");
userlectures.addPage(menuitemfacade.findOrCreate("/lectures/viewLectures"), LecturePermission.VIEW);
navifacade.create(usermenu);
//
......@@ -284,6 +291,14 @@ public class MenuBean implements MenuBeanLocal {
tournamentsadm.addPage(menuitemfacade.findOrCreate("/tournaments/admin/delete"), TournamentPermission.MANAGE_ALL).setVisible(false);
tournamentsadm.addPage(menuitemfacade.findOrCreate("/tournaments/admin/editrules"), TournamentPermission.MANAGE_ALL).setVisible(false);
MenuNavigation adminlectures = adminmenu.addPage(null, null);
adminlectures.setKey("topnavi.adminlectures");
adminlectures.addPage(menuitemfacade.findOrCreate("/lectureadmin/manageLectureGroups"), LecturePermission.MANAGE);
MenuNavigation infoviews = adminmenu.addPage(null, null);
infoviews.setKey("topnavi.infoviews");
infoviews.addPage(menuitemfacade.findOrCreate("/admin/adduser/index"), TerminalPermission.INFO);
......
......@@ -4,7 +4,7 @@
<ui:composition template="#{sessionHandler.template}">
<f:metadata>
<f:viewParam name="lecturegroupid" value="#{lectureView.lectureGroupId}" />
<f:event type="preRenderView" listener="#{lectureGroupView.initView()}" />
<f:event type="preRenderView" listener="#{lectureView.initView()}" />
</f:metadata>
<ui:define name="title">
......
......@@ -4,7 +4,7 @@
<ui:composition template="#{sessionHandler.template}">
<f:metadata>
<f:viewParam name="lecturegroupid" value="#{lectureView.lectureGroupId}" />
<f:event type="preRenderView" listener="#{lectureGroupView.initView()}" />
<f:event type="preRenderView" listener="#{lectureUserView.initView()}" />
</f:metadata>
<ui:define name="title">
......
......@@ -227,6 +227,7 @@ lectureGroup.createNew = Luo uusi
lectureGroup.description = Kuvaus
lectureGroup.manageLectures = Hallitse luentoja
lectureGroup.name = Nimi
lectureGroup.saveLectureGroup = Muokkaa kurssikokonaisuutta
lectureGroup.selectCount = Montako kurssia saa valita
lectureGroup.selectCountUserInfo = Yhden osallistujan kiinti\u00F6
lectureGroup.view = Tarkastele
......@@ -303,6 +304,7 @@ resetmailSent.header = Email sent
save = Tallenna
submenu.NotImplementedYet = Not implemented
submenu.admin.adduser = K\u00E4ytt\u00E4j\u00E4nlis\u00E4ys
submenu.admin.adduser.index = K\u00E4ytt\u00E4j\u00E4nlis\u00E4ys
......@@ -313,6 +315,10 @@ submenu.info.index = Infon\u00E4kym\u00E4
submenu.info.shop = Kauppa
submenu.info.index = Infon\u00E4kym\u00E4
= Infon\u00E4kym\u00E4
submenu.lectureadmin.manageLectureGroups = Hallinnoi
submenu.lectures.viewLectures = Ilmoittaudu
subnavi.cards = \u0009\u0009
......@@ -322,7 +328,13 @@ subnavi.info = Info
success = Onnistui
topnavi.adminlectures = Kurssit ja luennot
topnavi.license = Lisenssikoodit
topnavi.userlectures = Kurssit ja luennot
user.cropImage = Crop
user.imageUpload.imageNotFound = Select image to upload
......
......@@ -578,6 +578,7 @@ lectureGroup.createNew = Create new
lectureGroup.description = Description
lectureGroup.manageLectures = Manage lectures
lectureGroup.name = Name
lectureGroup.saveLectureGroup = Edit lecturegroup
lectureGroup.selectCount = Max lecture select count
lectureGroup.selectCountUserInfo = Quota for one participant
lectureGroup.view = View
......@@ -1057,6 +1058,7 @@ sitepage.save = Save
sitepagelist.header = Site pages
submenu.NotImplementedYet = Not implemented
submenu.actionlog.messagelist = ActionLog
submenu.actionlog.taskview = View tasks
......@@ -1148,6 +1150,11 @@ submenu.voting.create = Create new compo
submenu.voting.myEntries = My entries
submenu.voting.submitEntry = Submit entry
submenu.lectureadmin.manageLectureGroups = Management
submenu.lectures.viewLectures = Participate
subnavi.billing = Billing
subnavi.cards = Cards
subnavi.info = Info
......@@ -1176,6 +1183,7 @@ topmenu.helpdesk = Helpdesk
topmenu.user = User View
topnavi.adminassoc = Net Associations
topnavi.adminlectures = Lectures and courses
topnavi.adminshop = Adminshop
topnavi.billing = Billing
topnavi.competitions = Competitions
......@@ -1199,6 +1207,7 @@ topnavi.shop = Shop
topnavi.user = My properties
topnavi.userevent = Event
topnavi.userinit = User auth
topnavi.userlectures = Lectures and courses
topnavi.usermgmt = Users
topnavi.userplaces = Computer Places
topnavi.usershop = Shop
......
......@@ -589,6 +589,7 @@ lectureGroup.createNew = Luo uusi
lectureGroup.description = Kuvaus
lectureGroup.manageLectures = Hallitse luentoja
lectureGroup.name = Nimi
lectureGroup.saveLectureGroup = Muokkaa kurssikokonaisuutta
lectureGroup.selectCount = Monellekko saa osallistua
lectureGroup.selectCountUserInfo = Yhden henkil\u00F6n kiinti\u00F6
lectureGroup.view = Tarkastele kursseja
......@@ -1040,6 +1041,7 @@ sitepage.save = Tallenna
sitepagelist.header = Sivuston sis\u00E4ll\u00F6t
submenu.NotImplementedYet = Toteuttamatta
submenu.actionlog.messagelist = ActionLog
submenu.actionlog.taskview = N\u00E4yt\u00E4 toiminnat
......@@ -1134,6 +1136,11 @@ submenu.voting.create = Uusi kilpailu
submenu.voting.myEntries = Omat entryt
submenu.voting.submitEntry = L\u00E4het\u00E4 entry
submenu.lectureadmin.manageLectureGroups = Hallinnoi
submenu.lectures.viewLectures = Ilmoittaudu
subnavi.billing = Laskutus
subnavi.cards = Kortit
subnavi.info = Info
......@@ -1162,6 +1169,7 @@ topmenu.helpdesk = Helpdesk
topmenu.user = K\u00E4ytt\u00E4j\u00E4n\u00E4kym\u00E4
topnavi.adminassoc = Verkkoassosioinnit
topnavi.adminlectures = Kurssit ja luennot
topnavi.adminshop = Kauppa
topnavi.billing = Laskutus
topnavi.competitions = Kilpailut
......@@ -1185,6 +1193,7 @@ topnavi.shop = Kauppa
topnavi.user = Omat tiedot
topnavi.userevent = Tapahtuma
topnavi.userinit = K\u00E4ytt\u00E4j\u00E4n tunnistus
topnavi.userlectures = Kurssit ja luennot
topnavi.usermgmt = K\u00E4ytt\u00E4j\u00E4t
topnavi.userplaces = Konepaikat
topnavi.usershop = Kauppa
......
......@@ -9,6 +9,8 @@ import javax.inject.Named;
import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.beans.LectureBeanLocal;
import fi.codecrew.moya.enums.apps.LecturePermission;
import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.model.LectureGroup;
import fi.codecrew.moya.utilities.I18n;
import fi.codecrew.moya.web.cdiview.GenericCDIView;
......@@ -25,46 +27,42 @@ public class LectureGroupView extends GenericCDIView {
@EJB
EventBeanLocal eventBean;
private LectureGroup currentLectureGroup;
private boolean creatingLectureGroup = true;
private ListDataModel<LectureGroup> lectureGroupModel = null;
public void initView() {
if (super.requirePermissions(LecturePermission.MANAGE)) {
super.beginConversation();
}
}
public void saveLectureGroup() {
FacesContext context = FacesContext.getCurrentInstance();
if(currentLectureGroup == null) {
if (currentLectureGroup == null) {
// this should never happen, so no internatiolazion here.
context.addMessage(null, new FacesMessage(I18n.get("error"), "There was some internal error when saving lecture group, basicly there was no lecturegroup to save.") );
return ;
context.addMessage(null, new FacesMessage(I18n.get("error"), "There was some internal error when saving lecture group, basicly there was no lecturegroup to save."));
return;
}
currentLectureGroup = lectureBean.saveLectureGroup(currentLectureGroup);
if(creatingLectureGroup)
context.addMessage(null, new FacesMessage(I18n.get("success"), I18n.get("lecturegroup.create.success")) );
if (creatingLectureGroup)
context.addMessage(null, new FacesMessage(I18n.get("success"), I18n.get("lecturegroup.create.success")));
else
context.addMessage(null, new FacesMessage(I18n.get("success"), I18n.get("lecturegroup.save.success")) );
context.addMessage(null, new FacesMessage(I18n.get("success"), I18n.get("lecturegroup.save.success")));
this.creatingLectureGroup = false;
lectureGroupModel = null;
}
public void editCurrent() {
if(lectureGroupModel != null && lectureGroupModel.isRowAvailable()) {
if (lectureGroupModel != null && lectureGroupModel.isRowAvailable()) {
this.creatingLectureGroup = false;
currentLectureGroup = lectureGroupModel.getRowData();
}
......@@ -75,14 +73,14 @@ public class LectureGroupView extends GenericCDIView {
setCreatingLectureGroup(true);
}
public ListDataModel<LectureGroup> getLectureGroups() {
if(lectureGroupModel == null) {
if (lectureGroupModel == null) {
lectureGroupModel = new ListDataModel<LectureGroup>(lectureBean.getLectureGroups());
}
return lectureGroupModel;
}
public boolean isCreatingLectureGroup() {
return creatingLectureGroup;
}
......@@ -91,11 +89,9 @@ public class LectureGroupView extends GenericCDIView {
this.creatingLectureGroup = creatingLectureGroup;
}
public LectureGroup getCurrentLectureGroup() {
if(currentLectureGroup == null) {
if (currentLectureGroup == null) {
currentLectureGroup = new LectureGroup(eventBean.getCurrentEvent());
}
......@@ -108,14 +104,12 @@ public class LectureGroupView extends GenericCDIView {
this.creatingLectureGroup = false;
}
public String getEditPanelTitle() {
if(isCreatingLectureGroup()) {
if (isCreatingLectureGroup()) {
return I18n.get("lectureGroup.createLectureGroup");
} else {
return I18n.get("lectureGroup.saveLectureGroup");
}
}
}
......@@ -10,6 +10,7 @@ import javax.inject.Named;
import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.beans.LectureBeanLocal;
import fi.codecrew.moya.enums.apps.LecturePermission;
import fi.codecrew.moya.model.Lecture;
import fi.codecrew.moya.model.LectureGroup;
import fi.codecrew.moya.web.cdiview.GenericCDIView;
......@@ -36,6 +37,13 @@ public class LectureUserView extends GenericCDIView {
LectureGroup currentLectureGroup;
public void initView() {
if (super.requirePermissions(LecturePermission.VIEW)) {
super.beginConversation();
}
}
public ListDataModel<LectureGroup> getLectureGroups() {
lectureGroups = new ListDataModel<LectureGroup>(lectureBean.getLectureGroups());
......
......@@ -9,6 +9,7 @@ import javax.inject.Named;
import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.beans.LectureBeanLocal;
import fi.codecrew.moya.enums.apps.LecturePermission;
import fi.codecrew.moya.model.Lecture;
import fi.codecrew.moya.model.LectureGroup;
import fi.codecrew.moya.utilities.I18n;
......@@ -26,7 +27,6 @@ public class LectureView extends GenericCDIView {
@EJB
EventBeanLocal eventBean;
private LectureGroup currentLectureGroup;
private Lecture currentLecture;
......@@ -38,36 +38,34 @@ public class LectureView extends GenericCDIView {
private Integer lecturegroupId = null;
public void initView() {
if (super.requirePermissions(LecturePermission.MANAGE)) {
super.beginConversation();
}
}
public void saveLecture() {
FacesContext context = FacesContext.getCurrentInstance();
if(currentLecture == null) {
if (currentLecture == null) {
// this should never happen, so no internatiolazion here.
context.addMessage(null, new FacesMessage(I18n.get("error"), "There was some internal error when saving lecture group, basicly there was no lecturegroup to save.") );
return ;
context.addMessage(null, new FacesMessage(I18n.get("error"), "There was some internal error when saving lecture group, basicly there was no lecturegroup to save."));
return;
}
currentLecture = lectureBean.saveLecture(currentLecture);
currentLectureGroup = currentLecture.getLectureGroup();
if(creatingLecture)
context.addMessage(null, new FacesMessage(I18n.get("success"), I18n.get("lecturegroup.create.success")) );
if (creatingLecture)
context.addMessage(null, new FacesMessage(I18n.get("success"), I18n.get("lecturegroup.create.success")));
else
context.addMessage(null, new FacesMessage(I18n.get("success"), I18n.get("lecturegroup.save.success")) );
context.addMessage(null, new FacesMessage(I18n.get("success"), I18n.get("lecturegroup.save.success")));
this.creatingLecture = false;
lectures = null;
if(isMulticreate()) {
if (isMulticreate()) {
currentLecture = (Lecture) currentLecture.clone();
currentLecture.setName("");
......@@ -79,7 +77,7 @@ public class LectureView extends GenericCDIView {
}
public void editCurrent() {
if(lectures != null && lectures.isRowAvailable()) {
if (lectures != null && lectures.isRowAvailable()) {
this.creatingLecture = false;
currentLecture = lectures.getRowData();
}
......@@ -90,9 +88,6 @@ public class LectureView extends GenericCDIView {
currentLecture = null;
}
public Integer getLectureGroupId() {
return lecturegroupId;
......@@ -104,74 +99,58 @@ public class LectureView extends GenericCDIView {
}
public ListDataModel<Lecture> getLectures() {
if(lectures == null && getCurrentLectureGroup() != null) {
if (lectures == null && getCurrentLectureGroup() != null) {
lectures = new ListDataModel<Lecture>(getCurrentLectureGroup().getLectures());
}
return lectures;
}
public void setLectures(ListDataModel<Lecture> lectures) {
this.lectures = lectures;
}
public boolean isMulticreate() {
return multicreate;
}
public void setMulticreate(boolean multicreate) {
this.multicreate = multicreate;
}
public Lecture getCurrentLecture() {
if(currentLecture == null) {
if (currentLecture == null) {
currentLecture = new Lecture(getCurrentLectureGroup());
}
return currentLecture;
}
public void setCurrentLecture(Lecture currentLecture) {
this.currentLecture = currentLecture;
}
public LectureGroup getCurrentLectureGroup() {
if(currentLectureGroup == null) {
if (currentLectureGroup == null) {
currentLectureGroup = lectureBean.findLectureGroup(lecturegroupId);
}
return currentLectureGroup;
}
public String getEditPanelTitle() {
if(isCreatingLecture()) {
if (isCreatingLecture()) {
return I18n.get("lecture.createLecture");
} else {
return I18n.get("lecture.saveLecture");
}
}
public boolean isCreatingLecture() {
return creatingLecture;
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!