Articles of 设计

过滤能够使用Devise登录的用户

我有一个使用Devise进行身份validation的Rails应用程序。 用户属于经销商,我希望阻止属于残障经销商的用户能够登录。 是否有一种直接的方式来扩展Devise的身份validation查找器,以便它不包括已删除的经销商的用户? 也许在User上使用命名范围? 干杯 特里斯坦

运行规范时设计2.0’layout_by_resource’弃用警告

我正在使用Rails 3.2.0和Devise 2.0.0.rc2。 当我运行我的规范时,我收到一个弃用警告,当我正常启动Rails服务器时,我没有看到。 $ rake .DEPRECATION WARNING: Layout found at “devise” for DeviseController but parent controller set layout to :layout_by_resource. Please explicitly set your layout to “devise” or set it to nil to force a dynamic lookup. (called from realtime at /Users/foo/.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/benchmark.rb:310) 我的/app/controllers/application_controller.rb看起来像: class ApplicationController < ActionController::Base protect_from_forgery layout :layout_by_resource protected def layout_by_resource if […]

设计Flash消息不会显示

Devise在我的应用程序中运行得很好,除了来自devise.en.yml的flash消息没有显示在视图中。 我究竟做错了什么? 以下是我的注册页面视图我已经尝试了两个:alert和:notice但不工作。 先感谢您 Sign up resource_name,:url => registration_path(resource_name)) do |f| %> “devise/shared/links” %>

限制使用Google OAuth2.0登录Ruby上的特定白名单域名

编辑:我改变了我想要这样做的方式我认为我将使用MySQL表将设计登录列入白名单。 更改后的问题发布在此处: 使用Ruby限制使用Google OAuth2.0登录并设置为特定白名单表 好吧所以我试图在使用Devise和Omni-Auth2并且只有google的rails网站上获取我的ruby的受限身份validation。 到目前为止一切正常,但我只希望接受来自某个域的电子邮件。 无论如何我都愿意这样做。 我做了一些谷歌搜索,但似乎一些PHP用户比我更多的本地文件,可能是因为在本地使用谷歌API客户端? 我并不完全确定,因为我对编码一般都很陌生并且惊讶于我做到了这一点。 以下是一个示例: 使用Python的Google Oauth2.0:如何限制对特定域的访问? 在这里: 使用Google OAuth2.0将登录电子邮件限制为特定域名 两者似乎都使用“高清:域名”或类似的东西,但似乎有问题加上我不确定我会如何在我的应用程序中暗示它。 现在获取更多信息,我只使用gem devise和omniauth-google-oauth2( https://github.com/zquestz/omniauth-google-oauth2 )我觉得这是一种方法来处理这个gem,但仍然不完全确定。 如果我可以发布任何更多信息让我知道,任何帮助将不胜感激。 我的omniauth_callbacks_controller: class User::OmniauthCallbacksController “Google” sign_in_and_redirect @user, :event => :authentication else session[“devise.google_data”] = request.env[“omniauth.auth”] redirect_to new_user_registration_url end end end

设计:创建没有密码的用户

在我们的应用中,我们有普通用户。 但是,我们希望能够发出邀请,邀请某些人。 请注意,邀请直接与用户相关联,因为我们希望能够为这些用户设置某些设置。 (我们正在将客户从旧软件缓解到新软件)。 所以: 管理员应该能够创建新用户并更改其设置。 当有人使用他们的invitation_token跟踪链接时,他们应该会看到一个表单,他们可以为其帐户设置密码。 我遇到的问题是,如何启用管理员创建用户帐户,绕过正常的密码validation。 如果需要设置默认密码,这将是一个可怕的解决方案,因为这会产生严重的安全漏洞。 如何在没有提供密码的情况下在Devise中创建新用户?

Devise + Omniauth:未定义的方法`user_omniauth_authorize_path’

我一直在关注facebook的omn​​iauth + devise集成指南,当我点击链接登录facebook链接时,我一直收到此错误。 user_omniauth_authorize_path #<#:0x000000035ea490>未定义方法user_omniauth_authorize_path #<#:0x000000035ea490> 我已经仔细检查了指南中的代码,我似乎无法弄清楚问题是什么。 我的gemfile: source ‘https://rubygems.org’ gem ‘sendgrid’ gem ‘omniauth-facebook’ gem ‘gravatar’ gem ‘will_paginate’ gem ‘faker’ gem ‘devise’ # Bundle edge Rails instead: gem ‘rails’, github: ‘rails/rails’ gem ‘rails’, ‘4.2.6’ # Use postgresql as the database for Active Record gem ‘pg’, ‘~> 0.15’ # Use SCSS for stylesheets gem ‘sass-rails’, ‘~> […]

设计config.timeout_in无法正常工作

我无法在initializers / devise.rb中使用设计会话超时来超时会话 我设置 config.timeout_in = 1.minute 在initializers / devise.rb中,我与一个用户签约并保持闲置2分钟。 这假设使当前会话无效并再次提示询问用户凭据但会话永远不会消失。 我做错了什么或遗失了什么? 谢谢

用shoulda测试设计

我在使用shoulda测试设计方面遇到了一些困难: 2) Error: test: handle :index logged as admin should redirect to Daily page. (Admin::DailyClosesControllerTest): NoMethodError: undefined method `env’ for nil:NilClass devise (1.0.6) [v] lib/devise/test_helpers.rb:52:in `setup_controller_for_warden’ 我在test_helper中有这个: include Devise::TestHelpers 想法? 提前致谢, 克里斯提

使用Devise before_action:authenticate_user! 没有做任何事

我想要在我的Rails 4网站上的所有页面上登录。 在ApplicationController中我添加了before_action :authenticate_user! ,但它根本不做任何事情。 我试图添加相同的before_action :authenticate_user! 到另一个控制器,它工作正常。 我是否需要对ApplicationController执行其他操作,以使所有操作都需要登录(除了注册/登录)?

设计帐户解锁返回“解锁令牌无效”

我有一个标准的设计实现。 一切正常,除了帐户解锁(锁定工作正常)。 我可以使用unlock_access!在控制台中解锁帐户unlock_access! 。 我也可以使用User.find_by_unlock_token找到该帐户。 但是, UnlocksController#show – 具体来说, resource_class.unlock_access_by_token(params[:unlock_token]) – 返回“Unlock token is invalid”错误。 任何帮助将不胜感激。 谢谢!