public static void Save(SambaConfigurationModel model) { var text = JsonConvert.SerializeObject(model, Formatting.Indented); if (File.Exists(CfgFile)) { File.Copy(CfgFile, CfgFileBackup, true); } FileWithAcl.WriteAllText(CfgFile, text, "644", "root", "wheel"); ConsoleLogger.Log("[samba] configuration saved"); }
public void Save(SambaConfigurationModel model) { var text = JsonConvert.SerializeObject(model, Formatting.Indented); if (File.Exists(_cfgFile)) { File.Copy(_cfgFile, _cfgFileBackup, true); } File.WriteAllText(_cfgFile, text); ConsoleLogger.Log("[samba] configuration saved"); }
public SambaConfiguration() { IoDir.CreateDirectory(Parameter.AntdCfgServices); if (!File.Exists(_cfgFile)) { _serviceModel = new SambaConfigurationModel(); } else { try { var text = File.ReadAllText(_cfgFile); var obj = JsonConvert.DeserializeObject <SambaConfigurationModel>(text); _serviceModel = obj; } catch (Exception) { _serviceModel = new SambaConfigurationModel(); } } }
public AntdSambaModule() { Get["/samba"] = x => { var sambaIsActive = SambaConfiguration.IsActive(); var model = new PageSambaModel { SambaIsActive = sambaIsActive, SambaOptions = SambaConfiguration.Get() ?? new SambaConfigurationModel(), SambaResources = SambaConfiguration.Get()?.Resources }; return(JsonConvert.SerializeObject(model)); }; Post["/samba/set"] = x => { SambaConfiguration.Set(); return(HttpStatusCode.OK); }; Post["/samba/restart"] = x => { SambaConfiguration.Start(); return(HttpStatusCode.OK); }; Post["/samba/stop"] = x => { SambaConfiguration.Stop(); return(HttpStatusCode.OK); }; Post["/samba/enable"] = x => { SambaConfiguration.Enable(); SambaConfiguration.Start(); return(HttpStatusCode.OK); }; Post["/samba/disable"] = x => { SambaConfiguration.Disable(); SambaConfiguration.Stop(); return(HttpStatusCode.OK); }; Post["/samba/options"] = x => { string dosCharset = Request.Form.DosCharset; string workgroup = Request.Form.Workgroup; string serverString = Request.Form.ServerString; string mapToGuest = Request.Form.MapToGuest; string obeyPamRestrictions = Request.Form.ObeyPamRestrictions; string guestAccount = Request.Form.GuestAccount; string pamPasswordChange = Request.Form.PamPasswordChange; string passwdProgram = Request.Form.PasswdProgram; string unixPasswordSync = Request.Form.UnixPasswordSync; string resetOnZeroVc = Request.Form.ResetOnZeroVc; string hostnameLookups = Request.Form.HostnameLookups; string loadPrinters = Request.Form.LoadPrinters; string printcapName = Request.Form.PrintcapName; string disableSpoolss = Request.Form.DisableSpoolss; string templateShell = Request.Form.TemplateShell; string winbindEnumUsers = Request.Form.WinbindEnumUsers; string winbindEnumGroups = Request.Form.WinbindEnumGroups; string winbindUseDefaultDomain = Request.Form.WinbindUseDefaultDomain; string winbindNssInfo = Request.Form.WinbindNssInfo; string winbindRefreshTickets = Request.Form.WinbindRefreshTickets; string winbindNormalizeNames = Request.Form.WinbindNormalizeNames; string recycleTouch = Request.Form.RecycleTouch; string recycleKeeptree = Request.Form.RecycleKeeptree; string recycleRepository = Request.Form.RecycleRepository; string nfs4Chown = Request.Form.Nfs4Chown; string nfs4Acedup = Request.Form.Nfs4Acedup; string nfs4Mode = Request.Form.Nfs4Mode; string shadowFormat = Request.Form.ShadowFormat; string shadowLocaltime = Request.Form.ShadowLocaltime; string shadowSort = Request.Form.ShadowSort; string shadowSnapdir = Request.Form.ShadowSnapdir; string rpcServerDefault = Request.Form.RpcServerDefault; string rpcServerSvcctl = Request.Form.RpcServerSvcctl; string rpcServerSrvsvc = Request.Form.RpcServerSrvsvc; string rpcServerEventlog = Request.Form.RpcServerEventlog; string rpcServerNtsvcs = Request.Form.RpcServerNtsvcs; string rpcServerWinreg = Request.Form.RpcServerWinreg; string rpcServerSpoolss = Request.Form.RpcServerSpoolss; string rpcDaemonSpoolssd = Request.Form.RpcDaemonSpoolssd; string rpcServerTcpip = Request.Form.RpcServerTcpip; string idmapConfigBackend = Request.Form.IdmapConfigBackend; string readOnly = Request.Form.ReadOnly; string guestOk = Request.Form.GuestOk; string aioReadSize = Request.Form.AioReadSize; string aioWriteSize = Request.Form.AioWriteSize; string eaSupport = Request.Form.EaSupport; string directoryNameCacheSize = Request.Form.DirectoryNameCacheSize; string caseSensitive = Request.Form.CaseSensitive; string mapReadonly = Request.Form.MapReadonly; string storeDosAttributes = Request.Form.StoreDosAttributes; string wideLinks = Request.Form.WideLinks; string dosFiletimeResolution = Request.Form.DosFiletimeResolution; string vfsObjects = Request.Form.VfsObjects; var model = new SambaConfigurationModel { DosCharset = dosCharset, Workgroup = workgroup, ServerString = serverString, MapToGuest = mapToGuest, ObeyPamRestrictions = obeyPamRestrictions, GuestAccount = guestAccount, PamPasswordChange = pamPasswordChange, PasswdProgram = passwdProgram, UnixPasswordSync = unixPasswordSync, ResetOnZeroVc = resetOnZeroVc, HostnameLookups = hostnameLookups, LoadPrinters = loadPrinters, PrintcapName = printcapName, DisableSpoolss = disableSpoolss, TemplateShell = templateShell, WinbindEnumUsers = winbindEnumUsers, WinbindEnumGroups = winbindEnumGroups, WinbindUseDefaultDomain = winbindUseDefaultDomain, WinbindNssInfo = winbindNssInfo, WinbindRefreshTickets = winbindRefreshTickets, WinbindNormalizeNames = winbindNormalizeNames, RecycleTouch = recycleTouch, RecycleKeeptree = recycleKeeptree, RecycleRepository = recycleRepository, Nfs4Chown = nfs4Chown, Nfs4Acedup = nfs4Acedup, Nfs4Mode = nfs4Mode, ShadowFormat = shadowFormat, ShadowLocaltime = shadowLocaltime, ShadowSort = shadowSort, ShadowSnapdir = shadowSnapdir, RpcServerDefault = rpcServerDefault, RpcServerSvcctl = rpcServerSvcctl, RpcServerSrvsvc = rpcServerSrvsvc, RpcServerEventlog = rpcServerEventlog, RpcServerNtsvcs = rpcServerNtsvcs, RpcServerWinreg = rpcServerWinreg, RpcServerSpoolss = rpcServerSpoolss, RpcDaemonSpoolssd = rpcDaemonSpoolssd, RpcServerTcpip = rpcServerTcpip, IdmapConfigBackend = idmapConfigBackend, ReadOnly = readOnly, GuestOk = guestOk, AioReadSize = aioReadSize, AioWriteSize = aioWriteSize, EaSupport = eaSupport, DirectoryNameCacheSize = directoryNameCacheSize, CaseSensitive = caseSensitive, MapReadonly = mapReadonly, StoreDosAttributes = storeDosAttributes, WideLinks = wideLinks, DosFiletimeResolution = dosFiletimeResolution, VfsObjects = vfsObjects }; SambaConfiguration.Save(model); return(HttpStatusCode.OK); }; Post["/samba/resource"] = x => { string name = Request.Form.Name; string path = Request.Form.Path; string comment = Request.Form.Comment; var model = new SambaConfigurationResourceModel { Name = name, Comment = comment, Path = path }; SambaConfiguration.AddResource(model); return(HttpStatusCode.OK); }; Post["/samba/resource/del"] = x => { string guid = Request.Form.Guid; SambaConfiguration.RemoveResource(guid); return(HttpStatusCode.OK); }; }