import play.*;
import play.mvc.*;
+@Check("admin")
@With(Secure.class)
public class Partys extends CRUD {
}
static boolean authenticate(String username, String password) {
return User.connect(username, password) != null;
}
-
+
+ static void onDisconnected() {
+ Application.index();
+ }
+
+ static void onAuthenticated() {
+ Admin.index();
+ }
+
+ static boolean check(String profile) {
+ if("admin".equals(profile)) {
+ return User.find("byEmail", connected()).<User>first().isAdmin;
+ }
+ return false;
+ }
+
}
import play.*;
import play.mvc.*;
-
+@Check("admin")
@With(Secure.class)
public class Users extends CRUD {
}
--- /dev/null
+#{extends 'admin.html' /}
+#{set 'moreStyles'}
+ <link rel="stylesheet" type="text/css" media="screen"
+ href="@{'/public/stylesheets/crud.css'}" />
+#{/set}
+
+<div id="crud">
+
+ #{if flash.success}
+ <div class="crudFlash flashSuccess">
+ ${flash.success}
+ </div>
+ #{/if}
+ #{if flash.error || error}
+ <div class="crudFlash flashError">
+ ${error ?: flash.error}
+ </div>
+ #{/if}
+
+ <div id="crudContent">
+ #{doLayout /}
+ </div>
+
+</div>
</div>
<div id="main">
+
+ <ul id="adminMenu">
+ <li class="${request.controller == 'Admin' ? 'selected' : ''}">
+ <a href="@{Admin.index()}">My posts</a>
+ </li>
+ #{secure.check 'admin'}
+ <li class="${request.controller == 'Posts' ? 'selected' : ''}">
+ <a href="@{Partys.list()}">Parties</a>
+ </li>
+ <li class="${request.controller == 'Users' ? 'selected' : ''}">
+ <a href="@{Users.list()}">Users</a>
+ </li>
+ #{/secure.check}
+ </ul>
#{doLayout /}
</div>
# For example, for French create a messages.fr file
#
Partys=Parties
+
+secure.username=Your email:
+secure.password=Your password:
+secure.signin=Log in now
--- /dev/null
+@import url(main.css);
+
+html, body {
+ background: #F0F0F0;
+ font-family: 'Lucida grande', verdana, sans-serif;
+}
+
+#login {
+ width: 500px;
+ margin: 50px auto;
+ text-align: center;
+}
+
+#login h1 {
+ font-weight: bold;
+ color: #111;
+}
+
+#login form {
+ border: 10px solid #ccc;
+ background: #fff;
+ padding: 10px;
+ text-align: left;
+}
+
+#login form p {
+ margin: 3px;
+}
+
+#username-field label, #password-field label {
+ display: block;
+ width: 150px;
+ float: left;
+ text-align: right;
+ margin-right: 5px;
+ color: #333;
+ font-size: 15px;
+}
+
+#username-field input {
+ width: 200px;
+ font-size: 13px;
+}
+
+#password-field input {
+ width: 150px;
+ font-size: 13px;
+}
+
+#remember-field input {
+ float: left;
+ margin-left: 155px;
+}
+
+#remember-field label {
+ float: left;
+ padding-left: 3px;
+}
+
+#username-field {
+ margin-top: 10px !important;
+}
+
+#password-field {
+ margin-top: 10px !important;
+}
+
+#remember-field {
+ margin-top: 10px !important;
+ font-size: 12px;
+ color: #666;
+ display: block;
+}
+
+#signin-field input {
+ margin-left: 155px;
+ margin-top: 10px;
+}
+
+#login .error, #login .success {
+ color: #fff;
+ font-size: 12px;
+ text-align: center;
+ margin-bottom: 10px;
+ padding: 5px;
+}
+
+#login .error {
+ background: #c00 !important;
+}
+
+#login .success {
+ background: #008800 !important;
+}