Public API for a society manager application

permissions-controller.js 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. var society_controller = require("./society-controller.js");
  2. var bcrypt = require("bcrypt-nodejs");
  3. module.exports = {
  4. user_can_auth: function (user, pass, complete) {
  5. var user_controller = require("./user-controller.js");
  6. user_controller.get_password(user, function (result) {
  7. bcrypt.compare(pass, result, function (err, matched) {
  8. complete(matched === true);
  9. });
  10. })
  11. },
  12. user_can_view_society: function (auth, complete) {
  13. complete(true);
  14. },
  15. user_can_view_soc_events: function (auth, society, complete) {
  16. var user_controller = require("./user-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. user_controller.get_user_from_auth(auth, function(username) {
  34. if (!username) {
  35. complete(false);
  36. return;
  37. }
  38. society_controller.get_admin_list(society, function (adminlist) {
  39. if (!adminlist[0]) {
  40. complete(false);
  41. return;
  42. }
  43. complete((adminlist.indexOf(username) !== -1));
  44. });
  45. });
  46. },
  47. user_can_manage_society: function (auth, society, complete) {
  48. var user_controller = require("./user-controller.js");
  49. user_can_manage_soc_events(auth, society, function (permission) {
  50. complete(permission);
  51. });
  52. }
  53. }