Advertisement
Guest User

Untitled

a guest
Mar 1st, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.38 KB | None | 0 0
  1. // Parent class
  2. function Controller() {
  3. this.errors = [];
  4. }
  5. Controller.prototype.showDialog = function(title,msg) {
  6. // display title & message to user in dialog
  7. };
  8. Controller.prototype.success = function(msg) {
  9. this.showDialog( "Success", msg );
  10. };
  11. Controller.prototype.failure = function(err) {
  12. this.errors.push( err );
  13. this.showDialog( "Error", err );
  14. };
  15.  
  16.  
  17. // Child class
  18. function LoginController() {
  19. Controller.call( this );
  20. }
  21. // Link child class to parent
  22. LoginController.prototype = Object.create( Controller.prototype );
  23. LoginController.prototype.getUser = function() {
  24. return document.getElementById( "login_username" ).value;
  25. };
  26. LoginController.prototype.getPassword = function() {
  27. return document.getElementById( "login_password" ).value;
  28. };
  29. LoginController.prototype.validateEntry = function(user,pw) {
  30. user = user || this.getUser();
  31. pw = pw || this.getPassword();
  32.  
  33. if (!(user && pw)) {
  34. return this.failure( "Please enter a username & password!" );
  35. }
  36. else if (pw.length < 5) {
  37. return this.failure( "Password must be 5+ characters!" );
  38. }
  39.  
  40. // got here? validated!
  41. return true;
  42. };
  43. // Override to extend base `failure()`
  44. LoginController.prototype.failure = function(err) {
  45. // "super" call
  46. Controller.prototype.failure.call( this, "Login invalid: " + err );
  47. };
  48.  
  49.  
  50. // Child class
  51. function AuthController(login) {
  52. Controller.call( this );
  53. // in addition to inheritance, we also need composition
  54. this.login = login;
  55. }
  56. // Link child class to parent
  57. AuthController.prototype = Object.create( Controller.prototype );
  58. AuthController.prototype.server = function(url,data) {
  59. return $.ajax( {
  60. url: url,
  61. data: data
  62. } );
  63. };
  64. AuthController.prototype.checkAuth = function() {
  65. var user = this.login.getUser();
  66. var pw = this.login.getPassword();
  67.  
  68. if (this.login.validateEntry( user, pw )) {
  69. this.server( "/check-auth",{
  70. user: user,
  71. pw: pw
  72. } )
  73. .then( this.success.bind( this ) )
  74. .fail( this.failure.bind( this ) );
  75. }
  76. };
  77. // Override to extend base `success()`
  78. AuthController.prototype.success = function() {
  79. // "super" call
  80. Controller.prototype.success.call( this, "Authenticated!" );
  81. };
  82. // Override to extend base `failure()`
  83. AuthController.prototype.failure = function(err) {
  84. // "super" call
  85. Controller.prototype.failure.call( this, "Auth Failed: " + err );
  86. };
  87.  
  88.  
  89. var auth = new AuthController(
  90. // in addition to inheritance, we also need composition
  91. new LoginController()
  92. );
  93. auth.checkAuth();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement