• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PlayFramework 完整实现一个APP(十一)

java 搞代码 4年前 (2022-01-09) 18次浏览 已收录 0个评论

标签:class style log com http 使用 it src la

添加权限控制

1.导入Secure module,该模块提供了一个controllers.Secure控制器。

/conf/application.conf

# Import the secure module
module.secure=${play.path}/modules/secure

/conf/routes

# Import Secure routes
* / module:secure

2.在Post Comment User Tag控制器上添加标签

@With(Secure.class)public class Posts extends CRUD {
}

启动Server,访问 localhost:9000/admin,如果页面报错(或编译失败),参考上一章添加CRUD模块

3.添加权限控制

创建权限控制器 /controllers/Security.java

import models.*;public class Security extends Secure.Security { static boolean authenticate(String username, String password) { return User.connect(username, password) != null;
}
}

通过 localhost:9000/logout 退出登录,使用正确的用户名密码进行登录

4.添加登录页面

创建Admin Controller

@With(Secure.class)public class Admin extends Controller {
@Before static void setConnectedUser() { if(Security.isConnected()) {
User user = User.find("byEmail", Security.connected()).first();
renderArgs.put("user", user.fullname);
}
}
public static void index() {
render();
}
}

添加路由

# Administration
GET /admin/? Admin.index
* /admin module:crud

修改main.html

<ul id="tools">
<li>
<a href="@{Admin.index()}">Log in to write something</a>
</li>
</ul>

添加/views/admin.html

<!DOCTYPE html>
<html>
<head>
<title>Administration</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
#{get ‘moreStyles‘ /}
<link rel="stylesheet" type="text/css" media="screen"
href="@{‘/public/stylesheets/main.css‘}" />
<link rel="shortcut icon" type="image/png"
href="@{‘/public/images/favicon.png‘}" />
<script src="@{‘/public/javascripts/jquery-1.4.2.min.js‘}"></script>
<script src="@{‘/public/javascripts/jquery.tools-1.2.5.toolbox.expose.min.js‘}"></script>
</head>
<body id="admin">

<div id="header">
<div id="logo">
yabe. <span>administration</span>
</div>
<ul id="tools">
<li>
<a href="@{Secure.logout()}">Log out</a>
</li>
本文来源gao@daima#com搞(%代@#码@网& </ul>
</div>

<div id="main">
#{doLayout /}
</div>

<p id="footer">
Yabe is a (not so) powerful blog engine built with the
<a href="http://www.playframework.org">Play framework</a>
as a tutorial application.
</p>

</body>
</html>

添加/views/Admin/index.html

#{extends ‘admin.html‘ /}

Welcome ${user}!

5.添加角色

Security控制器重写check方法

static boolean check(String profile) { if("admin".equals(profile)) { return User.find("byEmail", connected()).<User>first().isAdmin;
} return false;
}

修改admin.html,显示用户是否有admin角色

<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="@{Posts.list()}">Posts</a>
</li>
<li class="${request.controller == ‘Tags‘ ? ‘selected‘ : ‘‘}">
<a href="@{Tags.list()}">Tags</a>
</li>
<li class="${request.controller == ‘Comments‘ ? ‘selected‘ : ‘‘}">
<a href="@{Comments.list()}">Comments</a>
</li>
<li class="${request.controller == ‘Users‘ ? ‘selected‘ : ‘‘}">
<a href="@{Users.list()}">Users</a>
</li>
#{/secure.check}
</ul>

#{doLayout /}
</div>

在Post、Tag、User、Comment控制器上添加标签,只有admin role的User才能访问 http://localhost:9000/admin/{####}

@Check("admin")@With(Secure.class)public class Posts extends CRUD {
}

以上就是PlayFramework 完整实现一个APP(十一)的内容,更多相关内容请关注搞代码(www.gaodaima.com)!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PlayFramework 完整实现一个APP(十一)

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址