public async Task RemoveAsync(string key) { using (var ctx = new PBugContext(dbOptions)) { Session s = await ctx.Sessions.FindAsync(Convert.FromBase64String(key)); if (s != null) { ctx.Remove(s); await ctx.SaveChangesAsync(); } } }
public async Task <AuthenticationTicket> RetrieveAsync(string key) { using (var ctx = new PBugContext(dbOptions)) { Session s = await ctx.Sessions.FindAsync(Convert.FromBase64String(key)); if (s != null) { return(TicketSerializer.Default.Deserialize(s.SessionData)); } } return(null); }
public async Task RenewAsync(string key, AuthenticationTicket ticket) { using (var ctx = new PBugContext(dbOptions)) { Session s = await ctx.Sessions.FindAsync(Convert.FromBase64String(key)); if (s != null) { s.SessionData = TicketSerializer.Default.Serialize(ticket); s.Expires = ticket.Properties.ExpiresUtc.Value; await ctx.SaveChangesAsync(); } } }
public async Task <string> StoreAsync(AuthenticationTicket ticket) { using (var ctx = new PBugContext(dbOptions)) { Session s = (await ctx.AddAsync(new Session() { Id = AuthUtils.GetRandomData(64), SessionData = TicketSerializer.Default.Serialize(ticket), Expires = ticket.Properties.ExpiresUtc })).Entity; await ctx.SaveChangesAsync(); return(Convert.ToBase64String(s.Id)); } }
public static void BuildDb() { var cfg = new ConfigurationBuilder() .AddJsonFile("appsettings.json") .Build(); var dbOpts = new DbContextOptionsBuilder <PBugContext>().UseMySql(cfg.GetConnectionString("Database")); using (var ctx = new PBugContext(dbOpts.Options)) { var logger = LoggerFactory.Create(opts => opts.AddConsole()).CreateLogger("PBug"); logger.LogInformation("Ensuring creation of DB"); ctx.Database.EnsureCreated(); if (!ctx.Users.Any()) { Role anonymous = new Role() { Name = "Anonymous", Permissions = "" }; Role admin = new Role() { Name = "Administrator", Permissions = "**" }; ctx.AddRange(anonymous, admin); User system = new User() { Role = admin, Username = "******", FullName = "PBug System" }; string password = Convert.ToBase64String(AuthUtils.GetRandomData(64)); system.PasswordSalt = AuthUtils.GetRandomData(64); system.PasswordHash = AuthUtils.GetHashFor(password, system.PasswordSalt); ctx.Add(system); ctx.SaveChanges(); File.WriteAllText("systempass.txt", password); logger.LogInformation("Created database. System password is in systempass.txt", password); } } }
public RequestDelegate Use(RequestDelegate next) { return(async(HttpContext ctx) => { Role role; using (PBugContext db = new PBugContext(dbopts)) if (ctx.User.IsAnonymous()) { role = await db.Roles.FindAsync(1u); } else { role = await db.Users.Where(x => x.Id == ctx.User.GetUserId()).Select(x => x.Role).FirstAsync(); } ctx.Features.Set(new PermissionData() { PermissionText = role.Permissions, RoleName = role.Name }); await next(ctx); }); }
public MainController(ILogger <MainController> logger, PBugContext db) { _logger = logger; Db = db; }
public UserController(PBugContext db, ILogger <UserController> log) { Db = db; logger = log; }
public AdminController(PBugContext db) { Db = db; }
public FileController(PBugContext db) { this.db = db; }
public IssueController(PBugContext db) { Db = db; }
public KnowledgeBaseController(PBugContext ctx) { Db = ctx; }