Tag: 设计

不活动/空闲后自动注销

如何在rails应用程序中设置如果任何用户空闲30分钟或特定时间段,他应该自动退出。 可以任何人给出任何解决方案。 我正在使用设计进行身份validation。 任何帮助表示赞赏。

Rails设计自定义注册和登录同一页面问题

在我的Ruby应用程序中,我使用’devise’gem进行身份validation,但我想自定义视图,在自定义每个视图后生成设计视图并将它们作为部分保存在devise文件夹中,因为我想要将它们渲染到另一种观点。 所以我的问题是, new/sessions正在运行,但是当我尝试注册时,表单发布似乎存在问题。 请在此处查看登录表单 我阅读了很多关于如何在设计文档中自定义布局的内容,但是我对如何实现使表单渲染在devise views文件夹之外工作感到困惑。

登录或注册后设计重定向回原始位置?

在这里,我使用Devise Gem进行身份validation。 如果有人想要在没有登录的情况下打开页面,那么它会重定向到sign_in页面,然后在登录后返回到用户尝试打开的页面。 我使用Redise循环和Devise after_sign_in_path_for链接来解决我的问题,但它对我不起作用。 def after_sign_in_path_for(resource) params[:next] || super end 它不会将我重定向到我要打开的页面。 例如:如果我想打开“127.0.0.1:3000/post/2/edit”,登录后不会返回此页面。

具有设计路径的用户和管理员之间的唯一ID

我已经安装了Devise并使用本教程中的选项1创建了用户和管理员https://github.com/plataformatec/devise/wiki/How-To:-Add-an-Admin-role 现在我需要一些帮助。 添加管理员时,它会创建一个不同的表,并且可能会出现管理员和普通用户具有相同ID的情况。 那么我究竟如何从用户和管理员那里获取信息呢? 比方说,我想显示所有用户? 我是否必须遍历users表然后遍历admins表? 或者如果我正在显示post。 我如何知道要查找哪个表来获取用户或管理员信息? 我知道我可以在users表中添加一个角色列,但我想避免这种情况。 我希望这有道理哈哈

通过FactoryGirl定义中的rolify设置角色

我正在使用设计,rolify和cancan。 我也在使用rspec和FactoryGirl进行测试。 现在我正在进行一些测试,我想为这些测试定义具有不同角色的用户。 以下是我目前对使用FactoryGirl进行操作的猜测: FactoryGirl.define do factory :user do name ‘Test User’ email ‘example@example.com’ password ‘please’ password_confirmation ‘please’ # required if the Devise Confirmable module is used confirmed_at Time.now factory :admin do self.has_role :admin end factory :curator do self.has_role :curator end factory :super_admin do self.has_role :super_admin end end end 以下是我的一些测试似乎没有正确编写:require’pec_helper’ describe “Pages” do subject { […]

Rails – 与集成测试和Capybara失去会话 – CSRF相关?

我正在使用Rails 3.1.0.rc4,我正在与capybara的新类似DSL和Rspec进行集成测试(使用Devise身份validation) 我遇到的问题是,当我运行集成测试时,来自capybara的机架测试驱动程序似乎完全失去了用户的登录会话,事实上,会话似乎完全清除了。 经过几天的调试,我完全不知道为什么。 逐行通过中间件堆栈,我相信我已经将问题排除在导致这种情况的ActiveRecord::SessionStore中。 我在这里读到如果无法validationCSRF令牌,Rails将清除会话,这让我相信我的配置错误,并且由于某种原因,这个测试没有正确validationCSRF令牌。 这是我在/ initializers目录中的session_store.rb中的内容: MyApp::Application.config.session_store :active_record_store 知道有关铁路CSRF保护的人是否有任何线索可以解释为什么会这样? 此外,还有一些注意事项: 我试图测试的东西实际上在浏览器本身内工作,只有这一个测试正在放弃会话 在将操作URL提交到另一个服务器的表单后,会话似乎被删除。 我正在使用VCR gem来捕获测试中对此外部服务器的请求/响应,虽然我认为我已经将外部请求作为问题,但这可能与CSRF令牌没有进行身份validation直接相关,从而清理会话。 涉及登录/使用会话的其他测试不会丢弃会话 任何人都可以给我任何关于这里发生了什么的线索,以及为什么一个测试似乎随意地放弃了它的会话而对我失败了? 我做了很多调试,并尝试了我能想到的一切。

设计中的多个模型上的相同current_user

问题 我有一个User模型,以及inheritance自User模型的Volunteer模型: class User < ActiveRecord::Base end class Volunteer < User end 它们都保存在数据库中的同一个表中,但具有不同的控制器/路由。 路线是: devise_for :users …. devise_for :volunteers …. 这工作正常,花花公子,但我使用的授权系统依赖于current_user帮助器。 这对于志愿者来说是失败的,因为设计为志愿者模型创造了当前的志愿者。 我试过的是设置devise_for :volunteers, :singular => “user” ,这会创建一个指向用户和志愿者的current_user,但现在的问题是志愿者的路线搞砸了。 题 所以我的问题是,有没有办法获得current_user助手,引用除用户以外的其他模型?

如何在AJAX中优雅地处理设计401的状态?

设计使用before_filter :authenticate_user! 仅限制对经过身份validation的用户的访问。 当未经身份validation的用户无论如何都试图访问受限制的页面时,设计会自动导致重定向到登录页面。 因此,尝试打开http:// localhost:3000 / users / edit将导致重定向到http:// localhost:3000 / users / sign_in 。 现在,如果我将链接http:// localhost:3000 / users / edit定义为:remote => true ,则devise将仅通过JS发出401状态代码 。 我如何优雅地处理这种情况并在覆盖或重定向中显示登录对话框, 因为非远程变体会这样做? 设计是否为我需要激活的情况提供默认策略?

基于电话号码的移动应用程序的Devise身份validation

我们都知道Devise是在基于rails的应用程序上实现身份validation的事实标准。 默认情况下,它使用电子邮件作为ID,但也允许您使用用户名。 它还具有“可确认”模块,您可以通过发送电子邮件并单击链接来validation电子邮件来确认电子邮件地址。 我正在寻找类似的电话号码 – 基本上接受电话号码作为主要ID而不是电子邮件,然后通过像Twilio这样的用户的号码发送作为短信的validation码来确认电话号码,然后让用户通过输入代码确认它(甚至让用户点击生成的链接来validation就像他们对电子邮件的处理一样) 我之所以希望有一个流行的设计模块用于此function,是因为它似乎大多数移动社交应用程序接受电话号码并确认现在的数字。 必须有人认为这是一个问题,并为此开源了一个模块。 但是我找不到任何受欢迎的。 实际上,确切地说,这里是我发现的唯一三个相关链接: https://github.com/giano/devise_sms_activable https://github.com/baranov-sv/devise_sms_confirmable Rails注册用户使用电话号码和确认 它们都没有导致工作解决方案(我已经尝试过devise_sms_activable但是它不适用于rails 4,而且我对低数量的星星很警惕)所以我想问一下是否有任何可行的解决方案。 我错过了什么吗? 这个主题是在Devise开发者社区中提出的吗? 我对解决方案很好奇,但如果没有,我至少会理解为什么这个问题不容易获得。 [UPDATE] 我认为这个问题可能有点误导。 虽然我可以自己制作它,但我不喜欢重新发明轮子。 基本上我对这个问题的意图是: 如果有任何包这样做(就像所有模块,如确认,token_authentcatable等等。也许甚至不是一个Devise模块,它可能完全是另一回事) 或者,如果没有这样的预先构建的解决方案,为什么没有这样的解决方案。 我无法理解为什么没有这样的解决方案,当每个人都这样做时我都能找到。 当我得到#1或#2的回答时,我会很乐意接受。 谢谢!

在Rails中,是否可以限制谁可以使用API​​登录谷歌?

是否可以仅允许某些Google帐户登录? 例如myname@mycompany.com是通过谷歌主机(他们实际上是谷歌帐户)。 我希望只有@mycompany用户才能登录这可能吗? 你用devise或google api做到这一点吗? 谢谢 :)