routes.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. Router.onBeforeAction('loading');
  2. Router.configure({
  3. loadingTemplate: 'loading'
  4. });
  5. Router.route("/", {
  6. template: "home"
  7. });
  8. Router.route("/login", {
  9. action: function() {
  10. var user = Meteor.user();
  11. if (user === undefined || user === null) {
  12. this.render("login");
  13. } else {
  14. this.redirect("/");
  15. }
  16. }
  17. });
  18. Router.route("/signup", {
  19. action: function() {
  20. var user = Meteor.user();
  21. if (user === undefined || user === null) {
  22. this.render("register");
  23. } else {
  24. this.redirect("/");
  25. }
  26. }
  27. });
  28. Router.route("/settings", {
  29. action: function() {
  30. if (!Meteor.userId()) {
  31. this.redirect("/");
  32. } else {
  33. this.render("settings");
  34. }
  35. }
  36. });
  37. Router.route("/terms", {
  38. template: "terms"
  39. });
  40. Router.route("/contact", {
  41. template: "contact"
  42. });
  43. Router.route("/api", {
  44. template: "api"
  45. });
  46. Router.route("/privacy", {
  47. template: "privacy"
  48. });
  49. Router.route("/about", {
  50. template: "about"
  51. });
  52. Router.route("/admin", {
  53. waitOn: function() {
  54. return Meteor.subscribe("isAdmin", Meteor.userId());
  55. },
  56. action: function() {
  57. var user = Meteor.users.findOne({});
  58. if (user !== undefined && user.profile !== undefined && user.profile.rank === "admin") {
  59. this.render("admin");
  60. } else {
  61. this.redirect("/");
  62. }
  63. }
  64. });
  65. Router.route("/stations", {
  66. waitOn: function() {
  67. return Meteor.subscribe("isAdmin", Meteor.userId());
  68. },
  69. action: function() {
  70. var user = Meteor.users.findOne({});
  71. if (user !== undefined && user.profile !== undefined && user.profile.rank === "admin") {
  72. this.render("stations");
  73. } else {
  74. this.redirect("/");
  75. }
  76. }
  77. });
  78. Router.route("/admin/alerts", {
  79. waitOn: function() {
  80. return Meteor.subscribe("isAdmin", Meteor.userId());
  81. },
  82. action: function() {
  83. var user = Meteor.users.findOne({});
  84. if (user !== undefined && user.profile !== undefined && user.profile.rank === "admin") {
  85. this.render("alertsDashboard");
  86. } else {
  87. this.redirect("/");
  88. }
  89. }
  90. });
  91. Router.route("/:type", {
  92. template: "room"
  93. });
  94. Router.route("/u/:user", {
  95. template: "profile"
  96. });