From 4cd7a56333138de7438b2b59788f8732222845d7 Mon Sep 17 00:00:00 2001
From: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Date: Thu, 26 Dec 2013 10:20:36 +0200
Subject: [PATCH] Add  User#email uniq validation. Fixed confirmation for
 admin/users form

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
---
 app/controllers/admin/users_controller.rb |  2 +-
 app/models/user.rb                        |  2 +-
 app/views/admin/users/show.html.haml      | 10 ++++++++++
 3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb
index 426001e621..2f98162713 100644
--- a/app/controllers/admin/users_controller.rb
+++ b/app/controllers/admin/users_controller.rb
@@ -47,7 +47,7 @@ class Admin::UsersController < Admin::ApplicationController
     @user.admin = (admin && admin.to_i > 0)
     @user.created_by_id = current_user.id
     @user.generate_password
-    @user.confirm!
+    @user.skip_confirmation!
 
     respond_to do |format|
       if @user.save
diff --git a/app/models/user.rb b/app/models/user.rb
index 7767d266aa..f2cd554f9c 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -103,7 +103,7 @@ class User < ActiveRecord::Base
   # Validations
   #
   validates :name, presence: true
-  validates :email, presence: true, format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/ }
+  validates :email, presence: true, format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/ }, uniqueness: true
   validates :bio, length: { maximum: 255 }, allow_blank: true
   validates :extern_uid, allow_blank: true, uniqueness: {scope: :provider}
   validates :projects_limit, presence: true, numericality: {greater_than_or_equal_to: 0}
diff --git a/app/views/admin/users/show.html.haml b/app/views/admin/users/show.html.haml
index 5cfe4d553f..e79cdbb978 100644
--- a/app/views/admin/users/show.html.haml
+++ b/app/views/admin/users/show.html.haml
@@ -43,6 +43,16 @@
           %span.light Member since:
           %strong
             = @user.created_at.stamp("Nov 12, 2031")
+        - if @user.confirmed_at
+          %li
+            %span.light Confirmed at:
+            %strong
+              = @user.confirmed_at.stamp("Nov 12, 2031")
+        - else
+          %li
+            %span.light Confirmed:
+            %strong.cred
+              No
 
         %li
           %span.light Last sign-in at:
-- 
2.30.9