diff --git a/lib/authenticated_system.rb b/lib/authenticated_system.rb index e522566..c31207b 100644 --- a/lib/authenticated_system.rb +++ b/lib/authenticated_system.rb @@ -60,7 +60,11 @@ module AuthenticatedSystem if logged_in? && authorized? true else - access_denied + if params[:require_login_popup] + render :json => { :require_login_popup => true } + else + access_denied + end end end diff --git a/public/javascripts/require_login.js b/public/javascripts/require_login.js new file mode 100644 index 0000000..c0ec892 --- /dev/null +++ b/public/javascripts/require_login.js @@ -0,0 +1,25 @@ +(function($) { + $(window).bind('userDataLoaded', function(event, data) { + $(".require-login-popup").live('click', function(){ + clicked = $(this); + url = clicked.attr("href"); + if(url!=undefined && url!='' && url!='#') { + if(!data.login) { + url = $.param.querystring(url, "require_login_popup=true"); + } + loading_for_button(this); + $.post(url, function(data){ + if(data.require_login_popup) { + $('#link_login').click(); //TODO see a better way to show login popup + } + }).complete(function() { + clicked.css("cursor",""); + $(".small-loading").remove(); + }); + } else { + $('#link_login').click(); + } + return false; + }); + }); +})(jQuery); -- libgit2 0.21.2