drop SafeAttributes

This commit is contained in:
Alexander Meindl
2018-07-16 15:59:01 +02:00
parent ca62927d19
commit b2780bf618
6 changed files with 53 additions and 43 deletions

View File

@@ -1 +1,2 @@
gem 'slim-rails'
gem 'validate_url'

View File

@@ -3,13 +3,44 @@ class MessengerSettingsController < ApplicationController
before_action :authorize
def update
setting = MessengerSetting.find_or_create @project.id
setting.assign_attributes(params[:setting])
if setting.save
setting = MessengerSetting.find_or_create(@project.id)
if setting.update(allowed_params)
flash[:notice] = l(:notice_successful_update)
redirect_to settings_project_path(@project, tab: 'messenger')
else
flash[:error] = 'Updating failed.' + e.message
flash[:error] = setting.errors.full_messages.flatten.join("\n")
respond_to do |format|
format.html { redirect_back_or_default(settings_project_path(@project, tab: 'messenger')) }
format.api { render_validation_errors(setting) }
end
end
redirect_to settings_project_path(@project, tab: 'messenger')
end
private
def allowed_params
params.require(:setting).permit :messenger_url,
:messenger_icon,
:messenger_channel,
:messenger_username,
:messenger_verify_ssl,
:auto_mentions,
:default_mentions,
:display_watchers,
:post_updates,
:new_include_description,
:updated_include_description,
:post_private_issues,
:post_private_notes,
:post_wiki,
:post_wiki_updates,
:post_db,
:post_db_updates,
:post_private_db,
:post_contact,
:post_contact_updates,
:post_private_contacts,
:post_password,
:post_password_updates
end
end

View File

@@ -1,32 +1,7 @@
class MessengerSetting < ActiveRecord::Base
include Redmine::SafeAttributes
belongs_to :project
safe_attributes 'messenger_url',
'messenger_icon',
'messenger_channel',
'messenger_username',
'messenger_verify_ssl',
'auto_mentions',
'default_mentions',
'display_watchers',
'post_updates',
'new_include_description',
'updated_include_description',
'post_private_issues',
'post_private_notes',
'post_wiki',
'post_wiki_updates',
'post_db',
'post_db_updates',
'post_private_db',
'post_contact',
'post_contact_updates',
'post_private_contacts',
'post_password',
'post_password_updates'
attr_protected :id, :project_id
validates :messenger_url, url: { allow_blank: true, message: l(:error_messenger_invalid_url) }
def self.find_or_create(p_id)
setting = MessengerSetting.find_by(project_id: p_id)

View File

@@ -1,6 +1,7 @@
# German strings
de:
permission_manage_messenger: Messenger verwalten
default_mentionsl_info: Benutzer, die immer mit Mentions benachrichtet werden sollen. Mehrere Namen können mit Komma getrennt angegeben werden (z.B. @all, @here).
error_messenger_invalid_url: "ist keine gültige URL"
label_messenger_contact_created: "[%{project_url}] Kontakt %{url} erstellt von *%{user}*"
label_messenger_contact_updated: "[%{project_url}] Kontakt %{url} aktualisiert von *%{user}*"
label_messenger_db_entry_created: "[%{project_url}] DB Eintrag %{url} erstellt von *%{user}*"
@@ -11,6 +12,7 @@ de:
label_messenger_password_created: "[%{project_url}] Kennwort %{url} erstellt von *%{user}*"
label_messenger_password_updated: "[%{project_url}] Kennwort %{url} aktualisiert von *%{user}*"
label_messenger_project_text_field_info: Leer lassen für Systemstandard.
label_messenger_setting: Messenger Einstellung
label_messenger_settings_default: Standardeinstellung
label_messenger_settings_disabled: Deaktiviert
label_messenger_settings_enabled: Aktiviert
@@ -32,8 +34,8 @@ de:
label_settings_post_db: Neue DB Einträge?
label_settings_post_password_updates: Passwort Updates?
label_settings_post_password: Neue Passwörter?
label_settings_post_private_db: Private DB Einträge?
label_settings_post_private_contacts: Private Kontakte?
label_settings_post_private_db: Private DB Einträge?
label_settings_post_private_issues: Private Ticket Updates?
label_settings_post_private_notes: Private Notizen?
label_settings_post_updates: Ticket Updates?
@@ -50,5 +52,4 @@ de:
messenger_url_info_html: 'Generiere eine <a target="_blank" href="https://github.com/AlphaNodes/redmine_messenger#prepare-your-messenger-service">Incoming WebHook</a> URL vom Messenger Service. Um nur aus bestimmten Projekten Nachrichten zu versenden, kann diese URL leer bleiben und in den Projekteinstellungen gesetzt werden.'
messenger_verify_ssl_info_html: 'Falls der Messenger Service ein ungültiges oder selbst erstelltes (self-signed) SSL Zertifikat verwendet bitte deaktivieren.'
messenger_wiki_intro: Legen Sie fest welche Einträge oder Änderungen für Wikis im angegebenen Messenger Channel versendet werden.
label_messenger_setting: Messenger Einstellung
default_mentionsl_info: Benutzer, die immer mit Mentions benachrichtet werden sollen. Mehrere Namen können mit Komma getrennt angegeben werden (z.B. @all, @here).
permission_manage_messenger: Messenger verwalten

View File

@@ -1,6 +1,7 @@
# English strings
en:
permission_manage_messenger: Manage messenger
default_mentionsl_info: Default people to notify, comma separated (e.g. @all, @here)
error_messenger_invalid_url: is not a valid URL
label_messenger_contact_created: "[%{project_url}] Contact %{url} created by *%{user}*"
label_messenger_contact_updated: "[%{project_url}] Contact %{url} updated by *%{user}*"
label_messenger_db_entry_created: "[%{project_url}] DB entry %{url} created by *%{user}*"
@@ -11,6 +12,7 @@ en:
label_messenger_password_created: "[%{project_url}] Kennwort %{url} created by *%{user}*"
label_messenger_password_updated: "[%{project_url}] Kennwort %{url} updated by *%{user}*"
label_messenger_project_text_field_info: Leave it blank for system default.
label_messenger_setting: Messenger Settings
label_messenger_settings_default: System default
label_messenger_settings_disabled: Disabled
label_messenger_settings_enabled: Enabled
@@ -32,8 +34,8 @@ en:
label_settings_post_db: DB entry added?
label_settings_post_password_updates: Password updates?
label_settings_post_password: Password added?
label_settings_post_private_db: Private DB entries?
label_settings_post_private_contacts: Private contacts?
label_settings_post_private_db: Private DB entries?
label_settings_post_private_issues: Private issue updates?
label_settings_post_private_notes: Private notes updates?
label_settings_post_updates: Issue updates?
@@ -50,5 +52,4 @@ en:
messenger_url_info_html: 'Generate an <a target="_blank" href="https://github.com/AlphaNodes/redmine_messenger#prepare-your-messenger-service">Incoming WebHook</a> URL from the messenger service. Leave it empty, if you only want to activate specific projects with project based settings'
messenger_verify_ssl_info_html: 'If your Messenger service uses an invalid or self-signed SSL certificate, disable it.'
messenger_wiki_intro: Activate the changes for Wikis that should be sent to the pre-defined Messenger channel.
label_messenger_setting: Messenger Settings
default_mentionsl_info: Default people to notify, comma separated (e.g. @all, @here)
permission_manage_messenger: Manage messenger

View File

@@ -1,6 +1,7 @@
# Japanese strings
ja:
permission_manage_messenger: メッセンジャーの管理
default_mentionsl_info: Default people to notify, comma separated (e.g. @all, @here)
error_messenger_invalid_url: is not a valid URL
label_messenger_contact_created: "[%{project_url}] コンタクト %{url} が *%{user}* によって作成されました。"
label_messenger_contact_updated: "[%{project_url}] コンタクト %{url} が*%{user}* によって更新されました。"
label_messenger_db_entry_created: "[%{project_url}] DB entry %{url} created by *%{user}*"
@@ -11,6 +12,7 @@ ja:
label_messenger_password_created: "[%{project_url}] Kennwort %{url} created by *%{user}*"
label_messenger_password_updated: "[%{project_url}] Kennwort %{url} updated by *%{user}*"
label_messenger_project_text_field_info: デフォルトの設定を使う場合空欄にしてください。
label_messenger_setting: メッセンジャーの設定
label_messenger_settings_default: デフォルト
label_messenger_settings_disabled: 無効
label_messenger_settings_enabled: 有効
@@ -32,8 +34,8 @@ ja:
label_settings_post_db: DB entry added?
label_settings_post_password_updates: Password updates?
label_settings_post_password: Password added?
label_settings_post_private_db: Private DB entries?
label_settings_post_private_contacts: Private contacts?
label_settings_post_private_db: Private DB entries?
label_settings_post_private_issues: プライベートチケットの更新
label_settings_post_private_notes: プライベート注記の更新
label_settings_post_updates: チケットの更新
@@ -50,5 +52,4 @@ ja:
messenger_url_info_html: 'メッセンジャー サービスで <a target="_blank" href="https://github.com/AlphaNodes/redmine_messenger#prepare-your-messenger-service">内向きのウェブフック</a>のURLを作成して下さい。プロジェクト毎に設定を変えたい場合は空欄として下さい。'
messenger_verify_ssl_info_html: 'メッセンジャー サービスが自己署名証明書や不正な証明書を使っている場合、無効として下さい。'
messenger_wiki_intro: メッセンジャーに送信するWikiのイベントにチェックを入れて下さい。
label_messenger_setting: メッセンジャーの設定
default_mentionsl_info: Default people to notify, comma separated (e.g. @all, @here)
permission_manage_messenger: メッセンジャーの管理