diff options
Diffstat (limited to 'src/root.py')
-rwxr-xr-x | src/root.py | 61 |
1 files changed, 60 insertions, 1 deletions
diff --git a/src/root.py b/src/root.py index d4cd900..0c6cd41 100755 --- a/src/root.py +++ b/src/root.py @@ -17,8 +17,67 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. +from util import data import cherrypy +class Site(object): + def __init__(self, value): + # implement lookup of sites id for link/name + self.link = value + self.name = value + +class User(object): + def __init__(self, username): + if username is None: + self.name = None + self._userdata = dict() + else: + self._userdata = self._get_user_data(username) + self.name = username + + def _get_user_data(self, username): + store = data.Store() + return store._get_user_preferences(username) + + @property + def is_admin(self): + if 'is_admin' in self._userdata: + if self._userdata['is_admin'] == '1': + return True + return False + + @is_admin.setter + def is_admin(self, value): + if value is True: + self._userdata['is_admin'] = '1' + else: + self._userdata['is_admin'] = '0' + + @property + def fullname(self): + if 'fullname' in self._userdata: + return self._userdata['fullname'] + else: + return self.name + + @fullname.setter + def fullname(self, value): + self._userdata['fullname'] = value + + @property + def sites(self): + if 'sites' in self._userdata: + d = [] + for site in self._userdata['sites']: + d.append(Site(site)) + else: + return [] + + @sites.setter + def sites(self): + #TODO: implement setting sites via the user object ? + raise AttributeError + class Root(object): def __init__(self, template_env): @@ -27,7 +86,7 @@ class Root(object): @cherrypy.expose def index_html(self): tmpl = self._env.get_template('index.html') - return tmpl.render(title='Root', content='Awesome!') + return tmpl.render(title='Root', user=User(None)) @cherrypy.expose def index(self): |