Example #1
0
        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);
        }
Example #2
0
        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)));
        }
Example #3
0
 protected virtual void RevokeConstant(int tenantId, WebPluginConstant constant)
 {
 }