public async Task <ActionResult> Create(Permission_Access idata) { var result = new ApiResultModel <Permission_Access>(); var data = await _storage.GetRepository <IPermission_Repository>().CreateAsync(idata); if (data != null) { result.Data = data; return(Ok(result)); } else { result.BadRequest(); return(BadRequest(result)); } }
public async Task <ActionResult> Update(int id, Permission_Access idata) { var result = new ApiResultModel <Permission_Access>(); if (idata.id != id) { result.BadRequest("ID mismatch"); return(BadRequest(result)); } var data = await _storage.GetRepository <IPermission_Repository>().UpdateAsync(idata); if (data != null) { result.Data = data; return(Ok(result)); } else { result.BadRequest(); return(BadRequest(result)); } }
public async Task <bool> SetupMudules() { try { var perms = new ClaimPermission().GetPermissions(); var extensions = new List <IExtension>(); var all_policy_db = await dbSet.AsNoTracking().ToListAsync(); var admin_role_db = this.storageContext.Set <User_Role>(); var admin_codes = new string[] { "admin", "system", "systemadmin", "system_admin" }; var admin_roles = await admin_role_db.AsNoTracking().Where(x => admin_codes.Contains(x.code.ToLower())).ToListAsync(); if (admin_roles.Count() == 0) { admin_roles = new List <User_Role>() { new User_Role() { code = "SYSTEM", name = "System", role_level = 30 }, new User_Role() { code = "SYSTEM_ADMIN", name = "System admin", role_level = 29 }, new User_Role() { code = "ADMIN", name = "Administrator", role_level = 28 }, }; await admin_role_db.AddRangeAsync(admin_roles); await storageContext.SaveChangesAsync(); } if (Client.ServerSettings.AssemblyCandidate) { string[] starts = new string[] { "ExtCore" }; extensions = ExtensionManager.GetInstances <IExtension>().Where(x => !starts.Any(sl => x.Name.StartsWith(sl))).ToList(); } else { extensions = ExtensionManager.GetInstances <IExtension>().ToList(); } var permission_context = this.storageContext.Set <Permission_Access>(); var all_permission_db = await permission_context.AsNoTracking().ToListAsync(); all_permission_db.ForEach(x => { x.is_active = false; }); if (all_permission_db.Count() > 0) { return(false); } //var new_perms = new List<Permission_Access>(); var new_pols = new List <Policy_Roles>(); foreach (var perm in perms) { var new_perm = new Permission_Access() { name = perm, is_active = true, code = perm, description = perm }; await permission_context.AddAsync(new_perm); await storageContext.SaveChangesAsync(); foreach (var ext in extensions) { var policy_code = $"{ext.Code}.{perm}"; foreach (var role in admin_roles) { new_pols.Add(new Policy_Roles() { role_id = role.id, permission_id = new_perm.id, code = policy_code, module_name = ext.Name, module_code = ext.Code, User_Role = null, Permission = null }); } } } await dbSet.AddRangeAsync(new_pols); await storageContext.SaveChangesAsync(); return(true); } catch (Exception) { return(false); } }