Tag: 设计

正确配置devise_ldap_authenticatable

我的Rails应用程序(使用Devise + Devise LDAP Authenticatable)和我正在尝试与之通信的Active Directory服务器存在一些连接问题。 我已经能够使用以下命令成功执行绑定并使用ldapsearch进行搜索: ldapsearch -H ldap://ad.example.com:389 -b “ou=dept,ou=Users,ou=company,dc=example,dc=com” -D “me@example.com” -W “&(objectClass=organizationalPerson)(objectClass=Person))” mail 既然这样可行,我假设我的devise_ldap_authenticatable配置存在问题,如下所示: development: host: ad.example.com port: 389 attribute: mail base: ou=dept,ou=Users,ou=company,dc=example,dc=com objectClass: organizationalPerson objectClass: Person ssl: false 使用Wireshark我能够从成功的绑定/搜索(CLI)和失败的绑定/搜索(Rails)中捕获流量。 成功绑定正确地发送电子邮件地址作为bindRequest一部分( LDAPMessage bindRequest(1) “me@example.com” simple )但来自Rails应用程序的bindRequest看起来像LDAPMessage bindRequest(1) “” simple 是否有人能够发现我的配置明显的问题? 任何人都可以将我的ldapsearch命令转换为正确的YAML配置吗?

设计身份validation – devise_error_messages! 在一个视图中导致nil的“未定义的方法`错误”:NilClass

devise_error_messages! 在一个视图中导致 undefined method ‘errors’ for nil:NilClass render :new后render :new create方法中的render :new 。 这是在我从“Devise :: RegistrationsController”而不是“ApplicationController”inheritanceRegistrationsController后开始发生的。 “新”方法的初始呈现不会导致任何exception。 重写注册控制器: class RegistrationsController ex flash[:alert] = ex.message render :new end end end 视图registrations / new.html.erb: resource_name, :url => registration_path(resource_name)) do |f| %> * * * * –

在Heroku Devise的生产模式中,符合要求的邮件无法发送

用户创建和身份validation我使用了devise gem 。 这在本地机器的开发模式下完美运行。 但是,当我尝试在heroku上执行sign up确认邮件无法发送。 使用ruby-2.0.0-p353 , Rails 4.1.1 , devise 3.3.0 这是我设置的代码。 配置/环境/ development.rb Rails.application.configure do config.cache_classes = false config.eager_load = false config.consider_all_requests_local = true config.action_controller.perform_caching = false config.action_mailer.raise_delivery_errors = false config.active_support.deprecation = :log config.active_record.migration_error = :page_load config.assets.debug = true config.action_mailer.default :charset => “utf-8” config.assets.raise_runtime_errors = true config.action_mailer.default_url_options = { :host => ‘localhost:3000’ […]

Rails 3.2 Omniauth Devise – 添加密码 – 跳过当前密码

我正在使用Omniauth允许用户通过Facebook,Twitter和Google登录(并创建帐户)。 但是,如果用户决定不再使用这些服务,但继续使用他们的帐户,他们会想要添加密码。 如何在不输入current password情况下让用户为其帐户添加current password ?* 当我让用户转到edit_user_registration_path(@user) ,他们会看到以下表单: = form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put, name: ‘validation’}) do |f| = devise_error_messages! = f.label :email, class: ‘block’ = f.email_field :email, class: ‘large’ %span.infobar Keep this here unless you’d like to change your email = f.label :password, class: ‘block’ = f.password_field :password, class: ‘large’ […]

rails,用户在编辑个人资料后退出?

我想知道为什么用户在编辑他们的个人资料后会继续退出? 我的更新function是 def update flash[:notice] = “what is params[id]”, params[:id] @user = User.find(params[:id]) if @user.update_attributes(params[:user]) #flash[:success] = “Profile updated” sign_in @user redirect_to @user else render ‘edit’ end end params id正确传递,并且我的数据库上的所有内容都正确更新。 我在users/edit.html.erb是 Update your profile {:multipart => true} do |f| %> “btn btn-large btn-primary”, :style =>”display:block;” %> “image_avatar”) if @user.image? %> “upload_button” %> 我正在使用devise gem ,但这个编辑没有使用设计路线(我正在使用设计注册)。 […]

我如何使用Rails和Devise重定向到不同的注销路径

我正在使用rails3和gem devise,我有两个角色管理员和客户,我想要用户之后 注销管理员应该重定向到不同的路径,客户应该重定向到不同的路径 退出时……

Rails 4具有角色的身份validation模型

我是Rails世界的初学者,所以希望我能在这里找到答案。 我正在开发的项目必须具有角色的用户授权,适用于简单用户和管理员。 使用管理员权限,我希望能够为简单用户重置密码或为其添加角色。 我试图将Devise与cancancangem一起使用,但不幸的是,它无法使其工作,我不确定这是否可行。 所以我的问题是你会建议哪些gem有这样的行为。 或者从头开始更简单? 谢谢您的回答。

实施安全问题

我正在使用设计进行登录过程。 现在我的要求是: *用户将在注册期间输入一些问题的答案。 当用户使用他的电子邮件和密码登录时,他将被问及这些安全问题。 如果答案是正确的,他将被定向到仪表板,否则如果他没有回答(3分中的2分),那么该帐户将被锁定。* 有没有简单的方法在Rails中实现这个MFA? 提前致谢..

Devise + Omniauth Facebook重定向到注册

我已经按照https://github.com/plataformatec/devise/wiki/OmniAuth:-概述的指南 第一轮它validation了我,签了我,并把我救了db。 我清除了浏览器历史记录并测试了其他用户。 它需要新用户登录Facebook页面,登录后会自动将其重定向到 http://localhost:3000/users/sign_up#_=_ 并且不签名或保存到DB。 有任何想法吗? 路线 get “static/home” devise_for :users, :controllers => { :omniauth_callbacks => “users/omniauth_callbacks” } resources :users root ‘static#home’ User.rb class User [:facebook] def self.from_omniauth(auth) where(auth.slice(:provider, :uid)).first_or_create do |user| user.email = auth.info.email user.password = Devise.friendly_token[0,20] user.name = auth.info.name # assuming the user model has a name #user.image = auth.info.image # assuming […]

Rails,Devise:覆盖RegistrationsController时current_user为nil

Rails 3.2.5,设计2.1 使用Devise对用户进行身份validation,并在创建新用户时遇到问题。 用户属于我在User模型中使用before_savefilter创建的帐户。 这工作正常,并有一段时间。 新代码需要用户的帐户信息作为create方法的一部分。 我依赖于请求中传递的参数,因此这不适合模型逻辑。 我已经覆盖了Devise :: RegistrationsController #create方法: class DeviseCustom::RegistrationsController < Devise::RegistrationsController def create super # Call Devise's create account = current_user.account # FAIL! (current_user is nil) account.partner_id = current_partner account.save! end end current_user为nil ,导致代码失败。 即使在出现故障的情况下,我也可以看到用户和帐户记录正在保存在数据库中 – 日志显示commit ,并且记录self.inspect显示我的所有上下文(params等等)仍然是当下。 我原以为current_user在这种情况下是可用的 – 获取我刚刚创建的用户的适当方法是什么? 谢谢