Public
Snippet $9 authored by Owo Sugiana

TODO solo/base2

- get_login_headers() menyimpan user.id pada cookie ketimbang user.user_email.
  Akhirnya ini berdampak pada group_finder().
  
- RootFactory yang lebih efisien yaitu cukup berisi daftar hak akses, tidak
  perlu melibatkan request.
  
- groups.py kini menyertakan hak akses dengan memanfaatkan tabel
  groups_permissions bawaan ziggurat. Sebagai pendukung dibuatlah tabel
  permissions yang berisi daftar hak akses sebagaimana yang tertera pada
  function argument permission di setiap view function.

- Hak akses yang lebih ringkas dimana user.py dan groups.py menggunakan
  satu hak akses saja yang bernama user-edit yang bermakna bisa SELECT, INSERT,
  UPDATE, dan DELETE tabel users dan tabel groups. Jika nanti ada kebutuhan
  grup yang hanya bisa SELECT maka bisa dibuat hak akses bernama user-view.

- initializedb.py saat INSERT data kini menggunakan format csv saja
  dengan menggunakan dua fungsi:
  - restore_csv() yang akan INSERT data hanya jika tabelnya masih kosong. Ini
    cocok untuk tabel users.
  - append_csv() yang akan INSERT data jika key pada tabel tidak ditemukan.

- Jika field pada csv merupakan foreign key maka nama field ditulis dengan
  susunan nama-field-tabel-csv/nama-tabel-foreign.nama-field-foreign, contoh:
  pemda_id/va_pemda.kode.