首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Luminus数据库访问

Luminus数据库访问
EN

Stack Overflow用户
提问于 2015-06-12 00:21:24
回答 1查看 249关注 0票数 2

我遵循了luminusweb.net网站上的大部分教程,使用+h2新应用程序设置了一个数据库系统。我目前所拥有的内容反映了guestbook的设置,如教程所示。我现在想知道如何才能访问迁移up表中的特定条目。更具体地说,我正在尝试根据表中的条目限制对网页(登录系统)的访问。

EN

回答 1

Stack Overflow用户

发布于 2015-11-25 14:57:55

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

在这里你应该写一些查询,这里有一些关于Luminus website的例子。当您看到带有半列的参数时,这意味着当您在程序中调用这些查询时,您必须传递一个带有这些参数的映射。例如:如果您有这样的查询:

代码语言:javascript
复制
-- 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;

呼叫声:

代码语言:javascript
复制
(db/accounts_for_user {:email "laurent@test.com"})

将返回如下的延迟序列:

代码语言:javascript
复制
[{"account_name":"account1","admin":false},
{"account_name":"account2","admin":true},
{"account_name":"account2","admin":true}]

然后,如果您想根据数据库中的内容限制对特定页面的访问,有几个选择。Buddy auth library提供了一些选项,最容易使用的是会话选项。首先,当用户输入正确的密码时,在任何请求中都要将他们的标识符注入:session :identity。例如

代码语言:javascript
复制
(-> (redirect "/accounts-list")
    (assoc :session {:identity "user@test.com"}))

identity参数将存在于每个请求中,直到会话终止(默认情况下为30分钟)或被覆盖为止。在页面中,您可以对请求测试buddy.auth/authenticated?,如果返回false,则重定向到错误页面或任何您喜欢的页面。我目前正在为使用Luminus的when应用程序编写教程,我会在这个答案可用时更新它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30786241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档