Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
D 1.96 KB | None | 0 0
  1. module core.websettings;
  2.  
  3. import diamond.core.websettings;
  4.  
  5. class DiamondWebSettings : WebSettings
  6. {
  7.   import vibe.d : HTTPServerRequest, HTTPServerResponse, HTTPServerErrorInfo;
  8.  
  9.   import diamond.authentication;
  10.  
  11.   private:
  12.   this()
  13.   {
  14.     super();
  15.   }
  16.  
  17.   public:
  18.   override void onApplicationStart()
  19.   {
  20.     // Boolean values are: read, write, update, delete
  21.     auto guest = addRole("guest")
  22.       .addPermission("/", true, false, false, false)
  23.       .addPermission("/test", false, false, false, false);
  24.  
  25.     auto user = addRole("user")
  26.       .addPermission("/", true, false, false, false)
  27.       .addPermission("/test", true, false, false, false);
  28.  
  29.     setDefaultRole(guest);
  30.  
  31.     setTokenValidator(&validateToken);
  32.     setTokenSetter(&setToken);
  33.     setTokenInvalidator(&invalidateToken);
  34.   }
  35.  
  36.   private Role validateToken(string token, HTTPServerRequest request, HTTPServerResponse response)
  37.   {
  38.     return tokenIsValidInDatabase(token) ? getRole("user") : getRole("guest");
  39.   }
  40.  
  41.   private string setToken(HTTPServerRequest request, HTTPServerResponse response)
  42.   {
  43.     auto token = generateAuthToken();
  44.     insertTokenToDatabase(token);
  45.  
  46.     return token;
  47.   }
  48.  
  49.   private void invalidateToken(string token, HTTPServerRequest request, HTTPServerResponse response)
  50.   {
  51.     deleteTokenFromDatabase(token);
  52.   }
  53.  
  54.   override bool onBeforeRequest(HTTPServerRequest request, HTTPServerResponse response)
  55.   {
  56.     return true;
  57.   }
  58.  
  59.   override void onAfterRequest(HTTPServerRequest request, HTTPServerResponse response)
  60.   {
  61.   }
  62.  
  63.   override void onHttpError(Throwable thrownError, HTTPServerRequest request,
  64.     HTTPServerResponse response, HTTPServerErrorInfo error)
  65.   {
  66.   }
  67.  
  68.   override void onNotFound(HTTPServerRequest request, HTTPServerResponse response)
  69.   {
  70.   }
  71.  
  72.   override void onStaticFile(HTTPServerRequest request, HTTPServerResponse response)
  73.   {
  74.   }
  75. }
  76.  
  77. shared static this()
  78. {
  79.   webSettings = new DiamondWebSettings;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement