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 002a3bbc
authored
May 13, 2012
by
Juho Salli
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
CompoPermission ja compoview juttui
1 parent
ca494e1c
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
261 additions
and
208 deletions
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/PermissionBean.java
code/LanBortalUtilities/src/fi/insomnia/bortal/enums/BortalApplication.java
code/LanBortalUtilities/src/fi/insomnia/bortal/enums/apps/CompoPermission.java
code/LanBortalWeb/src/fi/insomnia/bortal/web/cdiview/voting/VotingCompoListView.java
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/PermissionBean.java
View file @
002a3bb
package
fi
.
insomnia
.
bortal
.
beans
;
import
java.security.Principal
;
import
javax.annotation.Resource
;
import
javax.annotation.security.DeclareRoles
;
import
javax.ejb.EJB
;
import
javax.ejb.SessionContext
;
import
javax.ejb.Stateless
;
import
javax.resource.spi.IllegalStateException
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
fi.insomnia.bortal.enums.apps.BillPermission
;
import
fi.insomnia.bortal.enums.apps.ContentPermission
;
import
fi.insomnia.bortal.enums.apps.IAppPermission
;
import
fi.insomnia.bortal.enums.apps.LayoutPermission
;
import
fi.insomnia.bortal.enums.apps.MapPermission
;
import
fi.insomnia.bortal.enums.apps.PollPermission
;
import
fi.insomnia.bortal.enums.apps.ShopPermission
;
import
fi.insomnia.bortal.enums.apps.SpecialPermission
;
import
fi.insomnia.bortal.enums.apps.TerminalPermission
;
import
fi.insomnia.bortal.enums.apps.UserPermission
;
import
fi.insomnia.bortal.facade.UserFacade
;
import
fi.insomnia.bortal.model.User
;
@Stateless
@DeclareRoles
({
UserPermission
.
S_CREATE_NEW
,
UserPermission
.
S_LOGIN
,
UserPermission
.
S_LOGOUT
,
UserPermission
.
S_MODIFY
,
UserPermission
.
S_MODIFY_ACCOUNTEVENTS
,
UserPermission
.
S_VIEW_ACCOUNTEVENTS
,
UserPermission
.
S_VIEW_ALL
,
UserPermission
.
S_VIEW_SELF
,
UserPermission
.
S_WRITE_ROLES
,
UserPermission
.
S_READ_ROLES
,
UserPermission
.
S_ANYUSER
,
UserPermission
.
S_MANAGE_HTTP_SESSION
,
UserPermission
.
S_INVITE_USERS
,
MapPermission
.
S_VIEW
,
MapPermission
.
S_MANAGE_MAPS
,
MapPermission
.
S_MANAGE_OTHERS
,
MapPermission
.
S_BUY_PLACES
,
ShopPermission
.
S_LIST_ALL_PRODUCTS
,
ShopPermission
.
S_LIST_USERPRODUCTS
,
ShopPermission
.
S_SHOP_TO_OTHERS
,
ShopPermission
.
S_MANAGE_PRODUCTS
,
ShopPermission
.
S_SHOP_PRODUCTS
,
BillPermission
.
S_CREATE_BILL
,
BillPermission
.
S_READ_ALL
,
BillPermission
.
S_WRITE_ALL
,
BillPermission
.
S_VIEW_OWN
,
ContentPermission
.
S_MANAGE_NEWS
,
ContentPermission
.
S_MANAGE_PAGES
,
ContentPermission
.
S_MANAGE_ACTIONLOG
,
PollPermission
.
S_ANSWER
,
PollPermission
.
S_VIEW_RESULTS
,
PollPermission
.
S_CREATE
,
SpecialPermission
.
S_SUPERADMIN
,
SpecialPermission
.
S_USER
,
SpecialPermission
.
S_ANONYMOUS
,
TerminalPermission
.
S_TERMINAL
,
TerminalPermission
.
S_CASHIER_TERMINAL
,
TerminalPermission
.
S_CUSTOMER_TERMINAL
,
TerminalPermission
.
S_SELFHELP_TERMINAL
,
LayoutPermission
.
S_MANAGE_MENU
,
})
public
class
PermissionBean
implements
PermissionBeanLocal
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
PermissionBean
.
class
);
@Resource
private
SessionContext
context
;
@EJB
private
LoggingBeanLocal
loggingbean
;
@EJB
private
UserFacade
userfacade
;
//
// @Override
// public boolean hasPermission(String perm) {
// return context.isCallerInRole(perm);
// }
@Override
public
boolean
hasPermission
(
IAppPermission
perm
)
{
if
(
perm
==
null
)
{
return
false
;
}
return
context
.
isCallerInRole
(
perm
.
getFullName
());
}
// @Override
// public boolean fatalPermission(IAppPermission permission, Object...
// failmessage) {
// boolean ret = hasPermission(permission);
// if (!ret) {
// StringBuilder message = new
// StringBuilder().append(" permission: ").append(permission);
// if (failmessage == null || failmessage.length == 0) {
// message.append(" MSG: SessionHandler mbean permission exception: Permission: ")
// .append(permission);
// } else {
// for (Object part : failmessage) {
// message.append(part == null ? "NULL" : part.toString());
// }
// }
// // throw new SecurityException("Foobar");
//
// throw new PermissionDeniedException(loggingbean, getCurrentUser(),
// message.toString());
// }
// return true;
// }
//
// @Override
// public void fatalNotLoggedIn() throws PermissionDeniedException {
// if (!isLoggedIn()) {
// throw new PermissionDeniedException(loggingbean, getCurrentUser(),
// "User is not logged in!");
// }
// }
@Override
public
boolean
isCurrentUser
(
User
user
)
{
return
(
context
.
getCallerPrincipal
()
==
null
||
user
==
null
)
?
false
:
context
.
getCallerPrincipal
().
getName
().
equals
(
user
.
getLogin
());
}
@Override
public
boolean
isLoggedIn
()
{
return
!
getAnonUser
().
equals
(
getCurrentUser
())
||
getCurrentUser
().
isSuperadmin
();
}
@Override
public
User
getCurrentUser
()
{
Principal
principal
=
context
.
getCallerPrincipal
();
User
ret
=
userfacade
.
findByLogin
(
principal
.
getName
());
if
(
ret
==
null
)
{
ret
=
getAnonUser
();
}
return
ret
;
}
/**
* Makes sure default user and public role exist and the user is member of
* the role.
*/
@Override
public
User
getAnonUser
()
{
User
defaultUser
=
userfacade
.
findByLogin
(
User
.
ANONYMOUS_LOGINNAME
);
if
(
defaultUser
==
null
)
{
defaultUser
=
new
User
();
defaultUser
.
setLogin
(
User
.
ANONYMOUS_LOGINNAME
);
defaultUser
.
setNick
(
User
.
ANONYMOUS_LOGINNAME
);
userfacade
.
create
(
defaultUser
);
// defaultUser.setSuperadmin(true);
}
return
defaultUser
;
}
public
String
getPrincipal
()
{
Principal
principal
=
context
.
getCallerPrincipal
();
logger
.
debug
(
"Principal: {}"
,
principal
);
String
principalName
=
principal
.
getName
();
logger
.
debug
(
"Principal is {}"
,
principalName
);
return
principalName
;
}
@Override
public
String
getCommonName
()
throws
IllegalStateException
{
String
dn
=
context
.
getCallerPrincipal
().
getName
();
String
[]
parts
=
dn
.
split
(
","
);
for
(
String
part
:
parts
)
{
if
(
part
.
trim
().
toUpperCase
().
startsWith
(
"CN="
))
{
String
cn
=
part
.
substring
(
"CN="
.
length
());
return
cn
;
}
}
throw
new
IllegalStateException
(
"Current security principal has no CN"
);
}
}
package
fi
.
insomnia
.
bortal
.
beans
;
import
java.security.Principal
;
import
javax.annotation.Resource
;
import
javax.annotation.security.DeclareRoles
;
import
javax.ejb.EJB
;
import
javax.ejb.SessionContext
;
import
javax.ejb.Stateless
;
import
javax.resource.spi.IllegalStateException
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
fi.insomnia.bortal.enums.apps.BillPermission
;
import
fi.insomnia.bortal.enums.apps.CompoPermission
;
import
fi.insomnia.bortal.enums.apps.ContentPermission
;
import
fi.insomnia.bortal.enums.apps.IAppPermission
;
import
fi.insomnia.bortal.enums.apps.LayoutPermission
;
import
fi.insomnia.bortal.enums.apps.MapPermission
;
import
fi.insomnia.bortal.enums.apps.PollPermission
;
import
fi.insomnia.bortal.enums.apps.ShopPermission
;
import
fi.insomnia.bortal.enums.apps.SpecialPermission
;
import
fi.insomnia.bortal.enums.apps.TerminalPermission
;
import
fi.insomnia.bortal.enums.apps.UserPermission
;
import
fi.insomnia.bortal.facade.UserFacade
;
import
fi.insomnia.bortal.model.User
;
@Stateless
@DeclareRoles
({
UserPermission
.
S_CREATE_NEW
,
UserPermission
.
S_LOGIN
,
UserPermission
.
S_LOGOUT
,
UserPermission
.
S_MODIFY
,
UserPermission
.
S_MODIFY_ACCOUNTEVENTS
,
UserPermission
.
S_VIEW_ACCOUNTEVENTS
,
UserPermission
.
S_VIEW_ALL
,
UserPermission
.
S_VIEW_SELF
,
UserPermission
.
S_WRITE_ROLES
,
UserPermission
.
S_READ_ROLES
,
UserPermission
.
S_ANYUSER
,
UserPermission
.
S_MANAGE_HTTP_SESSION
,
UserPermission
.
S_INVITE_USERS
,
MapPermission
.
S_VIEW
,
MapPermission
.
S_MANAGE_MAPS
,
MapPermission
.
S_MANAGE_OTHERS
,
MapPermission
.
S_BUY_PLACES
,
ShopPermission
.
S_LIST_ALL_PRODUCTS
,
ShopPermission
.
S_LIST_USERPRODUCTS
,
ShopPermission
.
S_SHOP_TO_OTHERS
,
ShopPermission
.
S_MANAGE_PRODUCTS
,
ShopPermission
.
S_SHOP_PRODUCTS
,
BillPermission
.
S_CREATE_BILL
,
BillPermission
.
S_READ_ALL
,
BillPermission
.
S_WRITE_ALL
,
BillPermission
.
S_VIEW_OWN
,
ContentPermission
.
S_MANAGE_NEWS
,
ContentPermission
.
S_MANAGE_PAGES
,
ContentPermission
.
S_MANAGE_ACTIONLOG
,
PollPermission
.
S_ANSWER
,
PollPermission
.
S_VIEW_RESULTS
,
PollPermission
.
S_CREATE
,
SpecialPermission
.
S_SUPERADMIN
,
SpecialPermission
.
S_USER
,
SpecialPermission
.
S_ANONYMOUS
,
TerminalPermission
.
S_TERMINAL
,
TerminalPermission
.
S_CASHIER_TERMINAL
,
TerminalPermission
.
S_CUSTOMER_TERMINAL
,
TerminalPermission
.
S_SELFHELP_TERMINAL
,
LayoutPermission
.
S_MANAGE_MENU
,
CompoPermission
.
S_MANAGE
,
CompoPermission
.
S_VOTE
,
CompoPermission
.
S_SUBMIT_ENTRY
,
CompoPermission
.
S_VIEW_COMPOS
,
})
public
class
PermissionBean
implements
PermissionBeanLocal
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
PermissionBean
.
class
);
@Resource
private
SessionContext
context
;
@EJB
private
LoggingBeanLocal
loggingbean
;
@EJB
private
UserFacade
userfacade
;
//
// @Override
// public boolean hasPermission(String perm) {
// return context.isCallerInRole(perm);
// }
@Override
public
boolean
hasPermission
(
IAppPermission
perm
)
{
if
(
perm
==
null
)
{
return
false
;
}
return
context
.
isCallerInRole
(
perm
.
getFullName
());
}
// @Override
// public boolean fatalPermission(IAppPermission permission, Object...
// failmessage) {
// boolean ret = hasPermission(permission);
// if (!ret) {
// StringBuilder message = new
// StringBuilder().append(" permission: ").append(permission);
// if (failmessage == null || failmessage.length == 0) {
// message.append(" MSG: SessionHandler mbean permission exception: Permission: ")
// .append(permission);
// } else {
// for (Object part : failmessage) {
// message.append(part == null ? "NULL" : part.toString());
// }
// }
// // throw new SecurityException("Foobar");
//
// throw new PermissionDeniedException(loggingbean, getCurrentUser(),
// message.toString());
// }
// return true;
// }
//
// @Override
// public void fatalNotLoggedIn() throws PermissionDeniedException {
// if (!isLoggedIn()) {
// throw new PermissionDeniedException(loggingbean, getCurrentUser(),
// "User is not logged in!");
// }
// }
@Override
public
boolean
isCurrentUser
(
User
user
)
{
return
(
context
.
getCallerPrincipal
()
==
null
||
user
==
null
)
?
false
:
context
.
getCallerPrincipal
().
getName
().
equals
(
user
.
getLogin
());
}
@Override
public
boolean
isLoggedIn
()
{
return
!
getAnonUser
().
equals
(
getCurrentUser
())
||
getCurrentUser
().
isSuperadmin
();
}
@Override
public
User
getCurrentUser
()
{
Principal
principal
=
context
.
getCallerPrincipal
();
User
ret
=
userfacade
.
findByLogin
(
principal
.
getName
());
if
(
ret
==
null
)
{
ret
=
getAnonUser
();
}
return
ret
;
}
/**
* Makes sure default user and public role exist and the user is member of
* the role.
*/
@Override
public
User
getAnonUser
()
{
User
defaultUser
=
userfacade
.
findByLogin
(
User
.
ANONYMOUS_LOGINNAME
);
if
(
defaultUser
==
null
)
{
defaultUser
=
new
User
();
defaultUser
.
setLogin
(
User
.
ANONYMOUS_LOGINNAME
);
defaultUser
.
setNick
(
User
.
ANONYMOUS_LOGINNAME
);
userfacade
.
create
(
defaultUser
);
// defaultUser.setSuperadmin(true);
}
return
defaultUser
;
}
public
String
getPrincipal
()
{
Principal
principal
=
context
.
getCallerPrincipal
();
logger
.
debug
(
"Principal: {}"
,
principal
);
String
principalName
=
principal
.
getName
();
logger
.
debug
(
"Principal is {}"
,
principalName
);
return
principalName
;
}
@Override
public
String
getCommonName
()
throws
IllegalStateException
{
String
dn
=
context
.
getCallerPrincipal
().
getName
();
String
[]
parts
=
dn
.
split
(
","
);
for
(
String
part
:
parts
)
{
if
(
part
.
trim
().
toUpperCase
().
startsWith
(
"CN="
))
{
String
cn
=
part
.
substring
(
"CN="
.
length
());
return
cn
;
}
}
throw
new
IllegalStateException
(
"Current security principal has no CN"
);
}
}
code/LanBortalUtilities/src/fi/insomnia/bortal/enums/BortalApplication.java
View file @
002a3bb
package
fi
.
insomnia
.
bortal
.
enums
;
import
fi.insomnia.bortal.enums.apps.BillPermission
;
import
fi.insomnia.bortal.enums.apps.CompoPermission
;
import
fi.insomnia.bortal.enums.apps.ContentPermission
;
import
fi.insomnia.bortal.enums.apps.IAppPermission
;
import
fi.insomnia.bortal.enums.apps.LayoutPermission
;
...
...
@@ -21,6 +22,7 @@ public enum BortalApplication {
TERMINAL
(
"Sales and self help terminal roles"
,
TerminalPermission
.
class
),
LAYOUT
(
"Layoutstuff"
,
LayoutPermission
.
class
),
SALESPOINT
(
"Managing salespoints"
,
SalespointPermission
.
class
),
COMPO
(
"Managing compos"
,
CompoPermission
.
class
),
;
...
...
code/LanBortalUtilities/src/fi/insomnia/bortal/enums/apps/CompoPermission.java
0 → 100644
View file @
002a3bb
package
fi
.
insomnia
.
bortal
.
enums
.
apps
;
import
fi.insomnia.bortal.enums.BortalApplication
;
public
enum
CompoPermission
implements
IAppPermission
{
MANAGE
(
"Manage compos"
),
VOTE
(
"Vote"
),
SUBMIT_ENTRY
(
"Submit entry"
),
VIEW_COMPOS
(
"View compos"
),
;
public
static
final
String
S_MANAGE
=
"COMPO/MANAGE"
;
public
static
final
String
S_VOTE
=
"COMPO/VOTE"
;
public
static
final
String
S_SUBMIT_ENTRY
=
"COMPO/SUBMIT_ENTRY"
;
public
static
final
String
S_VIEW_COMPOS
=
"COMPO/VIEW_COMPOS"
;
private
final
String
description
;
private
final
String
fullName
;
private
CompoPermission
(
String
desc
)
{
description
=
desc
;
fullName
=
new
StringBuilder
().
append
(
getParent
().
toString
()).
append
(
DELIMITER
).
append
(
toString
()).
toString
();
}
@Override
public
BortalApplication
getParent
()
{
return
BortalApplication
.
COMPO
;
}
@Override
public
String
getDescription
()
{
return
this
.
description
;
}
@Override
public
String
getFullName
()
{
return
fullName
;
}
}
code/LanBortalWeb/src/fi/insomnia/bortal/web/cdiview/voting/VotingCompoListView.java
View file @
002a3bb
...
...
@@ -24,7 +24,9 @@ public class VotingCompoListView extends GenericCDIView {
@EJB
private
VotingBeanLocal
votbean
;
boolean
curEntries
=
false
;
boolean
maxParts
=
false
;
public
List
<
Compo
>
getCompos
()
{
return
votbean
.
getCompoList
();
...
...
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