import tg, pylons
from webob.exc import HTTPNotFound

from bazbase import structure
from bazki import getting
from gameki import restricted

class Packet(tg.TGController):

    @tg.expose()
    def _default(self, username=None):
        logged_in_user = restricted.logged_in_user()
        if username is None:
            if restricted.is_omniscient():
                return getting.get('packet', 'html',
                                   structure.get_element(u'ListPackets'))
            elif logged_in_user is not None:
                user = logged_in_user
            else:
                raise restricted.log_in()
        else:
            user = structure.get_element_raw(username=username)
            
        if not restricted.is_omniscient() and logged_in_user != user:
            raise restricted.not_you()
        
        return getting.get(username, 'html', user,
                           pname=u'packet')
