Public API for a society manager application

permissions-controller.js 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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_is_in_society: function (auth, society, complete) {
  12. var user_controller = require("./user-controller.js");
  13. var society_controller = require("./society-controller.js");
  14. user_controller.get_user_from_auth(auth, function (username) {
  15. if (!username) {
  16. complete(false);
  17. return;
  18. }
  19. society_controller.get_user_list(society, function (userlist) {
  20. if (!userlist[0]) {
  21. complete(false);
  22. return;
  23. }
  24. complete((userlist.indexOf(username) !== -1));
  25. });
  26. });
  27. },
  28. user_can_manage_soc_events: function (auth, society, complete) {
  29. var user_controller = require("./user-controller.js");
  30. var society_controller = require("./society-controller.js");
  31. user_controller.get_user_from_auth(auth, function(username) {
  32. if (!username) {
  33. complete(false);
  34. return;
  35. }
  36. society_controller.get_admin_list(society, function (adminlist) {
  37. if (!adminlist[0]) {
  38. complete(false);
  39. return;
  40. }
  41. complete((adminlist.indexOf(username) !== -1));
  42. });
  43. });
  44. },
  45. user_can_manage_society: function (auth, society, complete) {
  46. this.user_can_manage_soc_events(auth, society, function (permission) {
  47. complete(permission);
  48. });
  49. }
  50. }