20259: Add documentation for banner and tooltip features
[arvados.git] / apps / workbench / app / controllers / user_agreements_controller.rb
index f8c316e58c7606c086a6e91132f14c381e02f1e8..5e530a657e6e9474c661a0479cd60a245dd2b1d2 100644 (file)
@@ -1,11 +1,19 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
 class UserAgreementsController < ApplicationController
-  skip_before_filter :check_user_agreements
-  skip_before_filter :find_object_by_uuid
-  skip_before_filter :check_user_profile
+  skip_before_action :check_user_agreements
+  skip_before_action :find_object_by_uuid
+  skip_before_action :check_user_profile
 
   def index
     if unsigned_user_agreements.empty?
-      redirect_to(params[:return_to] || :back)
+      if params[:return_to]
+        redirect_to(params[:return_to])
+      else
+        redirect_back(fallback_location: root_path)
+      end
     end
   end
 
@@ -15,11 +23,15 @@ class UserAgreementsController < ApplicationController
 
   def sign
     params[:checked].each do |checked|
-      if r = checked.match(/^([0-9a-f]+[^\/]*)/)
+      if (r = CollectionsHelper.match_uuid_with_optional_filepath(checked))
         UserAgreement.sign uuid: r[1]
       end
     end
     current_user.activate
-    redirect_to(params[:return_to] || :back)
+    if params[:return_to]
+      redirect_to(params[:return_to])
+    else
+      redirect_back(fallback_location: root_path)
+    end
   end
 end