from ttfrog import app, schema TEMPLATE = """ # Heading 1 ## Heading 2 ### Heading 3 #### Heading 4 ##### Heading 5 ###### Heading 6 *** Normal text. **Bold text.** *Italic Text.* [A link](/). 1. a 2. numbered 3. list. > a block quote | A | Table | Section | | --- | ----- | ------- | | foo | bar | baz | """ def bootstrap(): """ Bootstrap the database entries by populating the first Page, the Admin user and the Admins group. """ app.check_state() # create the top-level pages root = app.db.save(schema.Page(name=app.config.VIEW_URI, title="Home", body="This is the home page")) users = root.add_member(schema.Page(name="User", title="Users", body="users go here.")) groups = root.add_member(schema.Page(name="Group", title="Groups", body="groups go here.")) npcs = root.add_member(schema.Page(name="NPC", title="NPCS!", body="NPCS!")) wiki = root.add_member(schema.Page(name="Wiki", title="Wiki", body=TEMPLATE)) # create the NPCs npcs.add_member(schema.NPC(name="Sabetha", body="")) npcs.add_member(schema.NPC(name="John", body="")) # create the users guest = users.add_member(schema.User(name="guest")) admin = users.add_member( schema.User(name=app.config.ADMIN_USERNAME, password="fnord", email=app.config.ADMIN_EMAIL) ) # create the admin user and admins group admins = groups.add_member(schema.Group(name="administrators", members=[admin])) # admins get full access root.set_permissions( admins, permissions=[schema.Permissions.READ, schema.Permissions.WRITE, schema.Permissions.DELETE] ) # guests get read access by default, except on Groups and Users groups.set_permissions(guest, permissions=[]) users.set_permissions(guest, permissions=[]) root.set_permissions(guest, permissions=[schema.Permissions.READ])