phanterpwa 13.15.1__tar.gz → 13.17.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (450) hide show
  1. {phanterpwa-13.15.1/phanterpwa.egg-info → phanterpwa-13.17.0}/PKG-INFO +1 -1
  2. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/__init__.py +1 -1
  3. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/backend/request_handlers/admin.py +108 -0
  4. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/backend/request_handlers/auth.py +218 -0
  5. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/backend/request_handlers/cas.py +18 -0
  6. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/backend/request_handlers/credentials.py +90 -0
  7. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/backend/request_handlers/errors.py +18 -0
  8. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/backend/request_handlers/i18n_server.py +18 -0
  9. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/backend/request_handlers/internal_messages.py +36 -0
  10. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/backend/request_handlers/oauth.py +36 -0
  11. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/server.py +5 -3
  12. {phanterpwa-13.15.1 → phanterpwa-13.17.0/phanterpwa.egg-info}/PKG-INFO +1 -1
  13. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/LICENSE +0 -0
  14. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/MANIFEST.in +0 -0
  15. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/README.md +0 -0
  16. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/__main__.py +0 -0
  17. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/backend/__init__.py +0 -0
  18. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/backend/dataforms.py +0 -0
  19. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/backend/decorators.py +0 -0
  20. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/backend/pydal/__init__.py +0 -0
  21. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/backend/pydal/auth.py +0 -0
  22. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/backend/pydal/cas.py +0 -0
  23. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/backend/pydal/credentials.py +0 -0
  24. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/backend/pydal/extra_validations.py +0 -0
  25. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/backend/pydal/gallery.py +0 -0
  26. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/backend/pydal/internal_messages.py +0 -0
  27. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/backend/request_handlers/__init__.py +0 -0
  28. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/backend/request_handlers/websocket.py +0 -0
  29. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/backend/request_handlers/welcome.py +0 -0
  30. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/backend/security.py +0 -0
  31. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/__init__.py +0 -0
  32. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/captcha.py +0 -0
  33. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/captchadata.json +0 -0
  34. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/recipes/__init__.py +0 -0
  35. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/recipes/circle.recs +0 -0
  36. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/recipes/heart.recs +0 -0
  37. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/recipes/octagon.recs +0 -0
  38. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/recipes/square.recs +0 -0
  39. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/recipes/star.recs +0 -0
  40. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/sass/__init__.py +0 -0
  41. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/sass/captcha.sass +0 -0
  42. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/vectors/__init__.py +0 -0
  43. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/vectors/animal/butterfly.recs +0 -0
  44. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/vectors/animal/crab.recs +0 -0
  45. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/vectors/animal/pig.recs +0 -0
  46. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/vectors/animal/rabbit.recs +0 -0
  47. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/vectors/animal/rooster.recs +0 -0
  48. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/vectors/arrow/down.recs +0 -0
  49. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/vectors/arrow/left.recs +0 -0
  50. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/vectors/arrow/right.recs +0 -0
  51. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/vectors/arrow/up.recs +0 -0
  52. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/vectors/letter/a.recs +0 -0
  53. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/vectors/letter/b.recs +0 -0
  54. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/vectors/letter/c.recs +0 -0
  55. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/vectors/letter/d.recs +0 -0
  56. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/vectors/mean_of_transport/airplane.recs +0 -0
  57. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/vectors/mean_of_transport/car.recs +0 -0
  58. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/vectors/mean_of_transport/motorcycle.recs +0 -0
  59. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/vectors/mean_of_transport/ship.recs +0 -0
  60. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/vectors/number/four.recs +0 -0
  61. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/vectors/number/one.recs +0 -0
  62. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/vectors/number/three.recs +0 -0
  63. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/captchasvg/vectors/number/two.recs +0 -0
  64. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/compiler.py +0 -0
  65. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/components/__init__.py +0 -0
  66. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/components/inputs.py +0 -0
  67. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/components/left_bar.py +0 -0
  68. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/components/materialize.py +0 -0
  69. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/components/phanterpwagallery.py +0 -0
  70. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/components/preloaders/__init__.py +0 -0
  71. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/components/preloaders/android.py +0 -0
  72. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/components/preloaders/android.sass +0 -0
  73. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/components/preloaders/discs.py +0 -0
  74. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/components/preloaders/discs.sass +0 -0
  75. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/components/preloaders/explosion.py +0 -0
  76. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/components/preloaders/explosion.sass +0 -0
  77. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/components/preloaders/run_points.py +0 -0
  78. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/components/preloaders/run_points.sass +0 -0
  79. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/components/preloaders/square.py +0 -0
  80. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/components/preloaders/square.sass +0 -0
  81. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/components/preloaders/squares.py +0 -0
  82. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/components/preloaders/squares.sass +0 -0
  83. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/configer.py +0 -0
  84. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/__init__.py +0 -0
  85. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/application.py +0 -0
  86. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/components/__init__.py +0 -0
  87. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/components/admin.py +0 -0
  88. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/components/auth_user.py +0 -0
  89. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/components/datetimepicker.py +0 -0
  90. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/components/events.py +0 -0
  91. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/components/gallery.py +0 -0
  92. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/components/left_bar.py +0 -0
  93. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/components/modal.py +0 -0
  94. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/components/pagination.py +0 -0
  95. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/components/snippets.py +0 -0
  96. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/components/top_slide.py +0 -0
  97. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/components/widgets.py +0 -0
  98. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/decorators.py +0 -0
  99. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/fmasks.py +0 -0
  100. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/forms.py +0 -0
  101. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/gallery.py +0 -0
  102. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/gatehandler.py +0 -0
  103. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/helpers.py +0 -0
  104. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/i18n.py +0 -0
  105. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/initializer.py +0 -0
  106. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/plugins/client.py +0 -0
  107. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/preloaders.py +0 -0
  108. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/progressbar.py +0 -0
  109. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/selects.py +0 -0
  110. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/server.py +0 -0
  111. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/validations.py +0 -0
  112. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/frontend/websocket.py +0 -0
  113. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/gallery/__init__.py +0 -0
  114. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/gallery/cutter.py +0 -0
  115. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/gallery/integrationDAL.py +0 -0
  116. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/helpers.py +0 -0
  117. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/i18n/__init__.py +0 -0
  118. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/LICENSE +0 -0
  119. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/__init__.py +0 -0
  120. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/__init__.py +0 -0
  121. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/controllers/__init__.py +0 -0
  122. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/controllers/developer.py +0 -0
  123. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/controllers/welcome.py +0 -0
  124. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/databases/c8b669d15150d7109e5f7ab36744a5b7_auth_activity.table +0 -0
  125. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/databases/c8b669d15150d7109e5f7ab36744a5b7_auth_group.table +0 -0
  126. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/databases/c8b669d15150d7109e5f7ab36744a5b7_auth_membership.table +0 -0
  127. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/databases/c8b669d15150d7109e5f7ab36744a5b7_auth_user.table +0 -0
  128. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/databases/c8b669d15150d7109e5f7ab36744a5b7_auth_user_phanterpwagallery.table +0 -0
  129. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/databases/c8b669d15150d7109e5f7ab36744a5b7_captcha.table +0 -0
  130. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/databases/c8b669d15150d7109e5f7ab36744a5b7_client.table +0 -0
  131. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/databases/c8b669d15150d7109e5f7ab36744a5b7_csrf.table +0 -0
  132. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/databases/c8b669d15150d7109e5f7ab36744a5b7_email_user_list.table +0 -0
  133. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/databases/c8b669d15150d7109e5f7ab36744a5b7_google_captcha.table +0 -0
  134. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/databases/c8b669d15150d7109e5f7ab36744a5b7_phanterpwagallery.table +0 -0
  135. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/databases/c8b669d15150d7109e5f7ab36744a5b7_social_auth.table +0 -0
  136. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/databases/c8b669d15150d7109e5f7ab36744a5b7_two_factor_login.table +0 -0
  137. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/databases/readme.txt +0 -0
  138. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/databases/sql.log +0 -0
  139. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/databases/storage.sqlite +0 -0
  140. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/handlers.py +0 -0
  141. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/languages/admin/entries.json +0 -0
  142. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/languages/admin/pt-BR.json +0 -0
  143. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/languages/captcha/entries.json +0 -0
  144. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/languages/captcha/pt-BR.json +0 -0
  145. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/languages/email/entries.json +0 -0
  146. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/languages/email/pt-BR.json +0 -0
  147. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/languages/entries.json +0 -0
  148. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/languages/pt-BR.json +0 -0
  149. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/models/__init__.py +0 -0
  150. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/statics/images/user.png +0 -0
  151. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/statics/images/warning.png +0 -0
  152. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/backapps/api/uploads/readme.txt +0 -0
  153. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/core.py +0 -0
  154. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/__init__.py +0 -0
  155. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/__init__.py +0 -0
  156. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/handlers.py +0 -0
  157. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/languages/entries.json +0 -0
  158. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/languages/pt-BR.json +0 -0
  159. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/styles/application.sass +0 -0
  160. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/styles/extends/capcha_preload.sass +0 -0
  161. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/styles/extends/logo.sass +0 -0
  162. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/styles/extends/phanterpwa-logo.sass +0 -0
  163. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/styles/extends/run_points.sass +0 -0
  164. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/styles/gates/components.sass +0 -0
  165. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/styles/gates/developer.sass +0 -0
  166. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/styles/gates/main.sass +0 -0
  167. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/templates/__init__.py +0 -0
  168. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/templates/extends/__init__.py +0 -0
  169. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/templates/extends/button_preloader.py +0 -0
  170. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/templates/extends/captcha_preload.py +0 -0
  171. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/templates/extends/css_head.py +0 -0
  172. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/templates/extends/favicons.py +0 -0
  173. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/templates/extends/fontawesome.py +0 -0
  174. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/templates/extends/javascript_head.py +0 -0
  175. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/templates/extends/logo.svg +0 -0
  176. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/templates/extends/svg_logo.py +0 -0
  177. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/templates/index.py +0 -0
  178. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/templates/loads/fontawesome.py +0 -0
  179. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/templates/loads/phanterpwa_logo.py +0 -0
  180. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/templates/loads/svg_logo.py +0 -0
  181. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/transcrypts/application.py +0 -0
  182. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/transcrypts/auto/config.py +0 -0
  183. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/transcrypts/gatehandlers/__init__.py +0 -0
  184. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/transcrypts/gatehandlers/cmps.py +0 -0
  185. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/transcrypts/gatehandlers/developer.py +0 -0
  186. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/transcrypts/gatehandlers/errors.py +0 -0
  187. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/transcrypts/gatehandlers/examples.py +0 -0
  188. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/transcrypts/gatehandlers/ext_examples/__init__.py +0 -0
  189. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/transcrypts/gatehandlers/ext_examples/inputs.py +0 -0
  190. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/transcrypts/gatehandlers/ext_examples/menus.py +0 -0
  191. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/transcrypts/gatehandlers/ext_examples/selects.py +0 -0
  192. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/transcrypts/gatehandlers/fontawesome.py +0 -0
  193. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/transcrypts/gatehandlers/home.py +0 -0
  194. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/transcrypts/gatehandlers/project.py +0 -0
  195. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/transcrypts/gatehandlers/reqs.py +0 -0
  196. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/transcrypts/gatehandlers/testsp.py +0 -0
  197. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/sources/transcrypts/plugins/codemirror.py +0 -0
  198. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/css/all.min.css +0 -0
  199. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/css/normalize.css +0 -0
  200. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/css/phanterpwa.css +0 -0
  201. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/favicons/android-chrome-144x144.png +0 -0
  202. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/favicons/android-chrome-192x192.png +0 -0
  203. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/favicons/android-chrome-256x256.png +0 -0
  204. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/favicons/android-chrome-512x512.png +0 -0
  205. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/favicons/apple-touch-icon.png +0 -0
  206. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/favicons/browserconfig.xml +0 -0
  207. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/favicons/favicon-16x16.png +0 -0
  208. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/favicons/favicon-32x32.png +0 -0
  209. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/favicons/favicon.ico +0 -0
  210. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/favicons/manifest.json +0 -0
  211. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/favicons/mstile-150x150.png +0 -0
  212. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/favicons/site.webmanifest +0 -0
  213. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/fonts/88bdc70ec292cc29451932f9875b378a.eot +0 -0
  214. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/fonts/88bdc70ec292cc29451932f9875b378a.svg +0 -0
  215. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/fonts/88bdc70ec292cc29451932f9875b378a.ttf +0 -0
  216. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/fonts/88bdc70ec292cc29451932f9875b378a.woff +0 -0
  217. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/fonts/88bdc70ec292cc29451932f9875b378a.woff2 +0 -0
  218. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/fonts/L0x5DF4xlVMF-BfR8bXMIjhFq3-OXg.woff2 +0 -0
  219. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/fonts/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2 +0 -0
  220. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/fonts/Roboto-Thin.eot +0 -0
  221. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/fonts/Roboto-Thin.ttf +0 -0
  222. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/fonts/Roboto-Thin.woff +0 -0
  223. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/fonts/Roboto-Thin.woff2 +0 -0
  224. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/fonts/d6lIkaiiRdih4SpP_SQvzA.woff2 +0 -0
  225. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/fonts/d6lIkaiiRdih4SpP_SovzAbt.woff2 +0 -0
  226. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2 +0 -0
  227. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/fonts/roboto-v20-latin-regular.eot +0 -0
  228. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/fonts/roboto-v20-latin-regular.svg +0 -0
  229. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/fonts/roboto-v20-latin-regular.ttf +0 -0
  230. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/fonts/roboto-v20-latin-regular.woff +0 -0
  231. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/fonts/roboto-v20-latin-regular.woff2 +0 -0
  232. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/images/background.jpg +0 -0
  233. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/images/user.png +0 -0
  234. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/images/warning.png +0 -0
  235. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/js/hammer.min.js +0 -0
  236. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/js/hammer.min.js.map +0 -0
  237. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/js/jquery.hammer.js +0 -0
  238. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/js/jquery.min.js +0 -0
  239. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/js/jquery.min.map +0 -0
  240. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/js/touch-emulator.js +0 -0
  241. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/json/manifest.json +0 -0
  242. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/json/manifest.webmanifest +0 -0
  243. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/lib/codemirror.css +0 -0
  244. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/lib/codemirror.js +0 -0
  245. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/mode/python/index.html +0 -0
  246. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/mode/python/python.js +0 -0
  247. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/mode/python/test.js +0 -0
  248. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/webfonts/fa-brands-400.eot +0 -0
  249. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/webfonts/fa-brands-400.ttf +0 -0
  250. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/webfonts/fa-brands-400.woff +0 -0
  251. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/webfonts/fa-brands-400.woff2 +0 -0
  252. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/webfonts/fa-regular-400.eot +0 -0
  253. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/webfonts/fa-regular-400.ttf +0 -0
  254. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/webfonts/fa-regular-400.woff +0 -0
  255. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/webfonts/fa-regular-400.woff2 +0 -0
  256. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/webfonts/fa-solid-900.eot +0 -0
  257. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/webfonts/fa-solid-900.ttf +0 -0
  258. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/webfonts/fa-solid-900.woff +0 -0
  259. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/frontapps/admin/statics/webfonts/fa-solid-900.woff2 +0 -0
  260. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/logs/api.log +0 -0
  261. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/logs/app.log +0 -0
  262. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/logs/readme.txt +0 -0
  263. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/production.py +0 -0
  264. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/run.py +0 -0
  265. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/_compiler_sass_temp_file.sass +0 -0
  266. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/extends_mtime_admin.json +0 -0
  267. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/extends_mtime_components.json +0 -0
  268. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/extends_mtime_scaffold_app.json +0 -0
  269. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/extends_mtime_sindfa.json +0 -0
  270. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/phanterpwa_modules_mtime.json +0 -0
  271. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/readme.txt +0 -0
  272. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/statics_mtime_admin.json +0 -0
  273. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/statics_mtime_components.json +0 -0
  274. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/statics_mtime_scaffold_app.json +0 -0
  275. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/statics_mtime_sindfa.json +0 -0
  276. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/styles_mtime_admin.json +0 -0
  277. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/styles_mtime_components.json +0 -0
  278. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/styles_mtime_scaffold_app.json +0 -0
  279. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/styles_mtime_sindfa.json +0 -0
  280. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/templates_mtime_admin.json +0 -0
  281. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/templates_mtime_components.json +0 -0
  282. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/templates_mtime_scaffold_app.json +0 -0
  283. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/templates_mtime_sindfa.json +0 -0
  284. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/transcrypts_mtime_admin.json +0 -0
  285. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/transcrypts_mtime_components.json +0 -0
  286. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/transcrypts_mtime_scaffold_app.json +0 -0
  287. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/temp/transcrypts_mtime_sindfa.json +0 -0
  288. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/Admin/trash/readme.txt +0 -0
  289. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/__init__.py +0 -0
  290. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/admin_tk.py +0 -0
  291. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/cli.py +0 -0
  292. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/grafics/icon.ico +0 -0
  293. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/grafics/on.jpg +0 -0
  294. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/graphic.py +0 -0
  295. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/langs/English.json +0 -0
  296. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/langs/Portuguese.json +0 -0
  297. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/interface/langs/entries.json +0 -0
  298. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/mail.py +0 -0
  299. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/reversexml.py +0 -0
  300. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/samples/__init__.py +0 -0
  301. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/samples/about_cli +0 -0
  302. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/samples/about_graphic +0 -0
  303. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/samples/art +0 -0
  304. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/samples/art_cli +0 -0
  305. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/samples/config.json +0 -0
  306. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/samples/email.sass +0 -0
  307. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/samples/email_activation_code.py +0 -0
  308. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/samples/email_password.py +0 -0
  309. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/samples/email_two_factor_code.py +0 -0
  310. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/samples/project_config_sample.py +0 -0
  311. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/samples/sms_activation_code.py +0 -0
  312. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/samples/sms_password.py +0 -0
  313. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/samples/sms_two_factor_code.py +0 -0
  314. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/scaffolds/Scaffold_PhanterPWA_TM.ppwa +0 -0
  315. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/scaffolds/__init__.py +0 -0
  316. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/sms.py +0 -0
  317. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/__init__.py +0 -0
  318. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/helpers_out/__init__.py +0 -0
  319. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/helpers_out/my_sass.sass +0 -0
  320. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/helpers_out/new_sass.sass +0 -0
  321. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/path_of_languages/__init__.py +0 -0
  322. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/path_of_languages/entries.json +0 -0
  323. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/path_of_languages/es.json +0 -0
  324. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/path_of_languages/fr.json +0 -0
  325. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/path_of_languages/pt-BR.json +0 -0
  326. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/path_of_languages/pt-PT.json +0 -0
  327. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/preloaders/__init__.py +0 -0
  328. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/preloaders/test_components_preloaders_android.html +0 -0
  329. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/preloaders/test_components_preloaders_discs.html +0 -0
  330. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/preloaders/test_components_preloaders_explosion.html +0 -0
  331. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/preloaders/test_components_preloaders_run_points.html +0 -0
  332. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/preloaders/test_components_preloaders_square.html +0 -0
  333. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/preloaders/test_components_preloaders_squares.html +0 -0
  334. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/static/__init__.py +0 -0
  335. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/static/jquery.min.js +0 -0
  336. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/static/jquery.min.map +0 -0
  337. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_cli.py +0 -0
  338. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_cli_projects/__init__.py +0 -0
  339. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_cli_projects/not_project/__init__.py +0 -0
  340. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_cli_projects/not_project/config.json +0 -0
  341. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_cli_projects/project-invalid-name/__init__.py +0 -0
  342. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_cli_projects/project-invalid-name/config.json +0 -0
  343. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_cli_projects/project01/__init__.py +0 -0
  344. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_cli_projects/project01/config.json +0 -0
  345. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_cli_projects/project02/__init__.py +0 -0
  346. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_cli_projects/project02/config.json +0 -0
  347. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_cli_projects/without_configjson/__init__.py +0 -0
  348. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_components_preloaders.py +0 -0
  349. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer.py +0 -0
  350. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/__init__.py +0 -0
  351. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/fake_project/config.json +0 -0
  352. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/project-invalid-name/config.json +0 -0
  353. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/project01/__init__.py +0 -0
  354. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/project01/backapps/api/app.ini +0 -0
  355. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/project01/backend/api/app.ini +0 -0
  356. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/project01/config.json +0 -0
  357. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/project01/frontapps/app01/app.ini +0 -0
  358. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/project01/frontapps/app02/app.ini +0 -0
  359. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/project01/frontend/app01/app.ini +0 -0
  360. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/project01/frontend/app02/app.ini +0 -0
  361. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/project01/project.ini +0 -0
  362. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/project02/__init__.py +0 -0
  363. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/project02/config.json +0 -0
  364. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/project_without_confgjson_and_with_ini/__init__.py +0 -0
  365. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/project_without_confgjson_and_with_ini/backend/api/app.ini +0 -0
  366. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/project_without_confgjson_and_with_ini/config.json +0 -0
  367. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/project_without_confgjson_and_with_ini/frontend/app01/app.ini +0 -0
  368. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/project_without_confgjson_and_with_ini/frontend/app02/app.ini +0 -0
  369. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/project_without_confgjson_and_with_ini/project.ini +0 -0
  370. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/project_without_ini/__init__.py +0 -0
  371. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/project_without_ini/backend/api/app.ini +0 -0
  372. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/project_without_ini/config.json +0 -0
  373. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_configer_path/project_without_ini/project.ini +0 -0
  374. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_folder/cfg.json +0 -0
  375. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_folder/cfgij.json +0 -0
  376. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_folder/config.json +0 -0
  377. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_helpers.py +0 -0
  378. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_helpers_languages/__init__.py +0 -0
  379. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_helpers_languages/en-US.json +0 -0
  380. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_helpers_languages/entries.json +0 -0
  381. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_helpers_languages/glingon.json +0 -0
  382. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_helpers_languages/pt-BR.json +0 -0
  383. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_i18n.py +0 -0
  384. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_i18n_languages/__init__.py +0 -0
  385. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_i18n_languages/en-US.json +0 -0
  386. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_i18n_languages/entries.json +0 -0
  387. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_i18n_languages/pt-BR.json +0 -0
  388. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_i18n_languages/pt-PT.json +0 -0
  389. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_reversexml.py +0 -0
  390. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_tools.py +0 -0
  391. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_tools_humanize_seconds/entries.json +0 -0
  392. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/test_tools_humanize_seconds/pt-BR.json +0 -0
  393. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tests/tests.py +0 -0
  394. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/third_parties/__init__.py +0 -0
  395. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/third_parties/xss.py +0 -0
  396. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/tools.py +0 -0
  397. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/trash/readme.txt +0 -0
  398. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/alert_top_activation.sass +0 -0
  399. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/breascrumbs.sass +0 -0
  400. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/buttons.sass +0 -0
  401. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/capcha_preload.sass +0 -0
  402. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/captcha.sass +0 -0
  403. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/captcha_preload_image_3x4.sass +0 -0
  404. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/card.sass +0 -0
  405. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/cmp_auth_user.sass +0 -0
  406. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/datetimepicker.sass +0 -0
  407. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/developer.sass +0 -0
  408. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/easy.sass +0 -0
  409. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/flash.sass +0 -0
  410. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/forms.sass +0 -0
  411. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/messages.sass +0 -0
  412. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/modal.sass +0 -0
  413. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/modal_login.sass +0 -0
  414. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/phanterpwa_gallery.sass +0 -0
  415. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/phanterpwa_gallery_cutter.sass +0 -0
  416. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/phanterpwa_panel_control.sass +0 -0
  417. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/progressbar.sass +0 -0
  418. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/pseudomodal.sass +0 -0
  419. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/run_points.sass +0 -0
  420. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/sections.sass +0 -0
  421. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/snippet.sass +0 -0
  422. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/widgets.sass +0 -0
  423. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/components/xtable.sass +0 -0
  424. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/display/grid.sass +0 -0
  425. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/display/media_print.sass +0 -0
  426. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/events/waves.sass +0 -0
  427. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/extends/capcha_preload.sass +0 -0
  428. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/extends/logo.sass +0 -0
  429. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/extends/run_points.sass +0 -0
  430. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/gates/componentes.sass +0 -0
  431. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/gates/main.sass +0 -0
  432. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/phanterpwa.sass +0 -0
  433. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/plugins/codemirror.sass +0 -0
  434. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/preloaders/android.sass +0 -0
  435. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/preloaders/discs.sass +0 -0
  436. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/preloaders/explosion.sass +0 -0
  437. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/preloaders/indefined_text.sass +0 -0
  438. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/preloaders/run_points.sass +0 -0
  439. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/preloaders/square.sass +0 -0
  440. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/preloaders/squares.sass +0 -0
  441. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/usual_sass/variables.sass +0 -0
  442. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa/xmlconstructor.py +0 -0
  443. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa.egg-info/SOURCES.txt +0 -0
  444. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa.egg-info/dependency_links.txt +0 -0
  445. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa.egg-info/entry_points.txt +0 -0
  446. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa.egg-info/not-zip-safe +0 -0
  447. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa.egg-info/requires.txt +0 -0
  448. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/phanterpwa.egg-info/top_level.txt +0 -0
  449. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/setup.cfg +0 -0
  450. {phanterpwa-13.15.1 → phanterpwa-13.17.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: phanterpwa
3
- Version: 13.15.1
3
+ Version: 13.17.0
4
4
  Summary: Tools for the phanterpwadeveloper framework
5
5
  Home-page: https://github.com/PhanterJR/phanterpwa
6
6
  Author: PhanterJR
@@ -3,7 +3,7 @@
3
3
  # license: MIT
4
4
 
5
5
  __author__ = "PhanterJR<junior.conex@gmail.com>"
6
- __version__ = "13.15.1"
6
+ __version__ = "13.17.0"
7
7
  __install_requeriments__ = [
8
8
  "psutil",
9
9
  "tornado",
@@ -92,6 +92,24 @@ class UserManager(web.RequestHandler):
92
92
  def check_origin(self, origin):
93
93
  return True
94
94
 
95
+ def _request_summary(self) -> str:
96
+ client_ip = self.request.headers.get('X-Real-IP') or\
97
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
98
+ self.request.remote_ip
99
+ summary = "{0} {1} ({2})".format(
100
+ self.request.method,
101
+ self.request.uri,
102
+ client_ip,
103
+ )
104
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
105
+ summary = "{0} {1} ({2} - {3})".format(
106
+ self.request.method,
107
+ self.request.uri,
108
+ client_ip,
109
+ self.phanterpwa_current_user.email
110
+ )
111
+ return summary
112
+
95
113
  def options(self, *args):
96
114
  self.set_status(200)
97
115
  self.write({"status": "OK"})
@@ -686,6 +704,24 @@ class UserImage(web.RequestHandler):
686
704
  def check_origin(self, origin):
687
705
  return True
688
706
 
707
+ def _request_summary(self) -> str:
708
+ client_ip = self.request.headers.get('X-Real-IP') or\
709
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
710
+ self.request.remote_ip
711
+ summary = "{0} {1} ({2})".format(
712
+ self.request.method,
713
+ self.request.uri,
714
+ client_ip,
715
+ )
716
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
717
+ summary = "{0} {1} ({2} - {3})".format(
718
+ self.request.method,
719
+ self.request.uri,
720
+ client_ip,
721
+ self.phanterpwa_current_user.email
722
+ )
723
+ return summary
724
+
689
725
  def options(self, *args):
690
726
  self.set_status(200)
691
727
  return self.write({"status": "OK"})
@@ -778,6 +814,24 @@ class RoleManager(web.RequestHandler):
778
814
  def check_origin(self, origin):
779
815
  return True
780
816
 
817
+ def _request_summary(self) -> str:
818
+ client_ip = self.request.headers.get('X-Real-IP') or\
819
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
820
+ self.request.remote_ip
821
+ summary = "{0} {1} ({2})".format(
822
+ self.request.method,
823
+ self.request.uri,
824
+ client_ip,
825
+ )
826
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
827
+ summary = "{0} {1} ({2} - {3})".format(
828
+ self.request.method,
829
+ self.request.uri,
830
+ client_ip,
831
+ self.phanterpwa_current_user.email
832
+ )
833
+ return summary
834
+
781
835
  def options(self, *args):
782
836
  self.set_status(200)
783
837
  self.write({"status": "OK"})
@@ -1121,6 +1175,24 @@ class Impersonate(web.RequestHandler):
1121
1175
  def check_origin(self, origin):
1122
1176
  return True
1123
1177
 
1178
+ def _request_summary(self) -> str:
1179
+ client_ip = self.request.headers.get('X-Real-IP') or\
1180
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
1181
+ self.request.remote_ip
1182
+ summary = "{0} {1} ({2})".format(
1183
+ self.request.method,
1184
+ self.request.uri,
1185
+ client_ip,
1186
+ )
1187
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
1188
+ summary = "{0} {1} ({2} - {3})".format(
1189
+ self.request.method,
1190
+ self.request.uri,
1191
+ client_ip,
1192
+ self.phanterpwa_current_user.email
1193
+ )
1194
+ return summary
1195
+
1124
1196
  def options(self, *args):
1125
1197
  self.set_status(200)
1126
1198
  self.write({"status": "OK"})
@@ -1188,6 +1260,24 @@ class RequestAccount(web.RequestHandler):
1188
1260
  def check_origin(self, origin):
1189
1261
  return True
1190
1262
 
1263
+ def _request_summary(self) -> str:
1264
+ client_ip = self.request.headers.get('X-Real-IP') or\
1265
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
1266
+ self.request.remote_ip
1267
+ summary = "{0} {1} ({2})".format(
1268
+ self.request.method,
1269
+ self.request.uri,
1270
+ client_ip,
1271
+ )
1272
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
1273
+ summary = "{0} {1} ({2} - {3})".format(
1274
+ self.request.method,
1275
+ self.request.uri,
1276
+ client_ip,
1277
+ self.phanterpwa_current_user.email
1278
+ )
1279
+ return summary
1280
+
1191
1281
  def get(self, *args, **kargs):
1192
1282
  self.set_status(200)
1193
1283
  self.write({"status": "OK"})
@@ -1377,6 +1467,24 @@ class ChangePassword(web.RequestHandler):
1377
1467
  def check_origin(self, origin):
1378
1468
  return True
1379
1469
 
1470
+ def _request_summary(self) -> str:
1471
+ client_ip = self.request.headers.get('X-Real-IP') or\
1472
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
1473
+ self.request.remote_ip
1474
+ summary = "{0} {1} ({2})".format(
1475
+ self.request.method,
1476
+ self.request.uri,
1477
+ client_ip,
1478
+ )
1479
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
1480
+ summary = "{0} {1} ({2} - {3})".format(
1481
+ self.request.method,
1482
+ self.request.uri,
1483
+ client_ip,
1484
+ self.phanterpwa_current_user.email
1485
+ )
1486
+ return summary
1487
+
1380
1488
  @requires_authentication(roles_name="root")
1381
1489
  @check_private_csrf_token(form_identify=["phanterpwa-form-auth_user"])
1382
1490
  def post(self):
@@ -43,6 +43,7 @@ from phanterpwa.gallery.integrationDAL import PhanterpwaGalleryUserImage
43
43
  from tornado import (
44
44
  web
45
45
  )
46
+ from tornado.log import access_log
46
47
  from phanterpwa.backend.security import (
47
48
  Serialize,
48
49
  SignatureExpired,
@@ -283,6 +284,7 @@ class Auth(web.RequestHandler):
283
284
  self.Translator_email = Translator_email
284
285
  self.i18nTranslator = i18nTranslator
285
286
  self.SMSSender = SMSSender
287
+ self.logger_api = access_log
286
288
  if logger_api:
287
289
  self.logger_api = logger_api
288
290
  if i18nTranslator:
@@ -315,6 +317,24 @@ class Auth(web.RequestHandler):
315
317
  def check_origin(self, origin):
316
318
  return True
317
319
 
320
+ def _request_summary(self) -> str:
321
+ client_ip = self.request.headers.get('X-Real-IP') or\
322
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
323
+ self.request.remote_ip
324
+ summary = "{0} {1} ({2})".format(
325
+ self.request.method,
326
+ self.request.uri,
327
+ client_ip,
328
+ )
329
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
330
+ summary = "{0} {1} ({2} - {3})".format(
331
+ self.request.method,
332
+ self.request.uri,
333
+ client_ip,
334
+ self.phanterpwa_current_user.email
335
+ )
336
+ return summary
337
+
318
338
  def options(self, *args):
319
339
  self.set_status(200)
320
340
  self.write({"status": "OK"})
@@ -1139,6 +1159,24 @@ class Activity(web.RequestHandler):
1139
1159
  def check_origin(self, origin):
1140
1160
  return True
1141
1161
 
1162
+ def _request_summary(self) -> str:
1163
+ client_ip = self.request.headers.get('X-Real-IP') or\
1164
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
1165
+ self.request.remote_ip
1166
+ summary = "{0} {1} ({2})".format(
1167
+ self.request.method,
1168
+ self.request.uri,
1169
+ client_ip,
1170
+ )
1171
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
1172
+ summary = "{0} {1} ({2} - {3})".format(
1173
+ self.request.method,
1174
+ self.request.uri,
1175
+ client_ip,
1176
+ self.phanterpwa_current_user.email
1177
+ )
1178
+ return summary
1179
+
1142
1180
  def options(self, *args):
1143
1181
  self.set_status(200)
1144
1182
  self.write({"status": "OK"})
@@ -1206,6 +1244,24 @@ class TwoFactor(web.RequestHandler):
1206
1244
  def check_origin(self, origin):
1207
1245
  return True
1208
1246
 
1247
+ def _request_summary(self) -> str:
1248
+ client_ip = self.request.headers.get('X-Real-IP') or\
1249
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
1250
+ self.request.remote_ip
1251
+ summary = "{0} {1} ({2})".format(
1252
+ self.request.method,
1253
+ self.request.uri,
1254
+ client_ip,
1255
+ )
1256
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
1257
+ summary = "{0} {1} ({2} - {3})".format(
1258
+ self.request.method,
1259
+ self.request.uri,
1260
+ client_ip,
1261
+ self.phanterpwa_current_user.email
1262
+ )
1263
+ return summary
1264
+
1209
1265
  def options(self, *args):
1210
1266
  self.set_status(200)
1211
1267
  self.write({"status": "OK"})
@@ -1440,6 +1496,24 @@ class LockUser(web.RequestHandler):
1440
1496
  def check_origin(self, origin):
1441
1497
  return True
1442
1498
 
1499
+ def _request_summary(self) -> str:
1500
+ client_ip = self.request.headers.get('X-Real-IP') or\
1501
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
1502
+ self.request.remote_ip
1503
+ summary = "{0} {1} ({2})".format(
1504
+ self.request.method,
1505
+ self.request.uri,
1506
+ client_ip,
1507
+ )
1508
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
1509
+ summary = "{0} {1} ({2} - {3})".format(
1510
+ self.request.method,
1511
+ self.request.uri,
1512
+ client_ip,
1513
+ self.phanterpwa_current_user.email
1514
+ )
1515
+ return summary
1516
+
1443
1517
  @check_client_token()
1444
1518
  @check_user_token()
1445
1519
  def get(self):
@@ -1498,6 +1572,24 @@ class ImageUser(web.RequestHandler):
1498
1572
  def check_origin(self, origin):
1499
1573
  return True
1500
1574
 
1575
+ def _request_summary(self) -> str:
1576
+ client_ip = self.request.headers.get('X-Real-IP') or\
1577
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
1578
+ self.request.remote_ip
1579
+ summary = "{0} {1} ({2})".format(
1580
+ self.request.method,
1581
+ self.request.uri,
1582
+ client_ip,
1583
+ )
1584
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
1585
+ summary = "{0} {1} ({2} - {3})".format(
1586
+ self.request.method,
1587
+ self.request.uri,
1588
+ client_ip,
1589
+ self.phanterpwa_current_user.email
1590
+ )
1591
+ return summary
1592
+
1501
1593
  @check_url_token(ignore_user_agent=True)
1502
1594
  def get(self, *args, **kargs):
1503
1595
  """
@@ -1601,6 +1693,24 @@ class ChangeAccount(web.RequestHandler):
1601
1693
  def check_origin(self, origin):
1602
1694
  return True
1603
1695
 
1696
+ def _request_summary(self) -> str:
1697
+ client_ip = self.request.headers.get('X-Real-IP') or\
1698
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
1699
+ self.request.remote_ip
1700
+ summary = "{0} {1} ({2})".format(
1701
+ self.request.method,
1702
+ self.request.uri,
1703
+ client_ip,
1704
+ )
1705
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
1706
+ summary = "{0} {1} ({2} - {3})".format(
1707
+ self.request.method,
1708
+ self.request.uri,
1709
+ client_ip,
1710
+ self.phanterpwa_current_user.email
1711
+ )
1712
+ return summary
1713
+
1604
1714
  @check_private_csrf_token(form_identify=["phanterpwa-form-profile", "phanterpwa-form-change_account"])
1605
1715
  def put(self, *args, **kargs):
1606
1716
 
@@ -2012,6 +2122,24 @@ class CreateAccount(web.RequestHandler):
2012
2122
  def check_origin(self, origin):
2013
2123
  return True
2014
2124
 
2125
+ def _request_summary(self) -> str:
2126
+ client_ip = self.request.headers.get('X-Real-IP') or\
2127
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
2128
+ self.request.remote_ip
2129
+ summary = "{0} {1} ({2})".format(
2130
+ self.request.method,
2131
+ self.request.uri,
2132
+ client_ip,
2133
+ )
2134
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
2135
+ summary = "{0} {1} ({2} - {3})".format(
2136
+ self.request.method,
2137
+ self.request.uri,
2138
+ client_ip,
2139
+ self.phanterpwa_current_user.email
2140
+ )
2141
+ return summary
2142
+
2015
2143
  @requires_no_authentication()
2016
2144
  @check_public_csrf_token(form_identify="phanterpwa-form-register")
2017
2145
  def post(self):
@@ -2277,6 +2405,24 @@ class RequestAccount(web.RequestHandler):
2277
2405
  def check_origin(self, origin):
2278
2406
  return True
2279
2407
 
2408
+ def _request_summary(self) -> str:
2409
+ client_ip = self.request.headers.get('X-Real-IP') or\
2410
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
2411
+ self.request.remote_ip
2412
+ summary = "{0} {1} ({2})".format(
2413
+ self.request.method,
2414
+ self.request.uri,
2415
+ client_ip,
2416
+ )
2417
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
2418
+ summary = "{0} {1} ({2} - {3})".format(
2419
+ self.request.method,
2420
+ self.request.uri,
2421
+ client_ip,
2422
+ self.phanterpwa_current_user.email
2423
+ )
2424
+ return summary
2425
+
2280
2426
  @requires_no_authentication()
2281
2427
  @check_public_csrf_token(form_identify="phanterpwa-form-request_password")
2282
2428
  def post(self, *args, **kargs):
@@ -2647,6 +2793,24 @@ class ActiveAccount(web.RequestHandler):
2647
2793
  def check_origin(self, origin):
2648
2794
  return True
2649
2795
 
2796
+ def _request_summary(self) -> str:
2797
+ client_ip = self.request.headers.get('X-Real-IP') or\
2798
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
2799
+ self.request.remote_ip
2800
+ summary = "{0} {1} ({2})".format(
2801
+ self.request.method,
2802
+ self.request.uri,
2803
+ client_ip,
2804
+ )
2805
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
2806
+ summary = "{0} {1} ({2} - {3})".format(
2807
+ self.request.method,
2808
+ self.request.uri,
2809
+ client_ip,
2810
+ self.phanterpwa_current_user.email
2811
+ )
2812
+ return summary
2813
+
2650
2814
  @check_user_token(ignore_activation=True)
2651
2815
  def get(self, *args, **kargs):
2652
2816
  now = datetime.now()
@@ -3140,6 +3304,24 @@ class ChangePassword(web.RequestHandler):
3140
3304
  def check_origin(self, origin):
3141
3305
  return True
3142
3306
 
3307
+ def _request_summary(self) -> str:
3308
+ client_ip = self.request.headers.get('X-Real-IP') or\
3309
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
3310
+ self.request.remote_ip
3311
+ summary = "{0} {1} ({2})".format(
3312
+ self.request.method,
3313
+ self.request.uri,
3314
+ client_ip,
3315
+ )
3316
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
3317
+ summary = "{0} {1} ({2} - {3})".format(
3318
+ self.request.method,
3319
+ self.request.uri,
3320
+ client_ip,
3321
+ self.phanterpwa_current_user.email
3322
+ )
3323
+ return summary
3324
+
3143
3325
  @check_private_csrf_token(form_identify="phanterpwa-form-change_password")
3144
3326
  def post(self):
3145
3327
  dict_arguments = {k: self.request.arguments.get(k)[0].decode('utf-8') for k in self.request.arguments}
@@ -3310,6 +3492,24 @@ class SMSGateway(web.RequestHandler):
3310
3492
  def check_origin(self, origin):
3311
3493
  return True
3312
3494
 
3495
+ def _request_summary(self) -> str:
3496
+ client_ip = self.request.headers.get('X-Real-IP') or\
3497
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
3498
+ self.request.remote_ip
3499
+ summary = "{0} {1} ({2})".format(
3500
+ self.request.method,
3501
+ self.request.uri,
3502
+ client_ip,
3503
+ )
3504
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
3505
+ summary = "{0} {1} ({2} - {3})".format(
3506
+ self.request.method,
3507
+ self.request.uri,
3508
+ client_ip,
3509
+ self.phanterpwa_current_user.email
3510
+ )
3511
+ return summary
3512
+
3313
3513
  def options(self, *args):
3314
3514
  self.set_status(200)
3315
3515
  self.write({"status": "OK"})
@@ -3495,6 +3695,24 @@ class AuthUserAutoComplete(web.RequestHandler):
3495
3695
  def check_origin(self, origin):
3496
3696
  return True
3497
3697
 
3698
+ def _request_summary(self) -> str:
3699
+ client_ip = self.request.headers.get('X-Real-IP') or\
3700
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
3701
+ self.request.remote_ip
3702
+ summary = "{0} {1} ({2})".format(
3703
+ self.request.method,
3704
+ self.request.uri,
3705
+ client_ip,
3706
+ )
3707
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
3708
+ summary = "{0} {1} ({2} - {3})".format(
3709
+ self.request.method,
3710
+ self.request.uri,
3711
+ client_ip,
3712
+ self.phanterpwa_current_user.email
3713
+ )
3714
+ return summary
3715
+
3498
3716
  def options(self, *args):
3499
3717
  self.set_status(200)
3500
3718
  self.write({"status": "OK"})
@@ -94,6 +94,24 @@ class CAS(web.RequestHandler):
94
94
  def check_origin(self, origin):
95
95
  return True
96
96
 
97
+ def _request_summary(self) -> str:
98
+ client_ip = self.request.headers.get('X-Real-IP') or\
99
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
100
+ self.request.remote_ip
101
+ summary = "{0} {1} ({2})".format(
102
+ self.request.method,
103
+ self.request.uri,
104
+ client_ip,
105
+ )
106
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
107
+ summary = "{0} {1} ({2} - {3})".format(
108
+ self.request.method,
109
+ self.request.uri,
110
+ client_ip,
111
+ self.phanterpwa_current_user.email
112
+ )
113
+ return summary
114
+
97
115
  def options(self, *args):
98
116
  self.set_status(200)
99
117
  self.write({"status": "OK"})
@@ -70,6 +70,24 @@ class SignClient(web.RequestHandler):
70
70
  def check_origin(self, origin):
71
71
  return True
72
72
 
73
+ def _request_summary(self) -> str:
74
+ client_ip = self.request.headers.get('X-Real-IP') or\
75
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
76
+ self.request.remote_ip
77
+ summary = "{0} {1} ({2})".format(
78
+ self.request.method,
79
+ self.request.uri,
80
+ client_ip,
81
+ )
82
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
83
+ summary = "{0} {1} ({2} - {3})".format(
84
+ self.request.method,
85
+ self.request.uri,
86
+ client_ip,
87
+ self.phanterpwa_current_user.email
88
+ )
89
+ return summary
90
+
73
91
  @check_application()
74
92
  def get(self, *args, **kargs):
75
93
  expire_date = datetime.now() - timedelta(seconds=self.projectConfig['BACKEND'][self.app_name]['default_time_client_token_expire'])
@@ -423,6 +441,24 @@ class SignForms(web.RequestHandler):
423
441
  def check_origin(self, origin):
424
442
  return True
425
443
 
444
+ def _request_summary(self) -> str:
445
+ client_ip = self.request.headers.get('X-Real-IP') or\
446
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
447
+ self.request.remote_ip
448
+ summary = "{0} {1} ({2})".format(
449
+ self.request.method,
450
+ self.request.uri,
451
+ client_ip,
452
+ )
453
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
454
+ summary = "{0} {1} ({2} - {3})".format(
455
+ self.request.method,
456
+ self.request.uri,
457
+ client_ip,
458
+ self.phanterpwa_current_user.email
459
+ )
460
+ return summary
461
+
426
462
  @check_user_token(ignore_activation=True)
427
463
  def get(self, *args, **kargs):
428
464
  """
@@ -527,6 +563,24 @@ class SignLockForm(web.RequestHandler):
527
563
  def check_origin(self, origin):
528
564
  return True
529
565
 
566
+ def _request_summary(self) -> str:
567
+ client_ip = self.request.headers.get('X-Real-IP') or\
568
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
569
+ self.request.remote_ip
570
+ summary = "{0} {1} ({2})".format(
571
+ self.request.method,
572
+ self.request.uri,
573
+ client_ip,
574
+ )
575
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
576
+ summary = "{0} {1} ({2} - {3})".format(
577
+ self.request.method,
578
+ self.request.uri,
579
+ client_ip,
580
+ self.phanterpwa_current_user.email
581
+ )
582
+ return summary
583
+
530
584
  @check_client_token()
531
585
  def get(self, *args, **kargs):
532
586
  """
@@ -636,6 +690,24 @@ class SignCaptchaForms(web.RequestHandler):
636
690
  def check_origin(self, origin):
637
691
  return True
638
692
 
693
+ def _request_summary(self) -> str:
694
+ client_ip = self.request.headers.get('X-Real-IP') or\
695
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
696
+ self.request.remote_ip
697
+ summary = "{0} {1} ({2})".format(
698
+ self.request.method,
699
+ self.request.uri,
700
+ client_ip,
701
+ )
702
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
703
+ summary = "{0} {1} ({2} - {3})".format(
704
+ self.request.method,
705
+ self.request.uri,
706
+ client_ip,
707
+ self.phanterpwa_current_user.email
708
+ )
709
+ return summary
710
+
639
711
  @check_client_token()
640
712
  def get(self, *args, **kargs):
641
713
  """
@@ -848,6 +920,24 @@ class ReSing(web.RequestHandler):
848
920
  def check_origin(self, origin):
849
921
  return True
850
922
 
923
+ def _request_summary(self) -> str:
924
+ client_ip = self.request.headers.get('X-Real-IP') or\
925
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
926
+ self.request.remote_ip
927
+ summary = "{0} {1} ({2})".format(
928
+ self.request.method,
929
+ self.request.uri,
930
+ client_ip,
931
+ )
932
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
933
+ summary = "{0} {1} ({2} - {3})".format(
934
+ self.request.method,
935
+ self.request.uri,
936
+ client_ip,
937
+ self.phanterpwa_current_user.email
938
+ )
939
+ return summary
940
+
851
941
  @check_user_token()
852
942
  def get(self, *args, **kargs):
853
943
  q_client = self.DALDatabase(self.DALDatabase.client.token == self.phanterpwa_client_token).select().first()
@@ -73,6 +73,24 @@ class Errors(web.RequestHandler):
73
73
  def check_origin(self, origin):
74
74
  return True
75
75
 
76
+ def _request_summary(self) -> str:
77
+ client_ip = self.request.headers.get('X-Real-IP') or\
78
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
79
+ self.request.remote_ip
80
+ summary = "{0} {1} ({2})".format(
81
+ self.request.method,
82
+ self.request.uri,
83
+ client_ip,
84
+ )
85
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
86
+ summary = "{0} {1} ({2} - {3})".format(
87
+ self.request.method,
88
+ self.request.uri,
89
+ client_ip,
90
+ self.phanterpwa_current_user.email
91
+ )
92
+ return summary
93
+
76
94
  def options(self, *args):
77
95
  self.set_status(200)
78
96
  self.write({"status": "OK"})
@@ -38,6 +38,24 @@ class I18N(web.RequestHandler):
38
38
  def check_origin(self, origin):
39
39
  return True
40
40
 
41
+ def _request_summary(self) -> str:
42
+ client_ip = self.request.headers.get('X-Real-IP') or\
43
+ self.request.headers.get('X-Forwarded-For', '').split(',')[0].strip() or\
44
+ self.request.remote_ip
45
+ summary = "{0} {1} ({2})".format(
46
+ self.request.method,
47
+ self.request.uri,
48
+ client_ip,
49
+ )
50
+ if hasattr(self, "phanterpwa_current_user") and self.phanterpwa_current_user is not None:
51
+ summary = "{0} {1} ({2} - {3})".format(
52
+ self.request.method,
53
+ self.request.uri,
54
+ client_ip,
55
+ self.phanterpwa_current_user.email
56
+ )
57
+ return summary
58
+
41
59
  def options(self, *args):
42
60
  self.set_status(200)
43
61
  return self.write({"status": "OK"})