~deryck/groundcontrol/keyword-search-name

« back to all changes in this revision

Viewing changes to GroundControl/configuration.py

  • Committer: Martin Owens
  • Date: 2010-04-24 21:07:03 UTC
  • Revision ID: doctormo@gmail.com-20100424210703-qsaoghd1sl0z0p98
Fix a couple of login issues

Show diffs side-by-side

added added

removed removed

Lines of Context:
130
130
    def ssh_key_generate(self, password, confirm):
131
131
        """Generate keys or upload existing key up"""
132
132
        self.lpweb.gen_ssh_key(password)
 
133
        self.refresh_update()
 
134
 
 
135
    def refresh_update(self):
 
136
        """Start a thread to deal with the updating"""
133
137
        self.start_thread(self.update)
134
138
 
135
139
    def update(self):
205
209
    def update_details(self):
206
210
        """Update some fields with the name/email etc"""
207
211
        self.widget("namelabel").set_text(str(self.lpweb.name))
208
 
        self.widget("emaillabel").set_text(str(self.lpweb.emailaddr))
209
212
        self.widget("userlabel").set_text(str(self.lpweb.user))
210
213
        mugshot_file = self.launchpad.me.image()
211
214
        pixbuf = person_icons.get_icon(mugshot_file)
214
217
 
215
218
    def login_window(self, button):
216
219
        """Show the login window"""
217
 
        self.load_window('login', callback=self.update_details, auth=self.lpweb)
 
220
        self.load_window('login', callback=self.refresh_update, auth=self.lpweb)
218
221
 
219
222
    def logoff(self, button):
220
223
        """Remove all caches and log the user off of everything"""
264
267
        self.execute_script('document.title=oldtitle;')
265
268
        return data
266
269
 
 
270
    def insert_css(self, uri):
 
271
        """Insert a new css uri"""
 
272
        js = """var css = document.createElement('link');
 
273
                css.type = 'text/css';
 
274
                css.rel = 'stylesheet';
 
275
                css.href = '%s';
 
276
                document.getElementsByTagName("head")[0].appendChild(css);
 
277
             """ % (uri)
 
278
        self.execute_script(js)
 
279
 
267
280
 
268
281
class LpLoginWindow(ChildWindow):
269
282
    """Allows launchpad to be logged in, basically a cookie trap."""
273
286
        """Load a login window"""
274
287
        self.auth = auth
275
288
        self.web  = WebView()
 
289
        self.web.connect("load_started", self.disable_webkit)
276
290
        self.web.connect("load_finished", self.loaded)
277
291
        self.widget("contentbox").add(self.web)
278
292
        self.web.open(auth.request_url('+login'))
284
298
        """Return any results from the form."""
285
299
        return { }
286
300
 
 
301
    def disable_webkit(self, widget, data=None):
 
302
        """Disable the webkit"""
 
303
        self.window.set_sensitive(False)
 
304
 
287
305
    def loaded(self, widget, data=None):
288
306
        """Do something!!"""
289
307
        title = self.web.get_main_frame().get_title()
 
308
        # Insert our own css to pretty up the launchpad login
 
309
        widget.insert_css('http://ground-control.org/css/lp.css')
 
310
        # Get our html contents
290
311
        html = widget.get_html()
 
312
        fh = open('/tmp/content', 'w')
 
313
        fh.write(html)
 
314
        fh.close()
291
315
        if title == 'Launchpad' and '+logout' in html:
292
316
            # We should now be logged in
293
317
            self.auth.set_session(widget.get_cookies())
294
318
            self.apply_changes()
 
319
        self.window.set_sensitive(True)
295
320
 
296
321
    def _exiting(self, *args, **kwargs):
297
322
        """Clear out variables on exit"""