Commit f45cf0d0 by Tuomas Riihimäki

Beanien jaottelua fiksummin, metodien pilkkomista, jne

1 parent 75972bd0
......@@ -9,7 +9,6 @@ package fi.insomnia.bortal.beans {
import fi.insomnia.bortal.facade.EventFacade;
import fi.insomnia.bortal.facade.EventOrganiserFacade;
import fi.insomnia.bortal.facade.UserFacade;
import flash.utils.IDataInput;
import flash.utils.IDataOutput;
import flash.utils.IExternalizable;
......@@ -22,14 +21,14 @@ package fi.insomnia.bortal.beans {
private var _eventFacade:EventFacade;
private var _eventOrganiserFacade:EventOrganiserFacade;
private var _eventStatusBean:EventStatusBeanLocal;
private var _userFacade:UserFacade;
private var _userBean:UserBeanLocal;
public function readExternal(input:IDataInput):void {
_em = input.readObject() as EntityManager;
_eventFacade = input.readObject() as EventFacade;
_eventOrganiserFacade = input.readObject() as EventOrganiserFacade;
_eventStatusBean = input.readObject() as EventStatusBeanLocal;
_userFacade = input.readObject() as UserFacade;
_userBean = input.readObject() as UserBeanLocal;
}
public function writeExternal(output:IDataOutput):void {
......@@ -37,7 +36,7 @@ package fi.insomnia.bortal.beans {
output.writeObject(_eventFacade);
output.writeObject(_eventOrganiserFacade);
output.writeObject(_eventStatusBean);
output.writeObject(_userFacade);
output.writeObject(_userBean);
}
}
}
\ No newline at end of file
......@@ -7,7 +7,6 @@
package fi.insomnia.bortal.beans {
import fi.insomnia.bortal.facade.AccessRightFacade;
import fi.insomnia.bortal.facade.RoleFacade;
import fi.insomnia.bortal.facade.RoleRightFacade;
import flash.utils.IDataInput;
......@@ -17,21 +16,21 @@ package fi.insomnia.bortal.beans {
[Bindable]
public class RoleBeanBase implements IExternalizable {
private var _accessrightFacade:AccessRightFacade;
private var _arf:AccessRightFacade;
private var _accessRightBean:AccessRightBean;
private var _eventBean:EventBean;
private var _roleFacade:RoleFacade;
private var _rrfacade:RoleRightFacade;
public function readExternal(input:IDataInput):void {
_accessrightFacade = input.readObject() as AccessRightFacade;
_arf = input.readObject() as AccessRightFacade;
_accessRightBean = input.readObject() as AccessRightBean;
_eventBean = input.readObject() as EventBean;
_roleFacade = input.readObject() as RoleFacade;
_rrfacade = input.readObject() as RoleRightFacade;
}
public function writeExternal(output:IDataOutput):void {
output.writeObject(_accessrightFacade);
output.writeObject(_arf);
output.writeObject(_accessRightBean);
output.writeObject(_eventBean);
output.writeObject(_roleFacade);
output.writeObject(_rrfacade);
}
......
......@@ -7,7 +7,6 @@
package fi.insomnia.bortal.beans {
import fi.insomnia.bortal.facade.RoleFacade;
import fi.insomnia.bortal.facade.UserFacade;
import flash.utils.IDataInput;
import flash.utils.IDataOutput;
......@@ -20,7 +19,7 @@ package fi.insomnia.bortal.beans {
private var _accessRightBeanLocal:AccessRightBeanLocal;
private var _context:SessionContext;
private var _eventBean:EventBeanLocal;
private var _roleFacade:RoleFacade;
private var _rolebean:RoleBean;
private var _secubean:SecurityBeanLocal;
private var _userFacade:UserFacade;
......@@ -28,7 +27,7 @@ package fi.insomnia.bortal.beans {
_accessRightBeanLocal = input.readObject() as AccessRightBeanLocal;
_context = input.readObject() as SessionContext;
_eventBean = input.readObject() as EventBeanLocal;
_roleFacade = input.readObject() as RoleFacade;
_rolebean = input.readObject() as RoleBean;
_secubean = input.readObject() as SecurityBeanLocal;
_userFacade = input.readObject() as UserFacade;
}
......@@ -37,7 +36,7 @@ package fi.insomnia.bortal.beans {
output.writeObject(_accessRightBeanLocal);
output.writeObject(_context);
output.writeObject(_eventBean);
output.writeObject(_roleFacade);
output.writeObject(_rolebean);
output.writeObject(_secubean);
output.writeObject(_userFacade);
}
......
......@@ -5,6 +5,8 @@
package fi.insomnia.bortal.beans;
import java.util.List;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.facade.AccessRightFacade;
import fi.insomnia.bortal.model.AccessRight;
......@@ -39,4 +41,8 @@ public class AccessRightBean implements AccessRightBeanLocal {
return right;
}
public List<AccessRight> findAll() {
return accessRightFacade.findAll();
}
}
......@@ -32,7 +32,7 @@ public class EventBean implements EventBeanLocal {
private EventOrganiserFacade eventOrganiserFacade;
@EJB
private UserFacade userFacade;
private UserBeanLocal userBean;
@EJB
private EventStatusBeanLocal eventStatusBean;
......@@ -72,7 +72,8 @@ public class EventBean implements EventBeanLocal {
if (settings == null) {
settings = new EventOrganiser();
settings.setOrganisation(DEFAULT_ORGANISATION_NAME);
User defaultUser = userFacade.getOrCreateDefaultUser();
User defaultUser = userBean.getAnonUser();
settings.setAdmin(defaultUser);
eventOrganiserFacade.create(settings);
}
......
......@@ -15,11 +15,11 @@ import javax.ejb.Stateless;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.facade.AccessRightFacade;
import fi.insomnia.bortal.enums.BeanRole;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.facade.RoleFacade;
import fi.insomnia.bortal.facade.RoleRightFacade;
import fi.insomnia.bortal.model.AccessRight;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.RoleRight;
......@@ -30,14 +30,17 @@ import fi.insomnia.bortal.model.RoleRight;
@Stateless
public class RoleBean implements RoleBeanLocal {
private static final String PUBLIC_ROLE_NAME = BeanRole.ANONYMOUS.toString();
@EJB
private EventBean eventBean;
@EJB
private RoleFacade roleFacade;
@EJB
private AccessRightFacade arf;
@EJB
private RoleRightFacade rrfacade;
@EJB
private AccessRightFacade accessrightFacade;
private AccessRightBean accessRightBean;
private static final Logger logger = LoggerFactory.getLogger(RoleBean.class);
public List<Role> listRoles() {
......@@ -89,22 +92,12 @@ public class RoleBean implements RoleBeanLocal {
return returnList;
}
public List<RoleRight> getEventRoleRights(LanEvent e, Role r) {
List<AccessRight> rights = arf.findAll();
public List<RoleRight> getRoleRights(Role r) {
List<AccessRight> rights = accessRightBean.findAll();
List<RoleRight> ret = new ArrayList<RoleRight>();
for(AccessRight ar : rights)
{
RoleRight roleright = rrfacade.find(e, ar, r);
if(roleright == null)
{
roleright = new RoleRight(e);
roleright.setAccessRight(ar);
roleright.setRole(r);
rrfacade.create(roleright);
}
ret.add(roleright);
for (AccessRight ar : rights) {
ret.add(findRoleRight(r, ar));
}
return ret;
}
......@@ -114,6 +107,32 @@ public class RoleBean implements RoleBeanLocal {
return rrfacade.merge(row);
}
// Add business logic below. (Right-click in editor and choose
// "Insert Code > Add Business Method")
public Role getOrCreatePublicRole() {
Role ret = roleFacade.findByName(PUBLIC_ROLE_NAME);
if (ret == null) {
ret = new Role(eventBean.getCurrentEvent());
roleFacade.create(ret);
RoleRight rr = findRoleRight(ret, Permission.LOGIN);
rr.setRead(true);
}
return ret;
}
public RoleRight findRoleRight(Role role, Permission perm) {
AccessRight acr = accessRightBean.findOrCreate(perm);
return findRoleRight(role, acr);
}
public RoleRight findRoleRight(Role role, AccessRight acr) {
RoleRight rr = rrfacade.find(eventBean.getCurrentEvent(), acr, role);
if (rr == null) {
rr = new RoleRight(eventBean.getCurrentEvent(), role, acr, false, false, false);
rrfacade.create(rr);
}
return rr;
}
}
......@@ -34,6 +34,8 @@ import fi.insomnia.bortal.model.User;
public class UserBean implements UserBeanLocal {
private static final Logger logger = LoggerFactory.getLogger(UserBean.class);
public static final String DEFAULT_USER_LOGIN = "ANONYMOUS";
/**
* Java EE container injektoi tämän luokkamuuttujan luokan luonnin
* yhteydessä.
......@@ -44,7 +46,7 @@ public class UserBean implements UserBeanLocal {
private SessionContext context;
@EJB
private RoleFacade roleFacade;
private RoleBean rolebean;
@EJB
private AccessRightBeanLocal accessRightBeanLocal;
......@@ -99,13 +101,17 @@ public class UserBean implements UserBeanLocal {
return (context.getCallerPrincipal() == null || user == null) ? false : context.getCallerPrincipal().getName().equals(user.getNick());
}
public boolean isLoggedIn()
{
return !isCurrentUser(getAnonUser());
}
@Override
public User getCurrentUser() {
Principal principal = context.getCallerPrincipal();
User ret = userFacade.findByLogin(principal.getName());
if (ret == null) {
ret = getDefaultUser();
ret = getAnonUser();
}
return ret;
}
......@@ -114,12 +120,16 @@ public class UserBean implements UserBeanLocal {
* Makes sure default user and public role exist and the user is member of
* the role.
*/
public User getDefaultUser() {
Role publicRole = roleFacade.getOrCreatePublicRole(eventBean.getCurrentEvent());
User defaultUser = userFacade.getOrCreateDefaultUser();
if (!defaultUser.getRoles().contains(publicRole)) {
public User getAnonUser() {
User defaultUser = userFacade.findByLogin(DEFAULT_USER_LOGIN);
if (defaultUser == null) {
defaultUser = new User();
defaultUser.setLogin(DEFAULT_USER_LOGIN);
userFacade.create(defaultUser);
ArrayList<Role> userRoles = new ArrayList<Role>();
userRoles.add(publicRole);
userRoles.add(rolebean.getOrCreatePublicRole());
defaultUser.setRoles(userRoles);
}
return defaultUser;
......@@ -131,8 +141,6 @@ public class UserBean implements UserBeanLocal {
return false;
}
// TODO: FIX THIS!! really bad idea....
AccessRight expectedRight = accessRightBeanLocal.findOrCreate(target);
User dbusr = userFacade.find(user.getId());
......@@ -144,6 +152,8 @@ public class UserBean implements UserBeanLocal {
}
}
}
// TODO: FIX THIS!! really bad idea....
if (user.isSuperadmin()) {
logger.debug("Returning true for superadmin for {} perm {}", target.name(), permission);
return true;
......
......@@ -6,15 +6,13 @@ import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;
import fi.insomnia.bortal.enums.BeanRole;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.Role;
@Stateless
@LocalBean
public class RoleFacade extends EventChildGenericFacade<Role> {
private static final String PUBLIC_ROLE_NAME = BeanRole.ANONYMOUS.toString();
@PersistenceContext
private EntityManager em;
......@@ -32,20 +30,5 @@ public class RoleFacade extends EventChildGenericFacade<Role> {
return this.getSingleNullableResult(q);
}
public Role getOrCreatePublicRole(LanEvent event) {
Role publicRole = findByName(PUBLIC_ROLE_NAME);
if (publicRole == null) {
publicRole = createPublicRole(event);
}
return publicRole;
}
private Role createPublicRole(LanEvent event) {
Role publicRole = new Role(event);
publicRole.setName(PUBLIC_ROLE_NAME);
em.persist(publicRole);
return publicRole;
}
}
......@@ -10,9 +10,7 @@ import fi.insomnia.bortal.model.User;
@Stateless
@LocalBean
public class UserFacade extends GenericFacade<Integer, User>{
public static final String DEFAULT_USER_LOGIN = "ANONYMOUS";
public class UserFacade extends GenericFacade<Integer, User> {
@PersistenceContext
private EntityManager em;
......@@ -26,32 +24,9 @@ public class UserFacade extends GenericFacade<Integer, User>{
}
public User findByLogin(String login) {
// TODO: Bug in glassfish.... change when fixed...
TypedQuery<User> q = em.createNamedQuery("User.findByLogin",
User.class);
q.setParameter("login", login);
return getSingleNullableResult(q);
// TypedQuery<User> q = em.createQuery("SELECT u FROM User u WHERE u.login = :login", User.class);
// q.setParameter("login", login);
// return getSingleNullableResult(q);
}
public User getOrCreateDefaultUser() {
User defaultUser = findByLogin(DEFAULT_USER_LOGIN);
// Create if doesn't exist yet
if (defaultUser == null)
defaultUser = createDefaultUser();
return defaultUser;
}
private User createDefaultUser() {
User user = new User();
user.setLogin(DEFAULT_USER_LOGIN);
em.persist(user);
return user;
TypedQuery<User> q = em.createNamedQuery("User.findByLogin", User.class);
q.setParameter("login", login);
return getSingleNullableResult(q);
}
}
......@@ -9,8 +9,6 @@ import java.util.List;
import javax.ejb.Local;
import fi.insomnia.bortal.model.AccessRight;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.RoleRight;
......@@ -29,7 +27,7 @@ public interface RoleBeanLocal {
public List<Role> getPossibleParents(Role role);
public List<RoleRight> getEventRoleRights(LanEvent e, Role r);
public List<RoleRight> getRoleRights(Role r);
public RoleRight mergeChanges(RoleRight row);
......
......@@ -23,7 +23,7 @@ public interface UserBeanLocal {
User getCurrentUser();
User getDefaultUser();
User getAnonUser();
boolean hasPermission(Permission target, User user, RolePermission permission);
......@@ -31,6 +31,8 @@ public interface UserBeanLocal {
boolean hasCurrentUserPermission(Permission userManagement, RolePermission execute);
boolean isLoggedIn();
......
......@@ -30,8 +30,6 @@
<div id="cwrap">
<!-- <ui:include src="/insomnia1/#{i18n[concat['#thispage,.pagegroup'] ] }.xhtml" />
-->
#{thispage}
COnc: #{i18n[util.concat(thispage,'.pagegroup')] }
<h:messages globalOnly="true" />
<h:messages />
<ui:insert name="content" />
......
......@@ -37,6 +37,10 @@ body {
margin: 15px 30px 5px 30px;
color: #FFFFFF;
}
#headerbox:a {
text-decoration: none;
}
.linka {
background-image:url('img/linka2.gif');
width: 117px;
......
......@@ -17,9 +17,9 @@
<composite:implementation>
<tools:canRead target="LOGIN">
<f:facet name="errorMessage">
<login:login isOneliner="true" />
</f:facet>
<login:logout />
</f:facet>
<login:login isOneliner="true" />
</tools:canRead>
</composite:implementation>
......
......@@ -33,7 +33,7 @@
<h:outputText value="#{role.name}" />
</h:column>
<h:column rendered="#{sessionHandler.canWrite('ROLE_MANAGEMENT') }">
<h:commandButton action="#{roleView.edit()}" value="#{i18n['role.edit']}"" />
<h:commandButton action="#{roleView.edit()}" value="#{i18n['role.edit']}" />
</h:column>
</h:dataTable>
</tools:canRead>
......
......@@ -110,6 +110,7 @@ public class SessionHandler {
private boolean impersonating = false;
public void impersonateUser(User user) {
if (user == null) {
this.thisuser = getUser();
......
......@@ -58,7 +58,7 @@ public class RoleView {
public DataModel<RoleRight> getRoleRights() {
if (rolerights == null) {
logger.info("Fetching new rolerights from database");
rolerights = new ListDataModel<RoleRight>(roleBean.getEventRoleRights(eventbean.getCurrentEvent(), role));
rolerights = new ListDataModel<RoleRight>(roleBean.getRoleRights(role));
}
return rolerights;
}
......
global.copyright=Insomnia Ry, Stream Ry
global.productname=Omnia
navi.auth.login=frontpage
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!