settings.js 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. import { ServerSettings } from '../database/config.js';
  2. import { Alert, getLanguage, Navbar } from '../utils/system.js';
  3. export const Settings = async function(req,res){
  4. let custom_link = await ServerSettings.findOne({ where: {key: 'custom_link'}});
  5. let link_url = await ServerSettings.findOne({ where: {key: 'link_url'}});
  6. let user_registration = await ServerSettings.findOne({ where: {key: 'user_registration'}});
  7. let registration_secret = await ServerSettings.findOne({ where: {key: 'registration_secret'}});
  8. let authentication = await ServerSettings.findOne({ where: {key: 'authentication'}});
  9. let custom_link_enabled = '';
  10. try { if (custom_link.value == true) { custom_link_enabled = 'checked'; } } catch { console.log('Custom Link: No Value Set'); }
  11. let user_registration_enabled = '';
  12. try { if (user_registration.value == true) { user_registration_enabled = 'checked'; } } catch { console.log('User Registration: No Value Set'); }
  13. let link_url_value = '';
  14. try { link_url_value = link_url.value; } catch { console.log('Link URL: No Value Set'); }
  15. let registration_secret_value = '';
  16. try { registration_secret_value = registration_secret.value; } catch { console.log('Registration Secret: No Value Set'); }
  17. res.render("settings",{
  18. alert: '',
  19. username: req.session.username,
  20. role: req.session.role,
  21. user_registration: user_registration_enabled,
  22. registration_secret: registration_secret_value,
  23. custom_link: custom_link_enabled,
  24. link_url: link_url_value,
  25. authentication: authentication.value,
  26. navbar: await Navbar(req),
  27. });
  28. }
  29. export const updateSettings = async function (req, res) {
  30. let { user_registration, registration_secret, custom_link, link_url, authentication } = req.body;
  31. let { host2, tag2, ip2, port2 } = req.body;
  32. let { host3, tag3, ip3, port3 } = req.body;
  33. let { host4, tag4, ip4, port4 } = req.body;
  34. let trigger_name = req.header('hx-trigger-name');
  35. let trigger_id = req.header('hx-trigger');
  36. // If the trigger is 'submit', return the button
  37. if (trigger_id == 'submit'){
  38. res.send(`<button class="btn btn-primary" id="submit" form="settings">Update</button>`);
  39. return;
  40. }
  41. // Continues on if the trigger is 'settings
  42. // Custom link
  43. if (custom_link) {
  44. let exists = await ServerSettings.findOne({ where: {key: 'custom_link'}});
  45. if (exists) { await ServerSettings.update({value: true}, {where: {key: 'custom_link'}}); }
  46. else { await ServerSettings.create({ key: 'custom_link', value: true}); }
  47. let exists2 = await ServerSettings.findOne({ where: {key: 'link_url'}});
  48. if (exists2) { await ServerSettings.update({value: link_url}, {where: {key: 'link_url'}}); }
  49. else { await ServerSettings.create({ key: 'link_url', value: link_url}); }
  50. console.log('Custom link enabled');
  51. } else if (!custom_link) {
  52. let exists = await ServerSettings.findOne({ where: {key: 'custom_link'}});
  53. if (exists) { await ServerSettings.update({value: false}, {where: {key: 'custom_link'}}); }
  54. else { await ServerSettings.create({ key: 'custom_link', value: false}); }
  55. let exists2 = await ServerSettings.findOne({ where: {key: 'link_url'}});
  56. if (exists2) { await ServerSettings.update({value: ''}, {where: {key: 'link_url'}}); }
  57. else { await ServerSettings.create({ key: 'link_url', value: ''}); }
  58. console.log('Custom links off');
  59. }
  60. // User registration
  61. if (user_registration) {
  62. let exists = await ServerSettings.findOne({ where: {key: 'user_registration'}});
  63. if (exists) { const setting = await ServerSettings.update({value: true}, {where: {key: 'user_registration'}}); }
  64. else { const newSetting = await ServerSettings.create({ key: 'user_registration', value: true}); }
  65. let exists2 = await ServerSettings.findOne({ where: {key: 'registration_secret'}});
  66. if (exists2) { await ServerSettings.update({value: registration_secret}, {where: {key: 'registration_secret'}}); }
  67. else { await ServerSettings.create({ key: 'registration_secret', value: registration_secret}); }
  68. console.log('registration on');
  69. } else if (!user_registration) {
  70. let exists = await ServerSettings.findOne({ where: {key: 'user_registration'}});
  71. if (exists) { await ServerSettings.update({value: false}, {where: {key: 'user_registration'}}); }
  72. else { await ServerSettings.create({ key: 'user_registration', value: false}); }
  73. let exists2 = await ServerSettings.findOne({ where: {key: 'registration_secret'}});
  74. if (exists2) { await ServerSettings.update({value: ''}, {where: {key: 'registration_secret'}}); }
  75. else { await ServerSettings.create({ key: 'registration_secret', value: ''}); }
  76. console.log('registration off');
  77. }
  78. // Authentication
  79. if (authentication) {
  80. let exists = await ServerSettings.findOne({ where: {key: 'authentication'}});
  81. if (exists) { await ServerSettings.update({value: authentication}, {where: {key: 'authentication'}}); }
  82. else { await ServerSettings.create({ key: 'authentication', value: authentication}); }
  83. console.log('Authentication on');
  84. } else if (!authentication) {
  85. let exists = await ServerSettings.findOne({ where: {key: 'authentication'}});
  86. if (exists) { await ServerSettings.update({value: 'default'}, {where: {key: 'authentication'}}); }
  87. else { await ServerSettings.create({ key: 'authentication', value: 'off'}); }
  88. console.log('Authentication off');
  89. }
  90. // Host 2
  91. if (host2) {
  92. let exists = await ServerSettings.findOne({ where: {key: 'host2'}});
  93. if (exists) { const setting = await ServerSettings.update({value: `${tag2},${ip2},${port2}`}, {where: {key: 'host2'}}); }
  94. else { const newSetting = await ServerSettings.create({ key: 'host2', value: `${tag2},${ip2},${port2}`}); }
  95. console.log('host2 on');
  96. } else if (!host2) {
  97. let exists = await ServerSettings.findOne({ where: {key: 'host2'}});
  98. if (exists) { const setting = await ServerSettings.update({value: ''}, {where: {key: 'host2'}}); }
  99. else { const newSetting = await ServerSettings.create({ key: 'host2', value: ''}); }
  100. console.log('host2 off');
  101. }
  102. // // Host 3
  103. if (host3) {
  104. let exists = await ServerSettings.findOne({ where: {key: 'host3'}});
  105. if (exists) { const setting = await ServerSettings.update({value: `${tag3},${ip3},${port3}`}, {where: {key: 'host3'}}); }
  106. else { const newSetting = await ServerSettings.create({ key: 'host3', value: `${tag3},${ip3},${port3}`}); }
  107. console.log('host3 on');
  108. } else if (!host3) {
  109. let exists = await ServerSettings.findOne({ where: {key: 'host3'}});
  110. if (exists) { const setting = await ServerSettings.update({value: ''}, {where: {key: 'host3'}}); }
  111. else { const newSetting = await ServerSettings.create({ key: 'host3', value: ''}); }
  112. console.log('host3 off');
  113. }
  114. // Host 4
  115. if (host4) {
  116. let exists = await ServerSettings.findOne({ where: {key: 'host4'}});
  117. if (exists) { const setting = await ServerSettings.update({value: `${tag4},${ip4},${port4}`}, {where: {key: 'host4'}}); }
  118. else { const newSetting = await ServerSettings.create({ key: 'host4', value: `${tag4},${ip4},${port4}`}); }
  119. console.log('host4 on');
  120. } else if (!host4) {
  121. let exists = await ServerSettings.findOne({ where: {key: 'host4'}});
  122. if (exists) { const setting = await ServerSettings.update({value: ''}, {where: {key: 'host4'}}); }
  123. else { const newSetting = await ServerSettings.create({ key: 'host4', value: ''}); }
  124. console.log('host4 off');
  125. }
  126. console.log('Settings updated');
  127. res.send(`<button class="btn btn-success" hx-post="/settings" hx-trigger="load delay:2s" hx-swap="outerHTML" id="submit" hx-target="#submit">Updated</button>`);
  128. }