Hi,

i'm doing the issue https://github.com/kimchi-project/wok/issues/147, and got a problem to deal with exceptions and Javascript. I got this code at src/wok/root.py:

       # check for repetly
        l = len(self.failed_logins)
        if l >= 3:

            # verify if timeout is still valid
            last_try = self.failed_logins[l -1]
            if time.time() < (last_try["time"] + self.fail_timeout):
                details = e = UnauthorizedError("WOKAUTH0004E",
                                                {"seconds": self.fail_timeout})
                log_request(code, params, details, method, 403)
                import pdb;pdb.set_trace()
                raise cherrypy.HTTPError(403, e.message)
                return e.message


So, it may raise an exception. I want to filter this exception at UI. So i got this code:


        wok.login(settings, function(data) {
            var query = window.location.search;
            var next  = /.*next=(.*?)(&|$)/g.exec(query);

            if (next) {
                var next_url = decodeURIComponent(next[1]);
            }
            else {
                var lastPage = wok.cookie.get('lastPage');
                var next_url = lastPage ? lastPage.replace(/\"/g,'') : "/";
            }
            wok.cookie.set('roles',JSON.stringify(data.roles));
            window.location.replace(window.location.pathname.replace(/\/+login.html/, '') + next_url);
        }, function(jqXHR, textStatus, errorThrown) {
            if (jqXHR.responseText == "") {
                $("#messUserPass").hide();
                $("#missServer").show();
            } else {
                $("#missServer").hide();
                $("#messUserPass").show();
            }
            $("#messSession").hide();
            $("#logging").hide();
            $("#login").show();
        });

The issue is:

1) If i raise a cherrypy.HTTPError, i got a html error with the message i created on the code. Here is an example http://pastebin.com/AjkWwHBz. The message is there, but i must parse it.

2) If i raise a InvalidOperation or other exception from wok, i receive a error 500:

 {
   "reason":"The server encountered an unexpected condition which prevented it from fulfilling the request.",
   "code":"500 Internal Server Error"
}

I want to receive a json with the error, to make it to parse from UI.

-- 

Ramon Nunes Medeiros
Kimchi Developer
Linux Technology Center Brazil
IBM Systems & Technology Group
Phone : +55 19 2132 7878
ramonn@br.ibm.com