Add logout menu to OpenShift Origin 3
OpenShift Origin จะไม่มีระบบจัดการ User มาให้ดังนั้นใครที่จะนำมาใช้ก็ต้องจัดการเองทั้งหมด ทำมือเอาได้หมดครับ ถ้าใครทำตามคู่มือเบื้องต้นเขาจะแนะนำให้ใช้ User แบบ Basic Auth ซึ่ง Session ของ User จะหลุดก็ต่อเมื่อเราปิด Browser ทิ้งแต่ถ้าระหว่างที่ยังเปิดอยู่ Session ก็จะยังค้างถ้าใครเปิดเข้าไปก็จะใช้งานในสิทธิ์เราได้ ผมมีวิธีลูกทุ่ง ๆ ในการแก้ปัญหาเฉพาะหน้าไปก่อนโดยการแก้ไขสามแฟ้มดังนี้ครับ
diff -aur /root/test/opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-console-1.18.0.1/app/controllers/account_controller.rb /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-console-1.18.3/app/controllers/account_controller.rb --- /root/test/opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-console-1.18.0.1/app/controllers/account_controller.rb 2014-01-03 15:20:39.736819307 +0700 +++ /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-console-1.18.3/app/controllers/account_controller.rb 2013-12-27 13:02:05.895483493 +0700 @@ -2,4 +2,7 @@ def show @user = current_user end + def logout + redirect_to "https://logout@"+request.host + end end
--- /root/test/opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-console-1.18.0.1/app/helpers/console/console_helper.rb 2014-01-03 15:20:39.743820144 +0700 +++ /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-console-1.18.3/app/helpers/console/console_helper.rb 2013-12-27 17:38:25.113984337 +0700 @@ -2,7 +2,7 @@ #FIXME: Replace with real isolation of login state def logout_path - nil + '/console/account/logout' end
diff -aur /root/test/opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-console-1.18.0.1/lib/console/rails/routes.rb /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-console-1.18.3/lib/console/rails/routes.rb --- /root/test/opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-console-1.18.0.1/lib/console/rails/routes.rb 2014-01-03 15:20:39.774823850 +0700 +++ /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-console-1.18.3/lib/console/rails/routes.rb 2013-12-27 12:51:26.293693116 +0700 @@ -13,6 +13,7 @@ def openshift_console_routes id_regex = /[^\/]+/ + match 'account/logout' => 'account#logout', :via => :get match 'help' => 'console_index#help', :via => :get, :as => 'console_help' match 'unauthorized' => 'console_index#unauthorized', :via => :get, :as => 'unauthorized' match 'server_unavailable' => 'console_index#server_unavailable', :via => :get, :as => 'server_unavailable' @@ -73,7 +74,7 @@ # Account specific resources resource :account, :controller => :account, - :only => :show + :only => [:show, :logout] end end end