Correct annotations

allow longer usernames (up to 60)
This commit is contained in:
Sam 2014-04-15 15:53:48 +10:00
parent 86985e345e
commit 862a6696c0
41 changed files with 117 additions and 108 deletions

View file

@ -29,8 +29,8 @@ end
# key :string(64) not null # key :string(64) not null
# user_id :integer # user_id :integer
# created_by_id :integer # created_by_id :integer
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# #
# Indexes # Indexes
# #

View file

@ -334,8 +334,8 @@ end
# color :string(6) default("AB9364"), not null # color :string(6) default("AB9364"), not null
# topic_id :integer # topic_id :integer
# topic_count :integer default(0), not null # topic_count :integer default(0), not null
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# user_id :integer not null # user_id :integer not null
# topics_year :integer default(0) # topics_year :integer default(0)
# topics_month :integer default(0) # topics_month :integer default(0)
@ -360,7 +360,7 @@ end
# #
# Indexes # Indexes
# #
# index_categories_on_email_in (email_in) UNIQUE # index_categories_on_email_in (email_in) UNIQUE
# index_categories_on_name (name) UNIQUE # index_categories_on_forum_thread_count (topic_count)
# index_categories_on_topic_count (topic_count) # index_categories_on_name (name) UNIQUE
# #

View file

@ -52,8 +52,8 @@ end
# #
# category_id :integer not null # category_id :integer not null
# topic_id :integer not null # topic_id :integer not null
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# rank :integer default(0), not null # rank :integer default(0), not null
# id :integer not null, primary key # id :integer not null, primary key
# #

View file

@ -53,8 +53,8 @@ end
# id :integer not null, primary key # id :integer not null, primary key
# category_id :integer # category_id :integer
# user_id :integer # user_id :integer
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# #
# Indexes # Indexes
# #

View file

@ -15,7 +15,7 @@ end
# id :integer not null, primary key # id :integer not null, primary key
# category_id :integer not null # category_id :integer not null
# group_id :integer not null # group_id :integer not null
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# permission_type :integer default(1) # permission_type :integer default(1)
# #

View file

@ -41,14 +41,14 @@ class DiscourseSingleSignOn < SingleSignOn
def lookup_or_create_user def lookup_or_create_user
sso_record = SingleSignOnRecord.where(external_id: external_id).first sso_record = SingleSignOnRecord.where(external_id: external_id).first
if sso_record && user = sso_record.user if sso_record && user = sso_record.user
sso_record.last_payload = unsigned_payload sso_record.last_payload = unsigned_payload
else else
user = match_email_or_create_user user = match_email_or_create_user
sso_record = user.single_sign_on_record sso_record = user.single_sign_on_record
end end
# if the user isn't new or it's attached to the SSO record we might be overriding username or email # if the user isn't new or it's attached to the SSO record we might be overriding username or email
unless user.new_record? unless user.new_record?
change_external_attributes_and_override(sso_record, user) change_external_attributes_and_override(sso_record, user)
@ -59,16 +59,16 @@ class DiscourseSingleSignOn < SingleSignOn
user.save user.save
user.enqueue_welcome_message('welcome_user') user.enqueue_welcome_message('welcome_user')
end end
# optionally save the user and sso_record if they have changed # optionally save the user and sso_record if they have changed
user.save! user.save!
sso_record.save! sso_record.save!
sso_record && sso_record.user sso_record && sso_record.user
end end
private private
def match_email_or_create_user def match_email_or_create_user
user = User.where(email: Email.downcase(email)).first user = User.where(email: Email.downcase(email)).first
@ -90,31 +90,31 @@ class DiscourseSingleSignOn < SingleSignOn
external_name: name) external_name: name)
end end
end end
user user
end end
def change_external_attributes_and_override(sso_record, user) def change_external_attributes_and_override(sso_record, user)
if SiteSetting.sso_overrides_email && email != sso_record.external_email if SiteSetting.sso_overrides_email && email != sso_record.external_email
# set the user's email to whatever came in the payload # set the user's email to whatever came in the payload
user.email = email user.email = email
end end
if SiteSetting.sso_overrides_username && username != sso_record.external_username && user.username != username if SiteSetting.sso_overrides_username && username != sso_record.external_username && user.username != username
# we have an external username change, and the user's current username doesn't match # we have an external username change, and the user's current username doesn't match
# run it through the UserNameSuggester to override it # run it through the UserNameSuggester to override it
user.username = UserNameSuggester.suggest(username || name || email) user.username = UserNameSuggester.suggest(username || name || email)
end end
if SiteSetting.sso_overrides_name && name != sso_record.external_name && user.name != name if SiteSetting.sso_overrides_name && name != sso_record.external_name && user.name != name
# we have an external name change, and the user's current name doesn't match # we have an external name change, and the user's current name doesn't match
# run it through the name suggester to override it # run it through the name suggester to override it
user.name = User.suggest_name(name || username || email) user.name = User.suggest_name(name || username || email)
end end
# change external attributes for sso record # change external attributes for sso record
sso_record.external_username = username sso_record.external_username = username
sso_record.external_email = email sso_record.external_email = email
sso_record.external_name = name sso_record.external_name = name
end end
end end

View file

@ -46,8 +46,8 @@ end
# user_id :integer not null # user_id :integer not null
# draft_key :string(255) not null # draft_key :string(255) not null
# data :text not null # data :text not null
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# sequence :integer default(0), not null # sequence :integer default(0), not null
# #
# Indexes # Indexes

View file

@ -37,8 +37,8 @@ end
# to_address :string(255) not null # to_address :string(255) not null
# email_type :string(255) not null # email_type :string(255) not null
# user_id :integer # user_id :integer
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# reply_key :string(32) # reply_key :string(32)
# post_id :integer # post_id :integer
# topic_id :integer # topic_id :integer

View file

@ -73,8 +73,8 @@ end
# token :string(255) not null # token :string(255) not null
# confirmed :boolean default(FALSE), not null # confirmed :boolean default(FALSE), not null
# expired :boolean default(FALSE), not null # expired :boolean default(FALSE), not null
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# #
# Indexes # Indexes
# #

View file

@ -16,8 +16,8 @@ end
# gender :string(255) # gender :string(255)
# name :string(255) # name :string(255)
# link :string(255) # link :string(255)
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# #
# Indexes # Indexes
# #

View file

@ -10,8 +10,8 @@ end
# user_id :integer not null # user_id :integer not null
# screen_name :string(255) not null # screen_name :string(255) not null
# github_user_id :integer not null # github_user_id :integer not null
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# #
# Indexes # Indexes
# #

View file

@ -235,8 +235,8 @@ end
# #
# id :integer not null, primary key # id :integer not null, primary key
# name :string(255) not null # name :string(255) not null
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# automatic :boolean default(FALSE), not null # automatic :boolean default(FALSE), not null
# user_count :integer default(0), not null # user_count :integer default(0), not null
# alias_level :integer default(0) # alias_level :integer default(0)

View file

@ -10,8 +10,8 @@ end
# id :integer not null, primary key # id :integer not null, primary key
# group_id :integer not null # group_id :integer not null
# user_id :integer not null # user_id :integer not null
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# #
# Indexes # Indexes
# #

View file

@ -104,8 +104,8 @@ end
# domain :string(100) # domain :string(100)
# topic_id :integer # topic_id :integer
# post_number :integer # post_number :integer
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# user_id :integer # user_id :integer
# ip_address :inet # ip_address :inet
# current_user_id :integer # current_user_id :integer

View file

@ -127,8 +127,8 @@ end
# invited_by_id :integer not null # invited_by_id :integer not null
# user_id :integer # user_id :integer
# redeemed_at :datetime # redeemed_at :datetime
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# deleted_at :datetime # deleted_at :datetime
# deleted_by_id :integer # deleted_by_id :integer
# invalidated_at :datetime # invalidated_at :datetime

View file

@ -142,8 +142,8 @@ end
# user_id :integer not null # user_id :integer not null
# data :string(1000) not null # data :string(1000) not null
# read :boolean default(FALSE), not null # read :boolean default(FALSE), not null
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# topic_id :integer # topic_id :integer
# post_number :integer # post_number :integer
# post_action_id :integer # post_action_id :integer

View file

@ -13,8 +13,8 @@ end
# provider :string(255) not null # provider :string(255) not null
# email :string(255) # email :string(255)
# name :string(255) # name :string(255)
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# #
# Indexes # Indexes
# #

View file

@ -513,8 +513,8 @@ end
# post_number :integer not null # post_number :integer not null
# raw :text not null # raw :text not null
# cooked :text not null # cooked :text not null
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# reply_to_post_number :integer # reply_to_post_number :integer
# reply_count :integer default(0), not null # reply_count :integer default(0), not null
# quote_count :integer default(0), not null # quote_count :integer default(0), not null
@ -553,5 +553,5 @@ end
# idx_posts_created_at_topic_id (created_at,topic_id) # idx_posts_created_at_topic_id (created_at,topic_id)
# idx_posts_user_id_deleted_at (user_id) # idx_posts_user_id_deleted_at (user_id)
# index_posts_on_reply_to_post_number (reply_to_post_number) # index_posts_on_reply_to_post_number (reply_to_post_number)
# index_posts_on_topic_id_and_post_number (topic_id,post_number) # index_posts_on_topic_id_and_post_number (topic_id,post_number) UNIQUE
# #

View file

@ -335,8 +335,8 @@ end
# user_id :integer not null # user_id :integer not null
# post_action_type_id :integer not null # post_action_type_id :integer not null
# deleted_at :datetime # deleted_at :datetime
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# deleted_by_id :integer # deleted_by_id :integer
# message :text # message :text
# related_post_id :integer # related_post_id :integer

View file

@ -45,8 +45,8 @@ end
# name_key :string(50) not null # name_key :string(50) not null
# is_flag :boolean default(FALSE), not null # is_flag :boolean default(FALSE), not null
# icon :string(20) # icon :string(20)
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# id :integer not null, primary key # id :integer not null, primary key
# position :integer default(0), not null # position :integer default(0), not null
# #

View file

@ -14,8 +14,8 @@ end
# key :string(255) # key :string(255)
# value :string(255) # value :string(255)
# extra :text # extra :text
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# #
# Indexes # Indexes
# #

View file

@ -11,8 +11,8 @@ end
# #
# post_id :integer # post_id :integer
# reply_id :integer # reply_id :integer
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# #
# Indexes # Indexes
# #

View file

@ -33,12 +33,12 @@ end
# action_type :integer not null # action_type :integer not null
# match_count :integer default(0), not null # match_count :integer default(0), not null
# last_match_at :datetime # last_match_at :datetime
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# ip_address :inet # ip_address :inet
# #
# Indexes # Indexes
# #
# index_screened_emails_on_email (email) UNIQUE # index_blocked_emails_on_email (email) UNIQUE
# index_screened_emails_on_last_match_at (last_match_at) # index_blocked_emails_on_last_match_at (last_match_at)
# #

View file

@ -92,8 +92,8 @@ end
# action_type :integer not null # action_type :integer not null
# match_count :integer default(0), not null # match_count :integer default(0), not null
# last_match_at :datetime # last_match_at :datetime
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# #
# Indexes # Indexes
# #

View file

@ -47,8 +47,8 @@ end
# action_type :integer not null # action_type :integer not null
# match_count :integer default(0), not null # match_count :integer default(0), not null
# last_match_at :datetime # last_match_at :datetime
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# ip_address :inet # ip_address :inet
# #
# Indexes # Indexes

View file

@ -37,8 +37,8 @@ end
# #
# content_type :string(255) not null, primary key # content_type :string(255) not null, primary key
# content :text not null # content :text not null
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# #
# Indexes # Indexes
# #

View file

@ -230,8 +230,8 @@ end
# user_id :integer not null # user_id :integer not null
# enabled :boolean not null # enabled :boolean not null
# key :string(255) not null # key :string(255) not null
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# override_default_style :boolean default(FALSE), not null # override_default_style :boolean default(FALSE), not null
# stylesheet_baked :text default(""), not null # stylesheet_baked :text default(""), not null
# mobile_stylesheet :text # mobile_stylesheet :text

View file

@ -93,6 +93,6 @@ end
# name :string(255) not null # name :string(255) not null
# data_type :integer not null # data_type :integer not null
# value :text # value :text
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# #

View file

@ -754,8 +754,8 @@ end
# id :integer not null, primary key # id :integer not null, primary key
# title :string(255) not null # title :string(255) not null
# last_posted_at :datetime # last_posted_at :datetime
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# views :integer default(0), not null # views :integer default(0), not null
# posts_count :integer default(0), not null # posts_count :integer default(0), not null
# user_id :integer # user_id :integer
@ -807,6 +807,6 @@ end
# #
# idx_topics_front_page (deleted_at,visible,archetype,category_id,id) # idx_topics_front_page (deleted_at,visible,archetype,category_id,id)
# idx_topics_user_id_deleted_at (user_id) # idx_topics_user_id_deleted_at (user_id)
# index_topics_on_bumped_at (bumped_at) # index_forum_threads_on_bumped_at (bumped_at)
# index_topics_on_id_and_deleted_at (id,deleted_at) # index_topics_on_id_and_deleted_at (id,deleted_at)
# #

View file

@ -12,8 +12,8 @@ end
# id :integer not null, primary key # id :integer not null, primary key
# user_id :integer not null # user_id :integer not null
# topic_id :integer not null # topic_id :integer not null
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# #
# Indexes # Indexes
# #

View file

@ -15,8 +15,8 @@ end
# id :integer not null, primary key # id :integer not null, primary key
# topic_id :integer not null # topic_id :integer not null
# invite_id :integer not null # invite_id :integer not null
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# #
# Indexes # Indexes
# #

View file

@ -208,8 +208,8 @@ end
# domain :string(100) not null # domain :string(100) not null
# internal :boolean default(FALSE), not null # internal :boolean default(FALSE), not null
# link_topic_id :integer # link_topic_id :integer
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# reflection :boolean default(FALSE) # reflection :boolean default(FALSE)
# clicks :integer default(0), not null # clicks :integer default(0), not null
# link_post_id :integer # link_post_id :integer
@ -218,6 +218,6 @@ end
# #
# Indexes # Indexes
# #
# index_topic_links_on_topic_id (topic_id) # index_forum_thread_links_on_forum_thread_id (topic_id)
# unique_post_links (topic_id,post_id,url) UNIQUE # index_forum_thread_links_on_forum_thread_id_and_post_id_and_url (topic_id,post_id,url) UNIQUE
# #

View file

@ -58,11 +58,11 @@ end
# id :integer not null, primary key # id :integer not null, primary key
# topic_link_id :integer not null # topic_link_id :integer not null
# user_id :integer # user_id :integer
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# ip_address :inet not null # ip_address :inet not null
# #
# Indexes # Indexes
# #
# by_link (topic_link_id) # index_forum_thread_link_clicks_on_forum_thread_link_id (topic_link_id)
# #

View file

@ -279,5 +279,5 @@ end
# #
# Indexes # Indexes
# #
# index_topic_users_on_topic_id_and_user_id (topic_id,user_id) UNIQUE # index_forum_thread_users_on_forum_thread_id_and_user_id (topic_id,user_id) UNIQUE
# #

View file

@ -10,8 +10,8 @@ end
# user_id :integer not null # user_id :integer not null
# screen_name :string(255) not null # screen_name :string(255) not null
# twitter_user_id :integer not null # twitter_user_id :integer not null
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# #
# Indexes # Indexes
# #

View file

@ -125,8 +125,8 @@ end
# width :integer # width :integer
# height :integer # height :integer
# url :string(255) not null # url :string(255) not null
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# sha1 :string(40) # sha1 :string(40)
# origin :string(1000) # origin :string(1000)
# #

View file

@ -692,9 +692,9 @@ end
# Table name: users # Table name: users
# #
# id :integer not null, primary key # id :integer not null, primary key
# username :string(20) not null # username :string(60) not null
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# name :string(255) # name :string(255)
# bio_raw :text # bio_raw :text
# seen_notification_id :integer default(0), not null # seen_notification_id :integer default(0), not null
@ -703,7 +703,7 @@ end
# password_hash :string(64) # password_hash :string(64)
# salt :string(32) # salt :string(32)
# active :boolean # active :boolean
# username_lower :string(20) not null # username_lower :string(60) not null
# auth_token :string(32) # auth_token :string(32)
# last_seen_at :datetime # last_seen_at :datetime
# website :string(255) # website :string(255)
@ -738,8 +738,8 @@ end
# uploaded_avatar_id :integer # uploaded_avatar_id :integer
# email_always :boolean default(FALSE), not null # email_always :boolean default(FALSE), not null
# mailing_list_mode :boolean default(FALSE), not null # mailing_list_mode :boolean default(FALSE), not null
# locale :string(10)
# primary_group_id :integer # primary_group_id :integer
# locale :string(10)
# profile_background :string(255) # profile_background :string(255)
# #
# Indexes # Indexes

View file

@ -313,12 +313,12 @@ end
# target_post_id :integer # target_post_id :integer
# target_user_id :integer # target_user_id :integer
# acting_user_id :integer # acting_user_id :integer
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# #
# Indexes # Indexes
# #
# idx_unique_rows (action_type,user_id,target_topic_id,target_post_id,acting_user_id) UNIQUE # idx_unique_rows (action_type,user_id,target_topic_id,target_post_id,acting_user_id) UNIQUE
# index_user_actions_on_acting_user_id (acting_user_id) # index_actions_on_acting_user_id (acting_user_id)
# index_user_actions_on_user_id_and_action_type (user_id,action_type) # index_actions_on_user_id_and_action_type (user_id,action_type)
# #

View file

@ -104,8 +104,8 @@ end
# acting_user_id :integer # acting_user_id :integer
# target_user_id :integer # target_user_id :integer
# details :text # details :text
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# context :string(255) # context :string(255)
# ip_address :string(255) # ip_address :string(255)
# email :string(255) # email :string(255)
@ -117,8 +117,8 @@ end
# #
# Indexes # Indexes
# #
# index_staff_action_logs_on_action_and_id (action,id)
# index_staff_action_logs_on_subject_and_id (subject,id)
# index_staff_action_logs_on_target_user_id_and_id (target_user_id,id)
# index_user_histories_on_acting_user_id_and_action_and_id (acting_user_id,action,id) # index_user_histories_on_acting_user_id_and_action_and_id (acting_user_id,action,id)
# index_user_histories_on_action_and_id (action,id)
# index_user_histories_on_subject_and_id (subject,id)
# index_user_histories_on_target_user_id_and_id (target_user_id,id)
# #

View file

@ -13,8 +13,8 @@ end
# user_id :integer not null # user_id :integer not null
# email :string(255) not null # email :string(255) not null
# url :string(255) not null # url :string(255) not null
# created_at :datetime # created_at :datetime not null
# updated_at :datetime # updated_at :datetime not null
# active :boolean not null # active :boolean not null
# #
# Indexes # Indexes

View file

@ -0,0 +1,9 @@
class AllowLongerUsernames < ActiveRecord::Migration
def up
change_column :users, :username, :string, limit: 60
change_column :users, :username_lower, :string, limit: 60
end
def down
end
end