Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Codecrew
/
Moya
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
30
Merge Requests
2
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 68e3194c
authored
May 08, 2010
by
Tuukka Kivilahti
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
accessrights fixed, new nice enum
1 parent
eb293e5e
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
171 additions
and
48 deletions
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/AccessRightBean.java
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/EventStatusBean.java
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/SessionHandlerBean.java
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/facade/AccessRightFacade.java
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/facade/EventStatusFacade.java
code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/beans/AccessRightBeanLocal.java
code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/beans/SessionHandlerBeanLocal.java
code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/beans/EventStatusEnum.java → code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/enums/EventStatusEnum.java
code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/enums/Permission.java
code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/beans/RolePermission.java → code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/enums/RolePermission.java
code/LanBortalBeansClient/nbproject/project.properties
code/LanBortalWeb/WebContent/resources/tools/canRead.xhtml
code/LanBortalWeb/WebContent/resources/tools/login/login.xhtml
code/LanBortalWeb/WebContent/resources/tools/loginLogout.xhtml
code/LanBortalWeb/src/fi/insomnia/bortal/handler/SessionHandler.java
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/AccessRightBean.java
0 → 100644
View file @
68e3194
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package
fi
.
insomnia
.
bortal
.
beans
;
import
fi.insomnia.bortal.enums.Permission
;
import
fi.insomnia.bortal.facade.AccessRightFacade
;
import
fi.insomnia.bortal.model.AccessRight
;
import
javax.ejb.EJB
;
import
javax.ejb.Stateless
;
/**
*
* @author tuukka
*/
@Stateless
public
class
AccessRightBean
implements
AccessRightBeanLocal
{
@EJB
private
AccessRightFacade
accessRightFacade
;
public
AccessRight
findOrCreate
(
Permission
permission
)
{
AccessRight
right
=
accessRightFacade
.
findByPermission
(
permission
);
if
(
right
==
null
)
{
right
=
new
AccessRight
();
right
.
setName
(
permission
.
name
());
right
.
setDescription
(
permission
.
getDescription
());
accessRightFacade
.
create
(
right
);
}
return
right
;
}
}
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/EventStatusBean.java
View file @
68e3194
...
@@ -4,6 +4,7 @@
...
@@ -4,6 +4,7 @@
*/
*/
package
fi
.
insomnia
.
bortal
.
beans
;
package
fi
.
insomnia
.
bortal
.
beans
;
import
fi.insomnia.bortal.enums.EventStatusEnum
;
import
fi.insomnia.bortal.facade.EventStatusFacade
;
import
fi.insomnia.bortal.facade.EventStatusFacade
;
import
fi.insomnia.bortal.model.EventStatus
;
import
fi.insomnia.bortal.model.EventStatus
;
import
javax.ejb.EJB
;
import
javax.ejb.EJB
;
...
...
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/SessionHandlerBean.java
View file @
68e3194
package
fi
.
insomnia
.
bortal
.
beans
;
package
fi
.
insomnia
.
bortal
.
beans
;
import
fi.insomnia.bortal.enums.Permission
;
import
fi.insomnia.bortal.enums.RolePermission
;
import
java.security.Principal
;
import
java.security.Principal
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Enumeration
;
import
java.util.Enumeration
;
...
@@ -16,7 +18,6 @@ import javax.ejb.Stateless;
...
@@ -16,7 +18,6 @@ import javax.ejb.Stateless;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
fi.insomnia.bortal.facade.AccessRightFacade
;
import
fi.insomnia.bortal.facade.RoleFacade
;
import
fi.insomnia.bortal.facade.RoleFacade
;
import
fi.insomnia.bortal.facade.UserFacade
;
import
fi.insomnia.bortal.facade.UserFacade
;
import
fi.insomnia.bortal.model.AccessRight
;
import
fi.insomnia.bortal.model.AccessRight
;
...
@@ -36,7 +37,7 @@ public class SessionHandlerBean implements SessionHandlerBeanLocal, SessionHandl
...
@@ -36,7 +37,7 @@ public class SessionHandlerBean implements SessionHandlerBeanLocal, SessionHandl
@EJB
@EJB
private
UserFacade
userfacade
;
private
UserFacade
userfacade
;
@EJB
@EJB
private
AccessRight
Facade
accessRightFacade
;
private
AccessRight
BeanLocal
accessRightBeanLocal
;
@EJB
@EJB
private
RoleFacade
roleFacade
;
private
RoleFacade
roleFacade
;
@Resource
@Resource
...
@@ -52,13 +53,13 @@ public class SessionHandlerBean implements SessionHandlerBeanLocal, SessionHandl
...
@@ -52,13 +53,13 @@ public class SessionHandlerBean implements SessionHandlerBeanLocal, SessionHandl
// TODO Auto-generated constructor stub
// TODO Auto-generated constructor stub
}
}
@Override
public
boolean
hasPermission
(
String
target
,
User
user
,
RolePermission
permission
)
{
public
boolean
hasPermission
(
Permission
target
,
User
user
,
RolePermission
permission
)
{
if
(
user
==
null
)
{
if
(
user
==
null
)
{
return
false
;
return
false
;
}
}
AccessRight
expectedRight
=
accessRight
Facade
.
findOrCreateByNam
e
(
target
);
AccessRight
expectedRight
=
accessRight
BeanLocal
.
findOrCreat
e
(
target
);
User
dbusr
=
userfacade
.
find
(
user
.
getId
());
User
dbusr
=
userfacade
.
find
(
user
.
getId
());
if
(
dbusr
!=
null
)
{
if
(
dbusr
!=
null
)
{
...
...
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/facade/AccessRightFacade.java
View file @
68e3194
package
fi
.
insomnia
.
bortal
.
facade
;
package
fi
.
insomnia
.
bortal
.
facade
;
import
fi.insomnia.bortal.enums.Permission
;
import
javax.ejb.LocalBean
;
import
javax.ejb.LocalBean
;
import
javax.ejb.Stateless
;
import
javax.ejb.Stateless
;
import
javax.persistence.EntityManager
;
import
javax.persistence.EntityManager
;
...
@@ -22,7 +23,7 @@ public class AccessRightFacade extends IntegerPkGenericFacade<AccessRight> {
...
@@ -22,7 +23,7 @@ public class AccessRightFacade extends IntegerPkGenericFacade<AccessRight> {
protected
EntityManager
getEm
()
{
protected
EntityManager
getEm
()
{
return
em
;
return
em
;
}
}
/*
public AccessRight findOrCreateByName(String target) {
public AccessRight findOrCreateByName(String target) {
// Fetch access right by name
// Fetch access right by name
...
@@ -40,4 +41,16 @@ public class AccessRightFacade extends IntegerPkGenericFacade<AccessRight> {
...
@@ -40,4 +41,16 @@ public class AccessRightFacade extends IntegerPkGenericFacade<AccessRight> {
return right;
return right;
}
}
*/
public
AccessRight
findByPermission
(
Permission
target
)
{
// Fetch access right by name
TypedQuery
<
AccessRight
>
q
=
em
.
createQuery
(
"SELECT a FROM AccessRight a WHERE a.name = :name"
,
AccessRight
.
class
);
q
.
setParameter
(
"name"
,
target
.
name
());
AccessRight
right
=
null
;
right
=
this
.
getSingleNullableResult
(
q
);
return
right
;
}
}
}
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/facade/EventStatusFacade.java
View file @
68e3194
package
fi
.
insomnia
.
bortal
.
facade
;
package
fi
.
insomnia
.
bortal
.
facade
;
import
fi.insomnia.bortal.
bean
s.EventStatusEnum
;
import
fi.insomnia.bortal.
enum
s.EventStatusEnum
;
import
javax.ejb.LocalBean
;
import
javax.ejb.LocalBean
;
import
javax.ejb.Stateless
;
import
javax.ejb.Stateless
;
import
javax.persistence.EntityManager
;
import
javax.persistence.EntityManager
;
...
...
code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/beans/AccessRightBeanLocal.java
0 → 100644
View file @
68e3194
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package
fi
.
insomnia
.
bortal
.
beans
;
import
fi.insomnia.bortal.enums.Permission
;
import
fi.insomnia.bortal.model.AccessRight
;
import
javax.ejb.Local
;
/**
*
* @author tuukka
*/
@Local
public
interface
AccessRightBeanLocal
{
public
AccessRight
findOrCreate
(
Permission
permission
);
}
code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/beans/SessionHandlerBeanLocal.java
View file @
68e3194
package
fi
.
insomnia
.
bortal
.
beans
;
package
fi
.
insomnia
.
bortal
.
beans
;
import
fi.insomnia.bortal.enums.Permission
;
import
fi.insomnia.bortal.enums.RolePermission
;
import
javax.ejb.Local
;
import
javax.ejb.Local
;
import
fi.insomnia.bortal.model.Event
;
import
fi.insomnia.bortal.model.Event
;
...
@@ -8,7 +10,7 @@ import fi.insomnia.bortal.model.User;
...
@@ -8,7 +10,7 @@ import fi.insomnia.bortal.model.User;
@Local
@Local
public
interface
SessionHandlerBeanLocal
{
public
interface
SessionHandlerBeanLocal
{
boolean
hasPermission
(
String
target
,
User
user
,
RolePermission
permission
);
boolean
hasPermission
(
Permission
target
,
User
user
,
RolePermission
permission
);
User
getDefaultUser
(
Event
event
);
User
getDefaultUser
(
Event
event
);
...
...
code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/
bean
s/EventStatusEnum.java
→
code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/
enum
s/EventStatusEnum.java
View file @
68e3194
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
* and open the template in the editor.
* and open the template in the editor.
*/
*/
package
fi
.
insomnia
.
bortal
.
bean
s
;
package
fi
.
insomnia
.
bortal
.
enum
s
;
/**
/**
*
*
...
...
code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/enums/Permission.java
0 → 100644
View file @
68e3194
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package
fi
.
insomnia
.
bortal
.
enums
;
import
javax.naming.directory.InvalidAttributesException
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
/**
*
* @author tuukka
*/
public
enum
Permission
{
PERMISSION
(
"Description"
),
LOGIN
(
"User can see loginbutton. (only defaultuser should have permission to that one)"
);
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
Permission
.
class
);
private
String
description
;
public
static
Permission
getPermission
(
String
name
)
{
try
{
return
valueOf
(
name
);
}
catch
(
IllegalArgumentException
x
)
{
logger
.
error
(
"There is no permission named: "
+
name
);
throw
x
;
}
}
Permission
(
String
description
)
{
this
.
description
=
description
;
}
/**
* @return the description
*/
public
String
getDescription
()
{
return
description
;
}
}
code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/
bean
s/RolePermission.java
→
code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/
enum
s/RolePermission.java
View file @
68e3194
package
fi
.
insomnia
.
bortal
.
bean
s
;
package
fi
.
insomnia
.
bortal
.
enum
s
;
public
enum
RolePermission
{
public
enum
RolePermission
{
READ
,
WRITE
,
EXECUTE
READ
,
WRITE
,
EXECUTE
...
...
code/LanBortalBeansClient/nbproject/project.properties
View file @
68e3194
...
@@ -23,11 +23,15 @@ dist.javadoc.dir=${dist.dir}/javadoc
...
@@ -23,11 +23,15 @@ dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath
=
endorsed.classpath
=
excludes
=
excludes
=
file.reference.LanBortalBeansClient-
ejbModule
=
ejbModule
file.reference.LanBortalBeansClient-
ejbModule
=
ejbModule
file.reference.slf4j-api-
1.5.8.jar
=
/home/tuukka/NetBeansProjects/bortal/code/LanBortal/EarContent/lib/slf4j-api-1.5.8.jar
file.reference.slf4j-jdk14-
1.5.8.jar
=
/home/tuukka/NetBeansProjects/bortal/code/LanBortal/EarContent/lib/slf4j-jdk14-1.5.8.jar
includes
=
**
includes
=
**
jar.compress
=
false
jar.compress
=
false
javac.classpath
=
\
javac.classpath
=
\
${libs.javaee-api-6.0.classpath}:
\
${libs.javaee-api-6.0.classpath}:
\
${reference.LanBortalDatabase.jar}
${reference.LanBortalDatabase.jar}:
\
${file.reference.slf4j-api-1.5.8.jar}:
\
${file.reference.slf4j-jdk14-1.5.8.jar}
# Space-separated list of extra javac options
# Space-separated list of extra javac options
javac.compilerargs
=
javac.compilerargs
=
javac.deprecation
=
false
javac.deprecation
=
false
...
...
code/LanBortalWeb/WebContent/resources/tools/canRead.xhtml
View file @
68e3194
...
@@ -2,32 +2,32 @@
...
@@ -2,32 +2,32 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
<html
xmlns=
"http://www.w3.org/1999/xhtml"
xmlns=
"http://www.w3.org/1999/xhtml"
xmlns:h=
"http://java.sun.com/jsf/html"
xmlns:h=
"http://java.sun.com/jsf/html"
xmlns:f=
"http://java.sun.com/jsf/core"
xmlns:f=
"http://java.sun.com/jsf/core"
xmlns:composite=
"http://java.sun.com/jsf/composite"
xmlns:composite=
"http://java.sun.com/jsf/composite"
xmlns:ui=
"http://java.sun.com/jsf/facelets"
xmlns:ui=
"http://java.sun.com/jsf/facelets"
xmlns:c=
"http://java.sun.com/jsp/jstl/core"
xmlns:c=
"http://java.sun.com/jsp/jstl/core"
xmlns:tools=
"http://java.sun.com/jsf/composite/tools"
>
xmlns:tools=
"http://java.sun.com/jsf/composite/tools"
>
<composite:interface>
<composite:interface>
<composite:attribute
name=
"target"
required=
"true"
/>
<composite:attribute
name=
"target"
required=
"true"
/>
<composite:facet
name=
"errormessage"
/>
<composite:facet
name=
"errormessage"
/>
</composite:interface>
</composite:interface>
<composite:implementation>
<composite:implementation>
<c:choose>
<c:choose>
<c:when
test=
'#{sessionHandler.canRead(
target) }'
>
<c:when
test=
'#{sessionHandler.canRead(cc.attrs.
target) }'
>
<composite:insertChildren
/>
<composite:insertChildren
/>
</c:when>
</c:when>
<c:otherwise>
<c:otherwise>
<c:if
test=
"#{not empty compositeComponent.facets.errormessage}"
>
<c:if
test=
"#{not empty compositeComponent.facets.errormessage}"
>
<composite:insertFacet
name=
"errormessage"
/>
<composite:insertFacet
name=
"errormessage"
/>
</c:if>
</c:if>
</c:otherwise>
</c:otherwise>
</c:choose>
</c:choose>
</composite:implementation>
</composite:implementation>
</html>
</html>
\ No newline at end of file
code/LanBortalWeb/WebContent/resources/tools/login/login.xhtml
View file @
68e3194
...
@@ -18,21 +18,21 @@
...
@@ -18,21 +18,21 @@
<c:choose>
<c:choose>
<c:when
test=
"#{not empty cc.attrs.isOneliner}"
>
<c:when
test=
"#{not empty cc.attrs.isOneliner}"
>
<input
type=
"text"
name=
"j_username"
/>
<input
type=
"text"
name=
"j_username"
/>
<input
type=
"password"
name=
"j_password"
/>
<input
type=
"password"
name=
"j_password"
/>
<input
type=
"submit"
value=
"#{i18n['login.submit']}"
/>
<input
type=
"submit"
value=
"#{i18n['login.submit']}"
/>
</c:when>
</c:when>
<c:otherwise>
<c:otherwise>
<h:panelGrid
columns=
"2"
>
<h:panelGrid
columns=
"2"
>
<h:outputText
value=
"#{i18n['login.username']}"
/>
<h:outputText
value=
"#{i18n['login.username']}"
/>
<input
type=
"text"
name=
"j_username"
/>
<input
type=
"text"
name=
"j_username"
/>
<h:outputText
value=
"#{i18n['login.password']}"
/>
<h:outputText
value=
"#{i18n['login.password']}"
/>
<input
type=
"password"
name=
"j_password"
/>
<input
type=
"password"
name=
"j_password"
/>
</h:panelGrid>
</h:panelGrid>
<input
type=
"submit"
value=
"#{i18n['login.submit']}"
/>
<input
type=
"submit"
value=
"#{i18n['login.submit']}"
/>
</c:otherwise>
</c:otherwise>
</c:choose>
</c:choose>
...
...
code/LanBortalWeb/WebContent/resources/tools/loginLogout.xhtml
View file @
68e3194
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
</composite:interface>
</composite:interface>
<composite:implementation>
<composite:implementation>
<tools:canRead
target=
"
login
"
>
<tools:canRead
target=
"
LOGIN
"
>
<f:facet
name=
"errorMessage"
>
<f:facet
name=
"errorMessage"
>
<login:logout
/>
<login:logout
/>
</f:facet>
</f:facet>
...
...
code/LanBortalWeb/src/fi/insomnia/bortal/handler/SessionHandler.java
View file @
68e3194
...
@@ -13,9 +13,10 @@ import javax.servlet.http.HttpSession;
...
@@ -13,9 +13,10 @@ import javax.servlet.http.HttpSession;
import
fi.insomnia.bortal.HostnameFilter
;
import
fi.insomnia.bortal.HostnameFilter
;
import
fi.insomnia.bortal.beans.EventBeanLocal
;
import
fi.insomnia.bortal.beans.EventBeanLocal
;
import
fi.insomnia.bortal.beans.RolePermission
;
import
fi.insomnia.bortal.beans.SecurityBeanLocal
;
import
fi.insomnia.bortal.beans.SecurityBeanLocal
;
import
fi.insomnia.bortal.beans.SessionHandlerBeanLocal
;
import
fi.insomnia.bortal.beans.SessionHandlerBeanLocal
;
import
fi.insomnia.bortal.enums.Permission
;
import
fi.insomnia.bortal.enums.RolePermission
;
import
fi.insomnia.bortal.model.Event
;
import
fi.insomnia.bortal.model.Event
;
import
fi.insomnia.bortal.model.User
;
import
fi.insomnia.bortal.model.User
;
...
@@ -30,10 +31,8 @@ public class SessionHandler {
...
@@ -30,10 +31,8 @@ public class SessionHandler {
@EJB
@EJB
private
SessionHandlerBeanLocal
handlerbean
;
private
SessionHandlerBeanLocal
handlerbean
;
private
User
user
=
null
;
private
User
user
=
null
;
@EJB
@EJB
private
SecurityBeanLocal
secubean
;
private
SecurityBeanLocal
secubean
;
@EJB
@EJB
private
EventBeanLocal
eventbean
;
private
EventBeanLocal
eventbean
;
...
@@ -75,7 +74,12 @@ public class SessionHandler {
...
@@ -75,7 +74,12 @@ public class SessionHandler {
}
}
public
boolean
hasPermission
(
String
target
,
RolePermission
permission
)
{
public
boolean
hasPermission
(
String
target
,
RolePermission
permission
)
{
return
handlerbean
.
hasPermission
(
target
,
getUser
(),
permission
);
if
(
target
==
null
||
target
.
isEmpty
())
{
throw
new
RuntimeException
(
"Empty target"
);
}
return
handlerbean
.
hasPermission
(
Permission
.
getPermission
(
target
),
getUser
(),
permission
);
}
}
...
...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment