protected virtual WebPluginConstant GetConst(int tenantId, ConstTemplateMarkup constant, bool addIfMissing) { var retVal = db.WebPluginConstants.FirstOrDefault(n => n.TenantId == tenantId && n.Name == constant.Name); if (retVal == null && addIfMissing) { retVal = new WebPluginConstant { TenantId = tenantId, Value = constant.Value, Name = constant.Name }; db.WebPluginConstants.Add(retVal); } return(retVal); }
public async Task <IActionResult> Create([DataSourceRequest] DataSourceRequest request, [FromQuery] int?tenantId) { if (!isSysAdmin) { tenantId = db.CurrentTenantId; } var model = new WebPluginConstant(); if (ModelState.IsValid) { await this.TryUpdateModelAsync <WebPluginConstantViewModel, WebPluginConstant>(model); model.TenantId = tenantId; db.WebPluginConstants.Add(model); if (model.Value.StartsWith("encrypt:")) { if (tenantId == null || !options.Value.UseExplicitTenantPasswords) { model.Value = PasswordSecurity.Encrypt(model.Value.Substring(8)); } else { var t = db.Tenants.First(n => n.TenantId == tenantId); if (!string.IsNullOrEmpty(t.TenantPassword)) { var pwd = Convert.FromBase64String(t.TenantPassword); model.Value = AesEncryptor.Encrypt(model.Value.Substring(8), pwd, false); } else { model.Value = PasswordSecurity.Encrypt(model.Value.Substring(8)); } } } await db.SaveChangesAsync(); } return(Json(await new[] { model.ToViewModel <WebPluginConstant, WebPluginConstantViewModel>() }.ToDataSourceResultAsync(request, ModelState))); }
protected virtual void RevokeConstant(int tenantId, WebPluginConstant constant) { }