Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Linnea Samila
/
Moya
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Wiki
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 @@
*/
package
fi
.
insomnia
.
bortal
.
beans
;
import
fi.insomnia.bortal.enums.EventStatusEnum
;
import
fi.insomnia.bortal.facade.EventStatusFacade
;
import
fi.insomnia.bortal.model.EventStatus
;
import
javax.ejb.EJB
;
...
...
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/SessionHandlerBean.java
View file @
68e3194
package
fi
.
insomnia
.
bortal
.
beans
;
import
fi.insomnia.bortal.enums.Permission
;
import
fi.insomnia.bortal.enums.RolePermission
;
import
java.security.Principal
;
import
java.util.ArrayList
;
import
java.util.Enumeration
;
...
...
@@ -16,7 +18,6 @@ import javax.ejb.Stateless;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
fi.insomnia.bortal.facade.AccessRightFacade
;
import
fi.insomnia.bortal.facade.RoleFacade
;
import
fi.insomnia.bortal.facade.UserFacade
;
import
fi.insomnia.bortal.model.AccessRight
;
...
...
@@ -36,7 +37,7 @@ public class SessionHandlerBean implements SessionHandlerBeanLocal, SessionHandl
@EJB
private
UserFacade
userfacade
;
@EJB
private
AccessRight
Facade
accessRightFacade
;
private
AccessRight
BeanLocal
accessRightBeanLocal
;
@EJB
private
RoleFacade
roleFacade
;
@Resource
...
...
@@ -52,13 +53,13 @@ public class SessionHandlerBean implements SessionHandlerBeanLocal, SessionHandl
// 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
)
{
return
false
;
}
AccessRight
expectedRight
=
accessRight
Facade
.
findOrCreateByNam
e
(
target
);
AccessRight
expectedRight
=
accessRight
BeanLocal
.
findOrCreat
e
(
target
);
User
dbusr
=
userfacade
.
find
(
user
.
getId
());
if
(
dbusr
!=
null
)
{
...
...
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/facade/AccessRightFacade.java
View file @
68e3194
package
fi
.
insomnia
.
bortal
.
facade
;
import
fi.insomnia.bortal.enums.Permission
;
import
javax.ejb.LocalBean
;
import
javax.ejb.Stateless
;
import
javax.persistence.EntityManager
;
...
...
@@ -22,7 +23,7 @@ public class AccessRightFacade extends IntegerPkGenericFacade<AccessRight> {
protected
EntityManager
getEm
()
{
return
em
;
}
/*
public AccessRight findOrCreateByName(String target) {
// Fetch access right by name
...
...
@@ -40,4 +41,16 @@ public class AccessRightFacade extends IntegerPkGenericFacade<AccessRight> {
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
;
import
fi.insomnia.bortal.
bean
s.EventStatusEnum
;
import
fi.insomnia.bortal.
enum
s.EventStatusEnum
;
import
javax.ejb.LocalBean
;
import
javax.ejb.Stateless
;
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
;
import
fi.insomnia.bortal.enums.Permission
;
import
fi.insomnia.bortal.enums.RolePermission
;
import
javax.ejb.Local
;
import
fi.insomnia.bortal.model.Event
;
...
...
@@ -8,7 +10,7 @@ import fi.insomnia.bortal.model.User;
@Local
public
interface
SessionHandlerBeanLocal
{
boolean
hasPermission
(
String
target
,
User
user
,
RolePermission
permission
);
boolean
hasPermission
(
Permission
target
,
User
user
,
RolePermission
permission
);
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 @@
* 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
{
READ
,
WRITE
,
EXECUTE
...
...
code/LanBortalBeansClient/nbproject/project.properties
View file @
68e3194
...
...
@@ -23,11 +23,15 @@ dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath
=
excludes
=
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
=
**
jar.compress
=
false
javac.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
javac.compilerargs
=
javac.deprecation
=
false
...
...
code/LanBortalWeb/WebContent/resources/tools/canRead.xhtml
View file @
68e3194
...
...
@@ -2,32 +2,32 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns=
"http://www.w3.org/1999/xhtml"
xmlns:h=
"http://java.sun.com/jsf/html"
xmlns:f=
"http://java.sun.com/jsf/core"
xmlns:composite=
"http://java.sun.com/jsf/composite"
xmlns:ui=
"http://java.sun.com/jsf/facelets"
xmlns:c=
"http://java.sun.com/jsp/jstl/core"
xmlns:tools=
"http://java.sun.com/jsf/composite/tools"
>
<composite:interface>
<composite:attribute
name=
"target"
required=
"true"
/>
<composite:facet
name=
"errormessage"
/>
xmlns=
"http://www.w3.org/1999/xhtml"
xmlns:h=
"http://java.sun.com/jsf/html"
xmlns:f=
"http://java.sun.com/jsf/core"
xmlns:composite=
"http://java.sun.com/jsf/composite"
xmlns:ui=
"http://java.sun.com/jsf/facelets"
xmlns:c=
"http://java.sun.com/jsp/jstl/core"
xmlns:tools=
"http://java.sun.com/jsf/composite/tools"
>
<composite:interface>
<composite:attribute
name=
"target"
required=
"true"
/>
<composite:facet
name=
"errormessage"
/>
</composite:interface>
</composite:interface>
<composite:implementation>
<c:choose>
<c:when
test=
'#{sessionHandler.canRead(
target) }'
>
<composite:insertChildren
/>
</c:when>
<c:otherwise>
<c:if
test=
"#{not empty compositeComponent.facets.errormessage}"
>
<composite:insertFacet
name=
"errormessage"
/>
</c:if>
</c:otherwise>
<composite:implementation>
<c:choose>
<c:when
test=
'#{sessionHandler.canRead(cc.attrs.
target) }'
>
<composite:insertChildren
/>
</c:when>
<c:otherwise>
<c:if
test=
"#{not empty compositeComponent.facets.errormessage}"
>
<composite:insertFacet
name=
"errormessage"
/>
</c:if>
</c:otherwise>
</c:choose>
</c:choose>
</composite:implementation>
</composite:implementation>
</html>
\ No newline at end of file
code/LanBortalWeb/WebContent/resources/tools/login/login.xhtml
View file @
68e3194
...
...
@@ -18,21 +18,21 @@
<c:choose>
<c:when
test=
"#{not empty cc.attrs.isOneliner}"
>
<input
type=
"text"
name=
"j_username"
/>
<input
type=
"password"
name=
"j_password"
/>
<input
type=
"submit"
value=
"#{i18n['login.submit']}"
/>
<input
type=
"text"
name=
"j_username"
/>
<input
type=
"password"
name=
"j_password"
/>
<input
type=
"submit"
value=
"#{i18n['login.submit']}"
/>
</c:when>
<c:otherwise>
<h:panelGrid
columns=
"2"
>
<h:outputText
value=
"#{i18n['login.username']}"
/>
<input
type=
"text"
name=
"j_username"
/>
<h:outputText
value=
"#{i18n['login.username']}"
/>
<input
type=
"text"
name=
"j_username"
/>
<h:outputText
value=
"#{i18n['login.password']}"
/>
<input
type=
"password"
name=
"j_password"
/>
<h:outputText
value=
"#{i18n['login.password']}"
/>
<input
type=
"password"
name=
"j_password"
/>
</h:panelGrid>
<input
type=
"submit"
value=
"#{i18n['login.submit']}"
/>
<input
type=
"submit"
value=
"#{i18n['login.submit']}"
/>
</c:otherwise>
</c:choose>
...
...
code/LanBortalWeb/WebContent/resources/tools/loginLogout.xhtml
View file @
68e3194
...
...
@@ -15,7 +15,7 @@
</composite:interface>
<composite:implementation>
<tools:canRead
target=
"
login
"
>
<tools:canRead
target=
"
LOGIN
"
>
<f:facet
name=
"errorMessage"
>
<login:logout
/>
</f:facet>
...
...
code/LanBortalWeb/src/fi/insomnia/bortal/handler/SessionHandler.java
View file @
68e3194
...
...
@@ -13,9 +13,10 @@ import javax.servlet.http.HttpSession;
import
fi.insomnia.bortal.HostnameFilter
;
import
fi.insomnia.bortal.beans.EventBeanLocal
;
import
fi.insomnia.bortal.beans.RolePermission
;
import
fi.insomnia.bortal.beans.SecurityBeanLocal
;
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.User
;
...
...
@@ -30,10 +31,8 @@ public class SessionHandler {
@EJB
private
SessionHandlerBeanLocal
handlerbean
;
private
User
user
=
null
;
@EJB
private
SecurityBeanLocal
secubean
;
@EJB
private
EventBeanLocal
eventbean
;
...
...
@@ -75,7 +74,12 @@ public class SessionHandler {
}
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