Tag: devise原则

devise一次限制每个用户一个会话

我的应用程序正在使用Rails 3.0.4和Devise 1.1.7。 我正在寻找一种方法来阻止用户共享帐户,因为该应用程序是基于订阅的服务。 我一直在寻找一个多星期,但我仍然不知道如何实施解决scheme。 我希望有人已经实施了一个解决scheme,并指出我在正确的方向。 解决scheme (谢谢大家的答复和见解!) 在应用程序controller.rb before_filter :check_concurrent_session def check_concurrent_session if is_already_logged_in? sign_out_and_redirect(current_user) end end def is_already_logged_in? current_user && !(session[:token] == current_user.login_token) end 在重写Devise Sessions控制器的session_controller中: skip_before_filter :check_concurrent_session def create super set_login_token end private def set_login_token token = Devise.friendly_token session[:token] = token current_user.login_token = token current_user.save end 在迁移AddLoginTokenToUsers def self.up change_table "users" do […]

如何devise一个C / C ++库在许多客户端语言中可用?

我正在计划编写一个图书馆,这个图书馆应该可以在众多平台上被大量的人使用。 我有什么需要考虑devise它的权利? 为了使这个问题更具体,最后有四个“子问题”。 语言的select 考虑到所有已知的要求和细节,我总结出用C或C ++编写的库是最好的select。 我认为我的库的主要用法是用C,C ++和Java SE编写的程序,但我也可以考虑从Java ME,PHP,.NET,Objective C,Python,Ruby,bash脚本,等等…也许我不能瞄准所有的人,但是如果可能的话,我会去做的。 要求 在这里描述我的图书馆的全部目的是很有意义的,但是对于这个问题可能有一些重要的方面: 图书馆本身从小开始,但肯定会变得非常复杂,所以不能同时维护多个版本。 虽然大部分的复杂性都隐藏在图书馆里面 该库将构build一个内部使用的对象图。 图书馆的一些客户只会对特定对象的特定属性感兴趣,而其他客户则必须以某种方式遍历对象图 客户可能会更改对象,并且必须通知图书馆 该库可能会更改对象,并且必须通知客户端,如果它已经有该对象的句柄 该库必须是multithreading的,因为它将维护与其他几个主机的networking连接 尽pipe对图书馆的一些要求可能会同步处理,但是其中很多要求过长,必须在后台处理,并通知客户成功(或失败) 当然,不pipe答案是否符合我的具体要求,或者如果他们以一般的方式回答这个问题,对更广泛的观众来说,答案是可以接受的! 我的假设,迄今 以下是我在过去几个月收集的一些假设和结论: 在内部,我可以使用任何我想要的,例如C + +操作符重载,多重inheritance,模板元编程…只要有一个可移植的编译器来处理它(想想gcc / g ++) 但是我的界面必须是一个干净的C界面,不涉及名称修改 此外,我认为我的接口应该只包含函数,基本/原始数据types(也许指针)作为parameter passing和返回值 如果我使用指针,我想我应该只用它们将它们传回给库,而不是直接在引用的内存上操作 对于在C ++应用程序中的使用,我可能还会提供一个面向对象的接口(它也容易出现名称混乱,所以应用程序必须使用相同的编译器,或者以源代码forms包含库) 这在C#中的用法也是这样吗? 对于Java SE / Java EE中的使用,Java本地接口(JNI)适用。 我有一些关于它的基本知识,但我一定要仔细检查一下。 并不是所有的客户端语言都能很好地处理multithreading,所以应该有一个单线程与客户端交谈 对于在Java ME上的使用,没有像JNI那样的东西,但是我可能会使用嵌套的VM 对于在Bash脚本中的使用,必须有一个带有命令行界面的可执行文件 对于其他客户端语言,我不知道 对于大多数客户端语言来说,使用该语言编写适配器接口将会很不错。 我认为有一些工具可以为Java和其他一些自动生成 对于面向对象的语言,可以创build一个面向对象的适配器来隐藏这个库的接口是基于函数的,但是我不知道它是否值得 可能的子问题 这是可能的,可pipe理的努力,还是只是太多的可移植性? 有没有关于这种devise标准的好书/网站? 我的假设是否有错? […]

如何模仿材质devise凸起的button风格,即使是前棒棒糖(减去特殊效果)?

谷歌已经显示了一些很棒的方式, 这里的button显示在棒棒糖上。 我正在谈论凸起和平坦的button。 除了特殊效果(涟漪等),我怎样才能在前棒棒糖版本上模仿他们呢? 我正在谈论这个和这个 。 当然,在棒棒糖和以上,我想使用特殊效果。 我知道已经有多个(甚至很多)的post,但是我没有看到任何试图完全模仿它的post。

编写一个devise良好的asynchronous/非asynchronousAPI

我正面临着devise方法与执行networkingI / O(对于可重用的库)的问题。 我读过这个问题 c#5在APIdevise中等待/asynchronous模式 还有其他更接近我的问题。 所以,问题是,如果我想提供asynchronous和非asynchronous方法,我怎么devise这些? 例如,要公开一个方法的非asynchronous版本,我需要做类似的事情 public void DoSomething() { DoSomethingAsync(CancellationToken.None).Wait(); } 我觉得这不是一个好devise 我想build议(例如)如何定义私有方法,可以包装在公共的提供两个版本。

什么是deviseXML模式的最佳实践?

作为业余软件开发人员(我还在学术界),我已经为XML文档写了几个模式。 我经常碰到devise漏洞,导致看起来丑陋的XML文档,因为我不完全确定XML的语义是什么。 我的假设: <property> value </property> property = value <property attribute="attval"> value </property> 具有特殊描述符的属性,属性。 <parent> <child> value </child> </parent> 家长有一个具有“价值”价值的特征“孩子”。 <tag /> “标签”是一个标志,或者直接翻译成文本。 我不确定这一个。 <parent> <child /> </parent> “孩子”描述“父母”。 “孩子”是一个标志或布尔值。 我也不确定这个。 如果你想做一些类似于表示笛卡尔坐标的东西,就会产生歧义: <coordinate x="0" y="1 /> <coordinate> 0,1 </coordinate> <coordinate> <x> 0 </x> <y> 1 </y> </coordinate> 哪一个是最正确的? 根据我目前的XML模式devise的概念,我会倾向于第三个,但是我真的不知道。 简洁地描述如何有效地deviseXML模式的一些资源是什么?

C ++迭代器认为有害?

在今天的Boost图书馆大会上,“现代C ++devise”和Loki C ++图书馆的作者Andrei Alexandrescu就“迭代器必须去”( video , 幻灯片 )这个话题做了一个演讲,讨论迭代器为什么不好,他有一个更好的解决scheme。 我试图阅读演示幻灯片,但是我无法从中得到很多。 迭代器是坏的? 他的replace是否真的更好? C ++实现者会提出他的想法吗?

为什么C#成员名称不能与封闭types名称相同?

在C#中,下面的代码不能编译: class Foo { public string Foo; } 问题是:为什么? 更确切地说,我明白这不会编译,因为(我引用): 成员名称不能与其封闭types相同 好的。 我明白,我不会再做,我保证。 但我真的不明白为什么编译器拒绝采取与封闭types具有相同名称的任何字段。 什么是阻止我这样做的根本问题?

钻石标志在UML类图中表示什么?

考虑下面的两个图。 顶部在右端包含一个纯箭头,底部包含一个箭头,左端是菱形,右端是纯箭头。 伟大的书GoF有这两种图的用法。 我想了解钻石在第二种情况下表示的是什么,以及这两者中的哪一种给予Customer和Order之间更强的关联。 在这两种情况下, Customer类是否负责Order类的生命周期?

Rails的devise:设置密码重置令牌和redirect用户

在我的某个用例的应用程序中,我创build一个新用户(以编程方式设置密码),并向他们发送确认电子邮件。 我希望他们能够在确认后立即更改密码(无需进入系统生成的密码,我不想发送) 实际上,我想 1)系统用生成的密码创build一个新的用户帐户。 2)系统发送确认邮件。 3)用户点击确认,并redirectinput他们的密码(有效地发送到像下面的URL) <a href="http://localhost:3000/users/password/edit?reset_password_token=v5Q3oQGbsyqAUUxyqLtb">Change my password</a> 任何帮助/指针将是伟大的。

什么是ExtJS哲学? 单页面应用程序?

我需要使用ExtJs编写我的下一个项目。 这是一个很好的JavaScript库,但我不完全理解它背后的想法。 以文档页面为例。 我应该用extjs写我的web应用程序吗? 一个永远不会刷新的页面,一切都由AJAX完成? 你如何debugging这样的应用程序,如果得到正确的地方可能需要大量的“点击”和使用它。 您无法修复该错误并在浏览器中进行刷新以查看结果。 有什么build议么?