summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2015-06-10 03:23:28 -0400
committerRobert Speicher <rspeicher@gmail.com>2015-06-16 12:51:46 -0400
commit7f702b33b91ad40c2d2648a6700c964ad2f3a905 (patch)
tree3860fd6b210ff038fead82d5fac46ea6e0cea92f
parent122e83c32612951e52bffe0bf770cce3e35115d6 (diff)
downloadgitlab-ce-7f702b33b91ad40c2d2648a6700c964ad2f3a905.tar.gz
Add `dashboard` attribute to User model
cherry-picked
-rw-r--r--app/controllers/profiles/preferences_controller.rb1
-rw-r--r--app/models/user.rb7
-rw-r--r--db/migrate/20150610065936_add_dashboard_to_users.rb9
-rw-r--r--db/schema.rb8
-rw-r--r--spec/controllers/profiles/preferences_controller_spec.rb2
-rw-r--r--spec/models/user_spec.rb3
6 files changed, 25 insertions, 5 deletions
diff --git a/app/controllers/profiles/preferences_controller.rb b/app/controllers/profiles/preferences_controller.rb
index 8b2630d1648..e43a247f725 100644
--- a/app/controllers/profiles/preferences_controller.rb
+++ b/app/controllers/profiles/preferences_controller.rb
@@ -26,6 +26,7 @@ class Profiles::PreferencesController < Profiles::ApplicationController
def preferences_params
params.require(:user).permit(
:color_scheme_id,
+ :dashboard,
:theme_id
)
end
diff --git a/app/models/user.rb b/app/models/user.rb
index 8be0b622704..6ac287203b1 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -50,12 +50,13 @@
# bitbucket_access_token :string(255)
# bitbucket_access_token_secret :string(255)
# location :string(255)
+# public_email :string(255) default(""), not null
# encrypted_otp_secret :string(255)
# encrypted_otp_secret_iv :string(255)
# encrypted_otp_secret_salt :string(255)
# otp_required_for_login :boolean
# otp_backup_codes :text
-# public_email :string(255) default(""), not null
+# dashboard :integer default(0)
#
require 'carrierwave/orm/activerecord'
@@ -701,4 +702,8 @@ class User < ActiveRecord::Base
def can_be_removed?
!solo_owned_groups.present?
end
+
+ # User's Dashboard preference
+ # Note: When adding an option, it MUST go on the end of the array.
+ enum dashboard: [:projects, :stars]
end
diff --git a/db/migrate/20150610065936_add_dashboard_to_users.rb b/db/migrate/20150610065936_add_dashboard_to_users.rb
new file mode 100644
index 00000000000..2628e450722
--- /dev/null
+++ b/db/migrate/20150610065936_add_dashboard_to_users.rb
@@ -0,0 +1,9 @@
+class AddDashboardToUsers < ActiveRecord::Migration
+ def up
+ add_column :users, :dashboard, :integer, default: 0
+ end
+
+ def down
+ remove_column :users, :dashboard
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index aea0742cf3b..f063a4868b1 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 20150529150354) do
+ActiveRecord::Schema.define(version: 20150610065936) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -29,12 +29,13 @@ ActiveRecord::Schema.define(version: 20150529150354) do
t.boolean "twitter_sharing_enabled", default: true
t.text "restricted_visibility_levels"
t.boolean "version_check_enabled", default: true
- t.integer "max_attachment_size", default: 10, null: false
+ t.integer "max_attachment_size", default: 10, null: false
t.integer "default_project_visibility"
t.integer "default_snippet_visibility"
t.text "restricted_signup_domains"
t.boolean "user_oauth_applications", default: true
t.string "after_sign_out_path"
+ t.integer "session_expire_delay", default: 10080, null: false
end
create_table "broadcast_messages", force: true do |t|
@@ -495,12 +496,13 @@ ActiveRecord::Schema.define(version: 20150529150354) do
t.string "bitbucket_access_token"
t.string "bitbucket_access_token_secret"
t.string "location"
- t.string "public_email", default: "", null: false
t.string "encrypted_otp_secret"
t.string "encrypted_otp_secret_iv"
t.string "encrypted_otp_secret_salt"
t.boolean "otp_required_for_login"
t.text "otp_backup_codes"
+ t.string "public_email", default: "", null: false
+ t.integer "dashboard", default: 0
end
add_index "users", ["admin"], name: "index_users_on_admin", using: :btree
diff --git a/spec/controllers/profiles/preferences_controller_spec.rb b/spec/controllers/profiles/preferences_controller_spec.rb
index 87503b1ed4d..646aa0320b2 100644
--- a/spec/controllers/profiles/preferences_controller_spec.rb
+++ b/spec/controllers/profiles/preferences_controller_spec.rb
@@ -25,6 +25,7 @@ describe Profiles::PreferencesController do
def go(params: {}, format: :js)
params.reverse_merge!(
color_scheme_id: '1',
+ dashboard: 'stars',
theme_id: '1'
)
@@ -40,6 +41,7 @@ describe Profiles::PreferencesController do
it "changes the user's preferences" do
prefs = {
color_scheme_id: '1',
+ dashboard: 'stars',
theme_id: '2'
}.with_indifferent_access
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index f1b8afa5854..5bf6ce3536c 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -50,12 +50,13 @@
# bitbucket_access_token :string(255)
# bitbucket_access_token_secret :string(255)
# location :string(255)
+# public_email :string(255) default(""), not null
# encrypted_otp_secret :string(255)
# encrypted_otp_secret_iv :string(255)
# encrypted_otp_secret_salt :string(255)
# otp_required_for_login :boolean
# otp_backup_codes :text
-# public_email :string(255) default(""), not null
+# dashboard :integer default(0)
#
require 'spec_helper'