-
After clone project run locally (with activator)
publish-local -
Add module dependency to
build.sbt:
"co.wds" %% "usermgmt" % "1.0-SNAPSHOT"
-
Add repository for deadbolt plugin to
build.sbtin main application:resolvers += Resolver.url("Objectify Play Repository", url("http://deadbolt.ws/releases/"))(Resolver.ivyStylePatterns) -
For downloading modules routes add to routes file the following line:
-> / usermgmt.Routes
-
Make sure you have a database named
usermgmt -
In main application add empty file
1.sqlin evolution.usermgmt -
Use
@Dynamicannotation. Note: addimport static ximodels.usermgmt.Role.Names.*;to get Roles constants. If your method has annotated like@Dynamic(LOGGED_IN), then to method have access all logined users. Use annotation@Dynamic(ADMIN)for allow access only admins.
- To login use next credentials:
login: admin
password: password
- Change the password at
/administrationpage
Just add to your application.conf file line:
usermgmt.logo.text="My awesome app"
- Create your own scala template with
defaultContent: Htmlparameter and inject base template throw@defaultContentexpression
@(defaultContent: Html)
<!DOCTYPE html>
<html>
<head>
...
</head>
<body>
...
<div>@defaultContent</div>
...
</body>
</html>
- Implement pages.usermgmt.PageTemplate java interface for login (logout, administration) page like:
import pages.usermgmt.PageTemplate;
import play.twirl.api.Html;
...
private static PageTemplate createCustomTemplate(){
return new PageTemplate() {
@Override
public Html render(Html defaultContent) {
return myCustomTemplate.render(defaultContent);
}
};
}
where defaultContent injects into your own scala template
- Create (if necessary) Global class at default package and set your custom templates on app start:
import pages.usermgmt.PageTemplate;
import pages.usermgmt.LoginPageTemplateContainer;
import pages.usermgmt.LogoutPageTemplateContainer;
import pages.usermgmt.AdministrationPageTemplateContainer;
...
public class Global extends GlobalSettings {
@Override
public void onStart(Application app) {
PageTemplate customLoginTemplate = ...
PageTemplate customLogoutTemplate = ...
PageTemplate customAdministrationTemplate = ...
LoginPageTemplateContainer.getInstance().setPageTemplate(customLoginTemplate);
LogoutPageTemplateContainer.getInstance().setPageTemplate(customLogoutTemplate);
AdministrationPageTemplateContainer.getInstance().setPageTemplate(customAdministrationTemplate);
}
}

