В TextIO
есть функция withTempDirectory
, которая должна позволять вам устанавливать временное ведро на то, где учетная запись службы имеет более высокие привилегии.
Я считаю, что TextIO
поместит файлы в tempLocation
вашего конвейера. Возможно, вы сможете установить tempLocation
вашего конвейера в сегменте, который не так критичен для безопасности, и записать результат в защищенный сегмент.
ЛМК, если любая из этих альтернатив поможет.
Я бы сказал, что иметь оба контроллера (один общедоступный и один администратор) - это лучшее решение.
Теперь вы можете сделать так, чтобы оба контроллера вызывали один и тот же метод, который выполняет связанные действия в действиях.
class MyController < ApplicationController
def show
MyModel.do_all_sorts_of_stuff
end
end
class Admin::MyController < ApplicationController
def show
MyModel.do_all_sorts_of_stuff
# Admin only stuff goes here
end
end
Как сказал Мэтт, но вы также можете сделать это:
class MyController < ApplicationController
def show
MyModel.do_all_sorts_of_stuff
end
end
class Admin::MyController < MyController
def show
super
# Admin only stuff goes here
end
end
Это означает, что вы можете просто сосредоточиться на более специализированных случаях для Admin :: MyController, а не на повторении кода.