Notify user about new RS authorizations
This commit is contained in:
@@ -5,4 +5,11 @@ class NotificationMailer < ApplicationMailer
|
||||
@subject = "Sats received"
|
||||
mail to: @user.email, subject: @subject
|
||||
end
|
||||
|
||||
def remotestorage_auth_created
|
||||
@user = params[:user]
|
||||
@auth = params[:auth]
|
||||
@subject = "New app connected to your storage"
|
||||
mail to: @user.email, subject: @subject
|
||||
end
|
||||
end
|
||||
|
||||
@@ -18,7 +18,7 @@ class RemoteStorageAuthorization < ApplicationRecord
|
||||
before_create :store_token_in_redis
|
||||
before_create :find_or_create_web_app
|
||||
after_create :schedule_token_expiry
|
||||
# after_create :notify_user
|
||||
after_create :notify_user
|
||||
before_destroy :delete_token_from_redis
|
||||
after_destroy :remove_token_expiry_job
|
||||
|
||||
@@ -93,4 +93,22 @@ class RemoteStorageAuthorization < ApplicationRecord
|
||||
rescue URI::InvalidURIError
|
||||
false
|
||||
end
|
||||
|
||||
def notify_user
|
||||
notify = user.preferences[:remotestorage_notify_auth_created]
|
||||
|
||||
case notify
|
||||
when "xmpp"
|
||||
router = Router.new
|
||||
payload = {
|
||||
type: "normal", to: user.address,
|
||||
from: Setting.xmpp_notifications_from_address,
|
||||
body: "You have just granted '#{self.client_id}' access to your Kosmos Storage. Visit your Storage dashboard to check on your connected apps and revoke permissions anytime: #{router.services_storage_url}"
|
||||
}
|
||||
XmppSendMessageJob.perform_later(payload)
|
||||
when "email"
|
||||
NotificationMailer.with(user: user, auth: self)
|
||||
.remotestorage_auth_created.deliver_later
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
7
app/services/router.rb
Normal file
7
app/services/router.rb
Normal file
@@ -0,0 +1,7 @@
|
||||
class Router
|
||||
include Rails.application.routes.url_helpers
|
||||
|
||||
def self.default_url_options
|
||||
ActionMailer::Base.default_url_options
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,23 @@
|
||||
Hi <%= @user.display_name.presence || @user.cn %>,
|
||||
|
||||
You have just granted '<%= @auth.client_id %>' access to your Kosmos Storage, with the following permissions:
|
||||
|
||||
<% @permissions.each do |p| %>
|
||||
* <%= p %>
|
||||
<% end %>
|
||||
|
||||
Visit your Storage dashboard to check on your connected apps and revoke permissions anytime:
|
||||
|
||||
<%= services_storage_url %>
|
||||
|
||||
Have fun!
|
||||
|
||||
---
|
||||
|
||||
You can disable email notifications for new app authorizations in your account settings:
|
||||
<%= setting_path(:remotestorage) %>
|
||||
|
||||
<% if Setting.discourse_enabled %>
|
||||
If you have any questions, please visit our community forums:
|
||||
<%= Setting.discourse_public_url %>
|
||||
<% end %>
|
||||
Reference in New Issue
Block a user