Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Riina Antikainen
/
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 4f4df5f6
authored
Dec 08, 2014
by
Tuukka Kivilahti
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master' into placecount-fix
2 parents
ccf864d4
739bbb2b
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
253 additions
and
36 deletions
code/moya-beans-client/ejbModule/fi/codecrew/moya/beans/UserBeanLocal.java
code/moya-beans/ejbModule/fi/codecrew/moya/beans/PlaceGroupBean.java
code/moya-beans/ejbModule/fi/codecrew/moya/beans/UserBean.java
code/moya-beans/ejbModule/fi/codecrew/moya/facade/UserFacade.java
code/moya-web/WebContent/place/myGroups.xhtml
code/moya-web/WebContent/user/acceptInvite.xhtml
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/map/PlacegroupView.java
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/shop/InviteAcceptView.java
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/shop/InviteView.java
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/user/UserValidator.java
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n.properties
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n_en.properties
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n_fi.properties
code/moya-beans-client/ejbModule/fi/codecrew/moya/beans/UserBeanLocal.java
View file @
4f4df5f
...
...
@@ -89,7 +89,19 @@ public interface UserBeanLocal {
boolean
userExists
(
String
login
);
boolean
invite
(
String
invitemail
,
String
url
);
boolean
userExistsByEmail
(
String
email
);
/**
*
* @param invitemail Target mail
* @param url Url to send
* @param membership target group membership, if null we generate new one
* @return
*/
boolean
invite
(
String
invitemail
,
String
url
,
GroupMembership
membership
);
void
cancelInvite
(
GroupMembership
ship
);
EventUser
mergeEventUserChanges
(
EventUser
shoppingUser
);
...
...
code/moya-beans/ejbModule/fi/codecrew/moya/beans/PlaceGroupBean.java
View file @
4f4df5f
...
...
@@ -298,6 +298,8 @@ public class PlaceGroupBean implements PlaceGroupBeanLocal {
throw
new
EJBAccessException
(
"Not enough rights to release token"
);
}
gmem
.
setUser
(
null
);
gmem
.
setInviteEmail
(
null
);
gmem
.
setInviteName
(
null
);
gmem
.
setInviteToken
(
gmemfacade
.
createInviteToken
());
logger
.
info
(
"Place released. {} new token {}"
,
gmem
.
getInviteToken
());
}
...
...
code/moya-beans/ejbModule/fi/codecrew/moya/beans/UserBean.java
View file @
4f4df5f
...
...
@@ -419,6 +419,7 @@ public class UserBean implements UserBeanLocal {
// return userFacade.searchForName(name);
// }
@Override
@RolesAllowed
(
UserPermission
.
S_CREATE_NEW
)
public
void
createNewUser
(
EventUser
user
,
String
password
)
{
...
...
@@ -546,21 +547,42 @@ public class UserBean implements UserBeanLocal {
@Override
@RolesAllowed
(
UserPermission
.
S_INVITE_USERS
)
public
boolean
invite
(
String
invitemail
,
String
url
)
{
public
boolean
invite
(
String
invitemail
,
String
url
,
GroupMembership
inviteGm
)
{
invitemail
=
invitemail
.
trim
();
List
<
User
>
usercheck
=
userFacade
.
findByEmail
(
invitemail
);
if
(
usercheck
.
size
()
>
0
)
{
if
(
usercheck
.
size
()
>
0
&&
inviteGm
==
null
)
{
logger
.
info
(
"Email already exists {}"
,
invitemail
);
return
false
;
}
EventUser
creator
=
permbean
.
getCurrentUser
();
LanEvent
ev
=
eventBean
.
getCurrentEvent
();
PlaceGroup
pg
=
new
PlaceGroup
(
ev
,
Calendar
.
getInstance
(),
Calendar
.
getInstance
(),
false
);
pg
.
setCreator
(
creator
);
pg
.
setName
(
"Invite to "
+
invitemail
);
String
token
=
PasswordFunctions
.
generateRandomString
(
30
,
PasswordFunctions
.
ALL_CHARS
);
pg
.
getMembers
().
add
(
new
GroupMembership
(
pg
,
null
,
token
));
pgfacade
.
create
(
pg
);
String
token
;
do
{
token
=
PasswordFunctions
.
generateRandomString
(
30
,
PasswordFunctions
.
ALL_CHARS
);
}
while
(
gmfacade
.
findByToken
(
token
)
!=
null
);
// newer trust random
PlaceGroup
pg
;
if
(
inviteGm
!=
null
)
{
inviteGm
.
setInviteToken
(
token
);
inviteGm
.
setInviteEmail
(
invitemail
);
gmfacade
.
merge
(
inviteGm
);
pg
=
inviteGm
.
getPlaceGroup
();
}
else
{
pg
=
new
PlaceGroup
(
ev
,
Calendar
.
getInstance
(),
Calendar
.
getInstance
(),
false
);
pg
.
setCreator
(
creator
);
pg
.
setName
(
"Invite to "
+
invitemail
);
GroupMembership
gm
=
new
GroupMembership
(
pg
,
null
,
token
);
gm
.
setInviteEmail
(
invitemail
);
pg
.
getMembers
().
add
(
gm
);
pgfacade
.
create
(
pg
);
}
MailMessage
msg
=
new
MailMessage
();
msg
.
setSubject
(
eventBean
.
getPropertyString
(
LanEventPropertyKey
.
INVITEMAIL_SUBJECT
));
...
...
@@ -573,6 +595,15 @@ public class UserBean implements UserBeanLocal {
}
@Override
public
void
cancelInvite
(
GroupMembership
ship
)
{
ship
=
gmfacade
.
merge
(
ship
);
ship
.
setInviteToken
(
gmfacade
.
createInviteToken
());
ship
.
setInviteEmail
(
null
);
ship
.
setInviteName
(
null
);
}
@Override
@PermitAll
public
GroupMembership
findToken
(
String
token
)
{
return
gmfacade
.
findByToken
(
token
);
...
...
@@ -599,13 +630,19 @@ public class UserBean implements UserBeanLocal {
public
boolean
createFromInviteToken
(
EventUser
user
,
String
token
)
{
if
(
user
==
null
||
user
.
getLogin
()
==
null
)
return
false
;
GroupMembership
gm
=
findToken
(
token
);
// Check that invite has not already been accepted!
if
(
gm
==
null
||
gm
.
getUser
()
!=
null
||
gm
.
getInviteAccepted
()
!=
null
)
{
return
false
;
}
user
.
setEvent
(
eventBean
.
getCurrentEvent
());
if
(
user
.
getLogin
()
==
null
||
user
.
getLogin
().
trim
().
isEmpty
())
{
user
.
setLogin
(
user
.
getEmail
());
}
gm
.
setUser
(
user
);
gm
.
setInviteAccepted
(
Calendar
.
getInstance
());
...
...
@@ -724,6 +761,13 @@ public class UserBean implements UserBeanLocal {
}
@Override
public
boolean
userExistsByEmail
(
String
email
)
{
List
<
User
>
usr
=
userFacade
.
findByEmail
(
email
);
return
(
usr
!=
null
&&
usr
.
size
()
>
0
);
}
@Override
public
EventUser
findByEventUserId
(
Integer
integer
)
{
return
eventUserFacade
.
find
(
integer
);
}
...
...
code/moya-beans/ejbModule/fi/codecrew/moya/facade/UserFacade.java
View file @
4f4df5f
...
...
@@ -93,7 +93,7 @@ public class UserFacade extends IntegerPkGenericFacade<User> {
CriteriaBuilder
cb
=
getEm
().
getCriteriaBuilder
();
CriteriaQuery
<
User
>
cq
=
cb
.
createQuery
(
User
.
class
);
Root
<
User
>
root
=
cq
.
from
(
User
.
class
);
cq
.
where
(
cb
.
equal
(
root
.
get
(
User_
.
login
),
login
));
cq
.
where
(
cb
.
equal
(
cb
.
lower
(
root
.
get
(
User_
.
login
)),
login
.
toLowerCase
()
));
return
getSingleNullableResult
(
getEm
().
createQuery
(
cq
));
}
...
...
@@ -139,7 +139,7 @@ public class UserFacade extends IntegerPkGenericFacade<User> {
CriteriaBuilder
cb
=
getEm
().
getCriteriaBuilder
();
CriteriaQuery
<
User
>
cq
=
cb
.
createQuery
(
User
.
class
);
Root
<
User
>
root
=
cq
.
from
(
User
.
class
);
cq
.
where
(
cb
.
equal
(
root
.
get
(
User_
.
email
),
email
));
cq
.
where
(
cb
.
equal
(
cb
.
upper
(
root
.
get
(
User_
.
email
)),
email
.
toUpperCase
()
));
return
getEm
().
createQuery
(
cq
).
getResultList
();
}
...
...
code/moya-web/WebContent/place/myGroups.xhtml
View file @
4f4df5f
...
...
@@ -18,7 +18,7 @@
<h:outputText
rendered=
"#{empty placeGroupView.groupMemberships}"
value=
"#{i18n['placegroupview.noMemberships']}"
/>
<h:form
rendered=
"#{!empty placeGroupView.groupMemberships}"
id=
"placelistform"
>
<p:dataTable
value=
"#{placeGroupView.groupMemberships}"
var=
"member"
>
<p:dataTable
value=
"#{placeGroupView.groupMemberships}"
var=
"member"
id=
"placestable"
>
<p:column>
<f:facet
name=
"header"
>
...
...
@@ -38,7 +38,6 @@
</f:facet>
<h:outputText
rendered=
"#{empty member.user}"
value=
"#{member.inviteToken}"
/>
<h:outputText
rendered=
"#{!empty member.user}"
value=
"#{member.user.firstnames} #{member.user.lastname} (#{member.user.nick})"
/>
</p:column>
<p:column>
<f:facet
name=
"header"
>
...
...
@@ -50,9 +49,22 @@
<p:column>
<h:commandButton
rendered=
"#{placeGroupView.canModifyCurrent and placeGroupView.currentMemberUserNotNull and placeGroupView.currentReleaseAllowed}"
action=
"#{placeGroupView.releasePlace()}"
value=
"#{i18n['placegroupview.releasePlace']}"
/>
<p:inputText
immediate=
"true"
rendered=
"#{placeGroupView.canSendInviteCurrent}"
value=
"#{placeGroupView.inviteMail}"
/>
<p:commandButton
rendered=
"#{placeGroupView.canSendInviteCurrent}"
value=
"#{i18n['user.invite']}"
actionListener=
"#{placeGroupView.sendInvite}"
update=
":messages placestable"
/>
<h:outputText
rendered=
"#{placeGroupView.showCancelInviteCurrent}"
value=
"#{member.inviteEmail}"
/>
<p:commandButton
rendered=
"#{placeGroupView.showCancelInviteCurrent}"
value=
"#{i18n['user.cancelInvite']}"
actionListener=
"#{placeGroupView.cancelInvite}"
update=
":messages placestable"
/>
</p:column>
</p:dataTable>
<p:dialog
header=
"Basic Dialog"
widgetVar=
"dlg1"
minHeight=
"40"
>
<h:outputText
value=
"Resistance to PrimeFaces is futile!"
/>
</p:dialog>
</h:form>
<p>
...
...
code/moya-web/WebContent/user/acceptInvite.xhtml
View file @
4f4df5f
...
...
@@ -11,31 +11,29 @@
</f:metadata>
<ui:define
name=
"title"
>
<h1>
<h:outputText
value=
"#{i18n['user.invite.header']}"
/>
<h:outputText
rendered=
"#{!inviteAcceptView.placeGroupMembership}"
value=
"#{i18n['user.invite.header']}"
/>
<h:outputText
rendered=
"#{inviteAcceptView.placeGroupMembership}"
value=
"#{i18n['user.invite.placeInvite.header']}"
/>
</h1>
</ui:define>
<ui:define
name=
"content"
>
<ui:fragment
rendered=
"#{!inviteAcceptView.done}"
>
<h2>
<h:outputText
value=
"#{i18n['invite.existingUserHeader']}"
/>
</h2>
<h:form>
<h:panelGrid
columns=
"2"
>
<h:outputLabel
for=
"login"
/>
<p:inputText
label=
"#{i18n['login.username']}"
id=
"login"
value=
"#{inviteAcceptView.username}"
/>
<p:fieldset
legend=
"#{i18n['invite.existingUserHeader']}"
>
<h:form>
<h:panelGrid
columns=
"2"
>
<h:outputLabel
for=
"login"
/>
<p:inputText
label=
"#{i18n['login.username']}"
id=
"login"
value=
"#{inviteAcceptView.username}"
/>
<h:outputLabel
for=
"pwd"
/>
<p:password
label=
"#{i18n['login.password']}"
id=
"pwd"
value=
"#{inviteAcceptView.password}"
/>
</h:panelGrid>
<p:commandButton
id=
"submit"
action=
"#{inviteAcceptView.loginWithExisting()}"
ajax=
"false"
value=
"#{i18n['login.submit']}"
/>
</h:form>
<h:outputLabel
for=
"pwd"
/>
<p:password
label=
"#{i18n['login.password']}"
id=
"pwd"
value=
"#{inviteAcceptView.password}"
/>
</h:panelGrid>
<p:commandButton
id=
"submit"
action=
"#{inviteAcceptView.loginWithExisting()}"
ajax=
"false"
value=
"#{i18n['login.submit']}"
/>
</h:form>
</p:fieldset>
<h2>
<h:outputText
value=
"#{i18n['invite.createNewUserHeader']}"
/>
</h2>
<users:create
creating=
"true"
commitaction=
"#{inviteAcceptView.createUser()}"
commitvalue=
"#{i18n['user.create']}"
/>
<br
/><br
/><br
/>
<p:fieldset
legend=
"#{i18n['invite.createNewUserHeader']}"
>
<users:create
creating=
"true"
commitaction=
"#{inviteAcceptView.createUser()}"
commitvalue=
"#{i18n['user.create']}"
/>
</p:fieldset>
</ui:fragment>
</ui:define>
</ui:composition>
...
...
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/map/PlacegroupView.java
View file @
4f4df5f
...
...
@@ -19,7 +19,9 @@
package
fi
.
codecrew
.
moya
.
web
.
cdiview
.
map
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
javax.ejb.EJB
;
import
javax.enterprise.context.ConversationScoped
;
...
...
@@ -28,6 +30,7 @@ import javax.inject.Inject;
import
javax.inject.Named
;
import
fi.codecrew.moya.beans.PlaceGroupBeanLocal
;
import
fi.codecrew.moya.beans.UserBeanLocal
;
import
fi.codecrew.moya.enums.apps.MapPermission
;
import
fi.codecrew.moya.model.EventUser
;
import
fi.codecrew.moya.model.GroupMembership
;
...
...
@@ -35,12 +38,17 @@ import fi.codecrew.moya.model.Place;
import
fi.codecrew.moya.model.PlaceGroup
;
import
fi.codecrew.moya.web.annotations.SelectedUser
;
import
fi.codecrew.moya.web.cdiview.GenericCDIView
;
import
fi.codecrew.moya.web.cdiview.shop.InviteView
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
@Named
(
"placeGroupView"
)
@ConversationScoped
public
class
PlacegroupView
extends
GenericCDIView
{
private
static
final
long
serialVersionUID
=
-
3934253910818396155L
;
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
PlacegroupView
.
class
);
// @Inject
// private UserView userview;
...
...
@@ -51,6 +59,12 @@ public class PlacegroupView extends GenericCDIView {
@EJB
private
transient
PlaceGroupBeanLocal
placegroupBean
;
@EJB
UserBeanLocal
userBean
;
@Inject
private
InviteView
inviteView
;
private
Place
place
;
private
PlaceGroup
group
;
...
...
@@ -59,6 +73,8 @@ public class PlacegroupView extends GenericCDIView {
private
transient
ListDataModel
<
GroupMembership
>
memberlist
;
private
Map
<
Integer
,
String
>
inviteMails
=
new
HashMap
<>();
public
String
editGroup
()
{
setGroup
(
placegroups
.
getRowData
());
setPlacelist
(
new
ListDataModel
<
Place
>(
group
.
getPlaces
()));
...
...
@@ -80,6 +96,35 @@ public class PlacegroupView extends GenericCDIView {
return
canModify
(
memberlist
.
getRowData
());
}
public
boolean
isShowCancelInviteCurrent
()
{
GroupMembership
row
=
memberlist
.
getRowData
();
if
(
row
==
null
)
return
false
;
if
(!
isCanModifyCurrent
())
return
false
;
if
(
row
.
getUser
()
==
null
&&
(
row
.
getInviteEmail
()
!=
null
&&
!
row
.
getInviteEmail
().
trim
().
isEmpty
()))
return
true
;
return
false
;
}
public
boolean
isCanSendInviteCurrent
()
{
GroupMembership
row
=
memberlist
.
getRowData
();
if
(
row
==
null
)
return
false
;
if
(!
isCanModifyCurrent
())
return
false
;
if
(
row
.
getUser
()
==
null
&&
(
row
.
getInviteEmail
()
==
null
||
row
.
getInviteEmail
().
trim
().
isEmpty
()))
return
true
;
return
false
;
}
public
boolean
isCurrentMemberUserNotNull
()
{
GroupMembership
row
=
memberlist
.
getRowData
();
if
(
row
!=
null
&&
row
.
getUser
()
!=
null
)
...
...
@@ -169,4 +214,45 @@ public class PlacegroupView extends GenericCDIView {
public
void
setUser
(
EventUser
user
)
{
this
.
user
=
user
;
}
public
void
sendInvite
()
{
GroupMembership
row
=
memberlist
.
getRowData
();
if
(
row
!=
null
)
{
if
(
permbean
.
isCurrentUser
(
row
.
getPlaceGroup
().
getCreator
())
||
permbean
.
hasPermission
(
MapPermission
.
MANAGE_OTHERS
))
{
String
inviteMail
=
inviteMails
.
get
(
row
.
getId
());
inviteView
.
setInviteGm
(
row
);
inviteView
.
setInvitemail
(
inviteMail
);
inviteView
.
invite
();
}
}
}
public
void
cancelInvite
()
{
GroupMembership
row
=
memberlist
.
getRowData
();
if
(
row
!=
null
)
{
if
(
permbean
.
isCurrentUser
(
row
.
getPlaceGroup
().
getCreator
())
||
permbean
.
hasPermission
(
MapPermission
.
MANAGE_OTHERS
))
{
userBean
.
cancelInvite
(
row
);
}
}
}
public
String
getInviteMail
()
{
GroupMembership
row
=
memberlist
.
getRowData
();
if
(
row
!=
null
)
{
return
inviteMails
.
get
(
row
.
getId
());
}
return
null
;
}
public
void
setInviteMail
(
String
inviteMail
)
{
GroupMembership
row
=
memberlist
.
getRowData
();
if
(
row
!=
null
)
{
inviteMails
.
put
(
row
.
getId
(),
inviteMail
);
}
}
}
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/shop/InviteAcceptView.java
View file @
4f4df5f
...
...
@@ -27,6 +27,7 @@ import javax.inject.Named;
import
javax.servlet.ServletException
;
import
javax.servlet.http.HttpServletRequest
;
import
fi.codecrew.moya.web.cdiview.user.AuthView
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -50,6 +51,9 @@ public class InviteAcceptView extends GenericCDIView {
@Inject
private
UserView
userview
;
@Inject
private
AuthView
authView
;
private
EventUser
user
;
private
boolean
done
=
false
;
...
...
@@ -60,6 +64,8 @@ public class InviteAcceptView extends GenericCDIView {
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
InviteAcceptView
.
class
);
private
boolean
placeGroupMembership
=
false
;
public
void
initView
()
{
if
(
membership
==
null
)
{
...
...
@@ -72,6 +78,10 @@ public class InviteAcceptView extends GenericCDIView {
}
else
if
(
user
==
null
)
{
user
=
new
EventUser
(
new
User
(),
null
,
permbean
.
getCurrentUser
());
userview
.
setUser
(
user
);
if
(
membership
.
getPlaceReservation
()
!=
null
)
setPlaceGroupMembership
(
true
);
super
.
beginConversation
();
}
...
...
@@ -89,6 +99,14 @@ public class InviteAcceptView extends GenericCDIView {
EventUser
eu
=
userbean
.
acceptInviteForExistingUser
(
username
,
password
,
token
);
if
(
eu
!=
null
)
{
login
(
username
,
password
);
this
.
username
=
null
;
this
.
password
=
null
;
super
.
addFaceMessage
(
"invite.userCreateSuccessfull"
);
if
(
isPlaceGroupMembership
())
return
"/place/myGroups.jsf"
;
else
return
"/index.jsf"
;
}
this
.
username
=
null
;
this
.
password
=
null
;
...
...
@@ -102,11 +120,11 @@ public class InviteAcceptView extends GenericCDIView {
String
existingUsername
=
null
;
if
(
req
.
getUserPrincipal
()
!=
null
)
{
if
(
User
.
ANONYMOUS_LOGINNAME
.
equals
(
req
.
getUserPrincipal
().
getName
())
)
{
if
(
req
.
getUserPrincipal
()
!=
null
)
{
try
{
req
.
logout
();
}
catch
(
ServletException
e
)
{
logger
.
warn
(
"Logging out
anonymous
failed!"
,
e
);
logger
.
warn
(
"Logging out
previous user
failed!"
,
e
);
}
}
else
{
existingUsername
=
req
.
getUserPrincipal
().
getName
();
...
...
@@ -127,6 +145,16 @@ public class InviteAcceptView extends GenericCDIView {
user
.
getUser
().
resetPassword
(
userview
.
getPassword
());
if
(
userbean
.
createFromInviteToken
(
user
,
token
))
{
login
(
user
.
getUser
().
getLogin
(),
userview
.
getPassword
());
super
.
addFaceMessage
(
"invite.userCreateSuccessfull"
);
done
=
true
;
user
=
null
;
if
(
isPlaceGroupMembership
())
return
"/place/myGroups.jsf"
;
else
return
"/index.jsf"
;
}
super
.
addFaceMessage
(
"invite.userCreateSuccessfull"
);
done
=
true
;
...
...
@@ -174,4 +202,11 @@ public class InviteAcceptView extends GenericCDIView {
this
.
password
=
password
;
}
public
boolean
isPlaceGroupMembership
()
{
return
placeGroupMembership
;
}
public
void
setPlaceGroupMembership
(
boolean
placeGroupMembership
)
{
this
.
placeGroupMembership
=
placeGroupMembership
;
}
}
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/shop/InviteView.java
View file @
4f4df5f
...
...
@@ -24,6 +24,7 @@ import javax.faces.context.ExternalContext;
import
javax.faces.context.FacesContext
;
import
javax.inject.Named
;
import
fi.codecrew.moya.model.GroupMembership
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -39,6 +40,9 @@ public class InviteView extends GenericCDIView {
private
String
invitemail
;
private
GroupMembership
inviteGm
;
@EJB
private
transient
UserBeanLocal
userbean
;
...
...
@@ -68,7 +72,9 @@ public class InviteView extends GenericCDIView {
path
.
append
(
"/"
)
.
append
(
FacesContext
.
getCurrentInstance
().
getExternalContext
().
getContextName
())
.
append
(
"/user/acceptInvite.jsf?token={0}"
);
boolean
ret
=
userbean
.
invite
(
invitemail
,
path
.
toString
());
boolean
ret
=
userbean
.
invite
(
invitemail
,
path
.
toString
(),
inviteGm
);
if
(
ret
)
{
this
.
addFaceMessage
(
"invite.successfull"
);
invitemail
=
""
;
...
...
@@ -87,4 +93,13 @@ public class InviteView extends GenericCDIView {
return
invitemail
;
}
public
GroupMembership
getInviteGm
()
{
return
inviteGm
;
}
public
void
setInviteGm
(
GroupMembership
inviteGm
)
{
this
.
inviteGm
=
inviteGm
;
}
}
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/user/UserValidator.java
View file @
4f4df5f
...
...
@@ -65,6 +65,10 @@ public class UserValidator implements Serializable {
message
(
context
,
ui
,
"user.emailtooshortmessage"
,
EMAIL_MIN_LENGTH
);
}
if
(
userbean
.
userExistsByEmail
(
email
)
||
userbean
.
userExists
(
email
))
{
message
(
context
,
ui
,
"userview.userExistsByEmail"
);
}
if
(!
permbean
.
hasPermission
(
UserPermission
.
MODIFY
)
&&
(
email
==
null
||
email
.
indexOf
(
'@'
)
==
-
1
))
{
message
(
context
,
ui
,
"userview.invalidEmail"
);
}
...
...
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n.properties
View file @
4f4df5f
...
...
@@ -426,3 +426,6 @@ user.createdmessage=K\u00E4ytt\u00E4j\u00E4tunnus on luotu onnistuneesti.
product.vat
=
ALV-%
productFlag.CREATE_NEW_PLACE_WHEN_BOUGHT
=
Luo uusi paikka ostettaessa
submenu.neomap.view
=
Paikkakartta
user.cancelInvite
=
Peruuta kutsu
user.invite.placeInvite.header
=
Liit
\u
00E4 paikka itsellesi
userview.userExistsByEmail
=
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n_en.properties
View file @
4f4df5f
...
...
@@ -1559,7 +1559,7 @@ usertitle.managingUser = Shop
userview.header
=
Users
userview.invalidEmail
=
Invalid email address
userview.loginstringFaulty
=
Username has to be atleast 2 characters long!
userview.loginstringFaulty
=
Username has to be atleast 2 characters long
\
!
userview.oldPasswordError
=
Invalid password!
userview.passwordTooShort
=
Password has to be atleast {0} characters long
\!
userview.passwordsChanged
=
Password changed
...
...
@@ -1623,3 +1623,6 @@ user.emailAgain=Email (again)
required
=
Required
usercart.showoverview
=
submenu.neomap.view
=
Map
user.cancelInvite
=
Cancel invite
user.invite.placeInvite.header
=
Receive sendet place
userview.userExistsByEmail
=
Email already exists
\!
You may already have an account.
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n_fi.properties
View file @
4f4df5f
...
...
@@ -1604,3 +1604,6 @@ user.emailsunmatch=S\u00E4hk\u00F6postiosoitteet eiv\u00E4t t\u00E4sm\u00E4\u00E
user.emailAgain
=
S
\u
00E4hk
\u
00F6posti (uudelleen)
required
=
Vaaditaan
submenu.neomap.view
=
Paikkakartta
user.cancelInvite
=
Peruuta kutsu
user.invite.placeInvite.header
=
Vastaanota l
\u
00E4hetetty paikka
userview.userExistsByEmail
=
S
\u
00E4hk
\u
00F6posti on jo olemassa. Sinulla saattaa jo olla tunnus j
\u
00E4rjestelm
\u
00E4ss
\u
00E4.
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