Public API for a society manager application

permissions-controller.js 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. var bcrypt = require("bcrypt-nodejs");
  2. module.exports = {
  3. user_can_auth: function (user, pass, complete) {
  4. var user_controller = require("./user-controller.js");
  5. user_controller.get_password(user, function (result) {
  6. bcrypt.compare(pass, result, function (err, matched) {
  7. complete(matched === true);
  8. });
  9. })
  10. },
  11. user_can_view_society: function (auth, complete) {
  12. complete(true);
  13. },
  14. user_can_view_soc_events: function (auth, society, complete) {
  15. var user_controller = require("./user-controller.js");
  16. var society_controller = require("./society-controller.js");
  17. user_controller.get_user_from_auth(auth, function (username) {
  18. if (!username) {
  19. complete(false);
  20. return;
  21. }
  22. society_controller.get_user_list(society, function (userlist) {
  23. if (!userlist[0]) {
  24. complete(false);
  25. return;
  26. }
  27. complete((userlist.indexOf(username) !== -1));
  28. });
  29. });
  30. },
  31. user_can_manage_soc_events: function (auth, society, complete) {
  32. var user_controller = require("./user-controller.js");
  33. var society_controller = require("./society-controller.js");
  34. user_controller.get_user_from_auth(auth, function(username) {
  35. if (!username) {
  36. complete(false);
  37. return;
  38. }
  39. society_controller.get_admin_list(society, function (adminlist) {
  40. if (!adminlist[0]) {
  41. complete(false);
  42. return;
  43. }
  44. complete((adminlist.indexOf(username) !== -1));
  45. });
  46. });
  47. },
  48. user_can_manage_society: function (auth, society, complete) {
  49. this.user_can_manage_soc_events(auth, society, function (permission) {
  50. complete(permission);
  51. });
  52. }
  53. }