标签: clearance

删除或覆盖由超类或mixin添加的ActiveRecord验证

我在我的Rails应用程序中使用Clearance进行身份验证.该Clearance::User混入增加了一些验证的到我的User模型,但有这些,我想删除或覆盖一个.这样做的最佳方式是什么?

有问题的验证是

validates_uniqueness_of :email, :case_sensitive => false
Run Code Online (Sandbox Code Playgroud)

这本身并不坏,但我需要补充一下:scope => :account_id.问题是如果我将它添加到我的User模型中

validates_uniqueness_of :email, :scope => :account_id
Run Code Online (Sandbox Code Playgroud)

我得到了两个验证,而且Clearance添加的一个比我的更严格,所以我没有效果.我需要确保只有我的运行.我该怎么做呢?

ruby validation ruby-on-rails clearance

21
推荐指数
4
解决办法
1万
查看次数

'current_user'在rails_admin中未定义且带有许可

我一直在使用rails_admin v0.7.0和清除gem这一点.我今天尝试将rails_admin更新为v1.0,但是我得到了一个未定义的变量或方法错误current_user.在v0.7.0中它似乎RailsAdmin::MainController继承自ApplicationController,而在v1.0中它直接继承ActionController::Base,这可以解释current_user现在是未定义的(我相信current_userApplicationController用清除宝石定义的).但是,由于我没有找到其他人遇到这个问题,我想我一定是在遗漏一些东西.

我不是那个在这个应用程序上设置许可的人,但我认为我们不会做任何不符合标准的事情会影响到这一点.Clearance::Controller包括在内ApplicationController.没有特别的定义current_user.

配置/初始化/ rails_admin.rb

RailsAdmin.config do |config|

  # Popular gems integration

  ## Clearance
  config.authorize_with do |controller|
    unless current_user.admin?
      redirect_to(
        main_app.root_path,
        alert: "You are not permitted to view this page"
      )
    end
  end

  config.current_user_method { current_user }
end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails clearance rails-admin

5
推荐指数
1
解决办法
1457
查看次数

你如何邀请其他用户加入Clearance and Pundit的"团队"或"账户"或"项目"?

我有一个关于Clearance和Pundit的Rails应用程序,我正在尝试创建"团队","团队负责人"可以邀请其他用户加入他们的团队.我愿做类似的东西devise_invitable,但间隙.

以下是我的计划:

  1. 通过注册表单注册该站点的用户将自动分配一个唯一的团队ID,并成为"团队负责人".他们在表单上看不到此ID.(可以这样做的另一种方法是创建一个在注册时保存的唯一团队名称.)最好的方法是创建一个before_filter,用于在注册时分配团队ID和团队负责人吗?

  2. 团队ID或名称将是唯一的,每个用户只能属于一个团队.协会看起来像这样:

    球队

    has_many :users
    
    Run Code Online (Sandbox Code Playgroud)

    用户

    belongs_to :team
    
    Run Code Online (Sandbox Code Playgroud)
  3. 一旦这个"团队领导"创建帐户,此用户可以邀请其他用户通过填写用户#新形式类似于间隙注册表单(姓名,电子邮件等),这种形式会造成用户加入团队,将他们分配给团队领导团队.可以为它们分配一个随机密码以提供给Clearance,以便新用户通过验证.

  4. 一旦用户由团队负责人创建,他们将使用随机生成的密码保存在数据库中,并将Mailer发送给与标准清除密码重置邮件程序类似的受邀用户.它只是给他们一个通知,他们已被邀请加入团队,并提供重置密码然后登录的链接.它基本上是清除密码重置梅勒与不同的副本.

这是一个不错的策略还是有一个更广泛使用的模式,我缺少用ClearancePundit来解决这个问题?我从来没有用Rails做过这样的事情,所以我不知道这是否是一种使用Clearance的管道式磁带方式.

ruby ruby-on-rails user-accounts clearance pundit

5
推荐指数
1
解决办法
245
查看次数

黄瓜和清关:current_user步骤

我要做的是current_user在定义Cucumber步骤时使用(依赖)方法.我在我的项目中使用了Clearance.

首先我尝试使用sign_in但它没有用(我猜黄瓜世界不知道清除方法......).

那么如何让Cuckes识别current_usersign_in/ sign_out方法呢?

session integration-testing ruby-on-rails cucumber clearance

5
推荐指数
1
解决办法
1479
查看次数

Facebook使用Clearance认证Rails应用程序?

我正在编写一个Rails 3.1应用程序,使用Clearance for auth.我想添加标准的Facebook身份验证:允许用户继续直接注册/认证(使用Clearance)或通过FB注册; 如果他们通过FB登录/注册并且我们已经拥有相关电子邮件地址的帐户,请合并帐户.

有很好的文档可以使用OmniAuth/Devise,但我没有找到类似的清除.那里有(积极维护的)宝石在这里提供帮助,甚至只是教程吗?到目前为止我发现的最好的是BlueLightSpecial,但是它和FB Connect使用的它不再是主动维护的.

facebook ruby-on-rails clearance ruby-on-rails-3

4
推荐指数
2
解决办法
1492
查看次数

rails 4和thinkbot / clearance-向用户模型添加字段

我是一个相对较新手,因此非常感谢您的协助。

我正在使用带有Clearance gem的Rails 4.2进行身份验证。我希望有人能描述覆盖控制器以在sign_up表单上包含自定义属性的最佳实践。

我已经阅读了很多建议,其中包含各种建议,其中许多来自以前版本的不使用strong_parameters的rails。

如果有人可以简要介绍我需要超越的方法(user_params / user_from_params / etc),我将不胜感激。我可以通过定义只包含@user = User.new的新“ new”方法和使用.permit的新“ user_params”方法来使事情正常运行,但是我担心在user_from_params中绕过的默认代码。

任何有关最佳实践的建议都很棒!

谢谢

clearance strong-parameters ruby-on-rails-4

3
推荐指数
1
解决办法
1021
查看次数

如何向Clearance gem添加privleges/roles?

我有基本的清关设置 -

rails generate clearance:install
Run Code Online (Sandbox Code Playgroud)

rails generate clearance:views
Run Code Online (Sandbox Code Playgroud)

在我的admin_controller中,我有

before_filter :authorize
Run Code Online (Sandbox Code Playgroud)

这可以确保用户已登录.如何为用户设置"admin"权限,并确保用户在允许用户进入管理控制器之前拥有权限?

有更好的解决方案吗?

谢谢!

安德鲁

authentication gem ruby-on-rails clearance

3
推荐指数
1
解决办法
1268
查看次数

Rails:强制新记录的特定 id(或更改现有的 id)

由于在我们的 Rails 应用程序中删除用户的错误,我试图将另一个用户记录强制转换为旧记录 ID。

$ rails console
> User.find(2)
ActiveRecord::RecordNotFound: Couldn't find User with 'id'=2
> replacer = User.find(5)
=> #<User id: 5, created_at: [omitted for brevity ...] >
replacer.id = 2
=> 2
replacer.save
=> true
> User.find(2)
ActiveRecord::RecordNotFound: Couldn't find User with 'id'=2
> User.find(5)
ActiveRecord::RecordNotFound: Couldn't find User with 'id'=5
> replacer
=> #<User id: 2, created_at: [omitted for brevity ...] >
> replacer.valid?
=> true
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

ruby-on-rails clearance ruby-on-rails-4

3
推荐指数
1
解决办法
2836
查看次数