Database Luminus数据库访问

Database Luminus数据库访问,database,login,clojure,migration,luminus,Database,Login,Clojure,Migration,Luminus,我已经学习了luminusweb.net网站上的大部分教程,使用+h2新应用程序设置了一个数据库系统。我目前所做的是镜像留言簿设置,如教程所示。我现在想知道如何访问migrations up表中的特定条目。更具体地说,我试图根据表中的条目限制对网页(登录系统)的访问。迁移文件的目的是在数据库中创建表。要访问这些表,您必须在以下文件中写入查询:your_project>resources>sql>querys.sql 这里您应该编写查询,上面有几个示例。当您看到带有半列的参数时,这意味着您在程序中

我已经学习了luminusweb.net网站上的大部分教程,使用+h2新应用程序设置了一个数据库系统。我目前所做的是镜像留言簿设置,如教程所示。我现在想知道如何访问migrations up表中的特定条目。更具体地说,我试图根据表中的条目限制对网页(登录系统)的访问。

迁移文件的目的是在数据库中创建表。要访问这些表,您必须在以下文件中写入查询:your_project>resources>sql>querys.sql

这里您应该编写查询,上面有几个示例。当您看到带有半列的参数时,这意味着您在程序中调用这些查询时必须传递带有这些参数的映射。例:如果您有此查询:

-- name: accounts_for_user
-- retrieve all accounts a user has access to and the associated rights
SELECT account_name, admin
FROM accounts_users
WHERE email = :email;
电话:

(db/accounts_for_user {:email "laurent@test.com"})
将返回如下所示的惰性序列:

[{"account_name":"account1","admin":false},
{"account_name":"account2","admin":true},
{"account_name":"account2","admin":true}]
然后,如果您想根据数据库中的内容限制对特定页面的访问,有几个选项。提供了一些选项,最容易使用的是会话1。首先,当用户输入正确的密码时,您可以在任何请求中将其标识符插入:session:identity。比如说

(-> (redirect "/accounts-list")
    (assoc :session {:identity "user@test.com"}))
标识参数将出现在每个请求中,直到会话结束(默认情况下为30分钟)或您覆盖它。在页面中,您可以对请求进行测试
buddy.auth/authenticated?
,如果返回false,则重定向到错误页面或任何您喜欢的页面。我目前正在为使用Luminus的webapps编写教程,我会在答案可用时更新它