• 技术文章 >Java >java教程

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

    黄舟黄舟2016-12-23 16:51:37原创320
    标签: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模块

    219.png

    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>
    </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 {
    }

    220.png

    以上就是PlayFramework 完整实现一个APP(十一)的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:PlayFramework,APP
    上一篇:PlayFramework完整实现一个APP(十) 下一篇:PlayFramework完整实现一个APP(十二)
    大前端线上培训班

    相关文章推荐

    • 理解java8中java.util.function.*pojo反射新方法(附代码)• 浅析安卓app和微信授权登录及分享完整对接(代码分享)• 教你一招搞定时序数据库在Spring Boot中的使用• 一招教你使用java快速创建Map(代码分享)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网