Skip to content

Commit 14b882c

Browse files
committed
extra validations
bookmarks: title uniqueness/strip/100->160 char, link uniqueness, missing tags field comments: title strip diaries: title 100->160 char, missing tags field forums: title strip lang: missing difference function links: title strip news: title strip/100->160 char, missing tags field nodes: missing tags field polls: title strip posts: title strip/100->160 char, missing tags field tracker: title strip wikipages: title strip, message trim, missing tags field
1 parent c61dc1b commit 14b882c

22 files changed

Lines changed: 81 additions & 18 deletions

app/controllers/bookmarks_controller.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@ def create
3535
redirect_to [@bookmark.owner, @bookmark], notice: "Votre lien a bien été partagé"
3636
else
3737
@bookmark.node = Node.new(user_id: current_user.id, cc_licensed: false)
38-
@bookmark.node.preview_tags = params[:tags]
38+
if params.include?(:tags)
39+
@bookmark.node.preview_tags = params[:tags]
40+
end
3941
@bookmark.valid?
4042
flash.now[:alert] = "Votre lien semble invalide. Le confimez‑vous ?" unless @bookmark.link =~ /\A#{URI::regexp(['http', 'https'])}\z/
4143
render :new

app/controllers/diaries_controller.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@ def create
3333
redirect_to [@diary.owner, @diary], notice: "Votre journal a bien été créé"
3434
else
3535
@diary.node = Node.new(user_id: current_user.id, cc_licensed: @diary.cc_licensed)
36-
@diary.node.preview_tags = params[:tags]
36+
if params.include?(:tags)
37+
@diary.node.preview_tags = params[:tags]
38+
end
3739
@diary.valid?
3840
flash.now[:alert] = "Votre journal ne contient pas de liens. Confirmez‑vous que cela est normal ?" unless @diary.body =~ /<a /
3941
render :new

app/controllers/news_controller.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@ def create
4646
redirect_to news_index_url, notice: "Votre proposition de dépêche a bien été soumise, et sera modérée dans les heures ou les jours à venir"
4747
else
4848
@news.node = Node.new(cc_licensed: @news.cc_licensed)
49-
@news.node.preview_tags = params[:tags]
49+
if params.include?(:tags)
50+
@news.node.preview_tags = params[:tags]
51+
end
5052
@news.valid?
5153
render :new
5254
end

app/controllers/posts_controller.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ def create
2424
redirect_to forum_posts_url(forum_id: @post.forum), notice: "Votre message a bien été créé"
2525
else
2626
@post.node = Node.new
27-
@post.node.preview_tags = params[:tags]
27+
if params.include?(:tags)
28+
@post.node.preview_tags = params[:tags]
29+
end
2830
@post.valid?
2931
render :new
3032
end

app/controllers/wiki_pages_controller.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@ def show
3333

3434
def new
3535
@wiki_page = WikiPage.new
36-
@wiki_page.title = params[:title]
36+
if params.include?(:title)
37+
@wiki_page.title = params[:title]
38+
end
3739
return not_enough_karma('pages de wiki') unless @wiki_page.creatable_by?(current_account)
3840
enforce_create_permission(@wiki_page)
3941
end

app/models/bookmark.rb

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@ class Bookmark < Content
2424
belongs_to :owner, class_name: 'User'
2525

2626
validates :title, presence: { message: "Le titre est obligatoire" },
27-
length: { maximum: 100, message: "Le titre est trop long" },
27+
length: { maximum: 160, message: "Le titre est trop long" },
2828
uniqueness: { message: "Un lien avec le même titre a déjà été proposé" }
2929
validates :link, presence: { message: "Vous ne pouvez pas poster un lien vide" },
3030
http_url: { message: "Le lien n'est pas valide" },
3131
length: { maximum: 255, message: "Le lien est trop long" },
32-
uniqueness: { message: "Le lien a déjà été proposé" }
32+
uniqueness: { message: "Cette adresse de lien a déjà été proposée" }
3333
validates :lang, inclusion: { in: Lang.valid_codes, allow_nil: false, message: "La langue du lien doit être définie" }
3434

3535
def link=(raw)
@@ -47,6 +47,11 @@ def link=(raw)
4747
write_attribute :link, raw
4848
end
4949

50+
def title=(raw)
51+
raw.strip!
52+
write_attribute :title, raw
53+
end
54+
5055
def create_node(attrs={})
5156
attrs[:cc_licensed] = false
5257
super

app/models/comment.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ def wikify_body
5050
self.body = wikify(wiki_body, nofollow: nofollow)
5151
end
5252

53+
def title=(raw)
54+
raw.strip!
55+
write_attribute :title, raw
56+
end
57+
5358
### Reading status ###
5459

5560
# Returns true if this comment has been read by the given user,

app/models/diary.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class Diary < Content
2727
belongs_to :converted_news, class_name: 'News'
2828

2929
validates :title, presence: { message: "Le titre est obligatoire" },
30-
length: { maximum: 100, message: "Le titre est trop long" }
30+
length: { maximum: 160, message: "Le titre est trop long" }
3131
validates :wiki_body, presence: { message: "Vous ne pouvez pas poster un journal vide" }
3232

3333
validate :convert_only_cc_licensed_diary, on: :convert

app/models/forum.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ class Forum < ActiveRecord::Base
3131
extend FriendlyId
3232
friendly_id
3333

34+
def title=(raw)
35+
raw.strip!
36+
write_attribute :title, raw
37+
end
38+
3439
### Workflow ###
3540

3641
state_machine :state, initial: :active do

app/models/lang.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ def self.all
99
end
1010

1111
def self.valid_codes
12-
$redis.lrange("lang", 0, -1).difference(["xx"])
12+
$redis.lrange("lang", 0, -1) - ["xx"]
1313
end
1414

1515
def self.[]=(key, value)

0 commit comments

Comments
 (0)