aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS.Objects
diff options
context:
space:
mode:
Diffstat (limited to 'ShiftOS.Objects')
-rw-r--r--ShiftOS.Objects/ShiftFS.cs37
-rw-r--r--ShiftOS.Objects/ShiftOS.Objects.csproj1
-rw-r--r--ShiftOS.Objects/UserConfig.cs37
3 files changed, 53 insertions, 22 deletions
diff --git a/ShiftOS.Objects/ShiftFS.cs b/ShiftOS.Objects/ShiftFS.cs
index c2121f0..45cdb14 100644
--- a/ShiftOS.Objects/ShiftFS.cs
+++ b/ShiftOS.Objects/ShiftFS.cs
@@ -32,23 +32,16 @@ using System.Threading;
namespace ShiftOS.Objects.ShiftFS
{
- public enum Permissions
- {
- User,
- Administrator,
- Superuser,
- All
- }
public class File
{
public string Name;
public byte[] Data;
public byte[] HeaderData;
public bool ReadAccessToLowUsers;
- public Permissions permissions;
+ public UserPermissions permissions;
public System.IO.Stream GetStream()
{
- if ((int)CurrentUser >= (int)permissions || permissions == Permissions.All)
+ if ((int)CurrentUser <= (int)permissions)
{
return new System.IO.MemoryStream(Data);
}
@@ -59,7 +52,7 @@ namespace ShiftOS.Objects.ShiftFS
return null;
}
- public File(string name, byte[] data, bool ReadAccess_to_low_users, Permissions perm)
+ public File(string name, byte[] data, bool ReadAccess_to_low_users, UserPermissions perm)
{
Name = name;
Data = data;
@@ -73,31 +66,31 @@ namespace ShiftOS.Objects.ShiftFS
public List<File> Files = new List<File>();
public List<Directory> Subdirectories = new List<Directory>();
public bool ReadAccessToLowUsers;
- public Permissions permissions;
+ public UserPermissions permissions;
public void AddFile(File file)
{
- if ((int)CurrentUser >= (int)permissions || permissions == Permissions.All)
+ if ((int)CurrentUser <= (int)permissions)
{
Files.Add(file);
}
}
public void RemoveFile(string name)
{
- if ((int)CurrentUser >= (int)permissions || permissions == Permissions.All)
+ if ((int)CurrentUser <= (int)permissions)
{
Files.Remove(Files.Find(x => x.Name == name));
}
}
public void RemoveFile(File file)
{
- if ((int)CurrentUser >= (int)permissions || permissions == Permissions.All)
+ if ((int)CurrentUser <= (int)permissions)
{
Files.Remove(file);
}
}
public File FindFileByName(string name)
{
- if ((int)CurrentUser >= (int)permissions || permissions == Permissions.All)
+ if ((int)CurrentUser <= (int)permissions)
{
return Files.Find(x => x.Name == name);
}
@@ -105,28 +98,28 @@ namespace ShiftOS.Objects.ShiftFS
}
public void AddDirectory(Directory dir)
{
- if ((int)CurrentUser >= (int)permissions || permissions == Permissions.All)
+ if ((int)CurrentUser <= (int)permissions)
{
Subdirectories.Add(dir);
}
}
public void RemoveDirectory(string name)
{
- if ((int)CurrentUser >= (int)permissions || permissions == Permissions.All)
+ if ((int)CurrentUser <= (int)permissions)
{
Subdirectories.Remove(Subdirectories.Find(x => x.Name == name));
}
}
public void RemoveDirectory(Directory dir)
{
- if ((int)CurrentUser >= (int)permissions || permissions == Permissions.All)
+ if ((int)CurrentUser <= (int)permissions)
{
Subdirectories.Remove(dir);
}
}
public Directory FindDirectoryByName(string name)
{
- if ((int)CurrentUser >= (int)permissions || permissions == Permissions.All)
+ if ((int)CurrentUser <= (int)permissions)
{
return Subdirectories.Find(x => x.Name == name);
}
@@ -136,7 +129,7 @@ namespace ShiftOS.Objects.ShiftFS
public static class Utils
{
- public static Permissions CurrentUser { get; set; }
+ public static UserPermissions CurrentUser { get; set; }
public static List<Directory> Mounts { get; set; }
@@ -232,7 +225,7 @@ namespace ShiftOS.Objects.ShiftFS
{
try
{
- dir.AddFile(new File(pathlist[pathlist.Length - 1], Encoding.UTF8.GetBytes(contents), false, Permissions.All));
+ dir.AddFile(new File(pathlist[pathlist.Length - 1], Encoding.UTF8.GetBytes(contents), false, CurrentUser));
}
catch { }
}
@@ -281,7 +274,7 @@ namespace ShiftOS.Objects.ShiftFS
if (!FileExists(path))
{
- dir.AddFile(new File(pathlist[pathlist.Length - 1], contents, false, Permissions.All));
+ dir.AddFile(new File(pathlist[pathlist.Length - 1], contents, false, CurrentUser));
}
else
{
diff --git a/ShiftOS.Objects/ShiftOS.Objects.csproj b/ShiftOS.Objects/ShiftOS.Objects.csproj
index 7a19aeb..c2ef5ed 100644
--- a/ShiftOS.Objects/ShiftOS.Objects.csproj
+++ b/ShiftOS.Objects/ShiftOS.Objects.csproj
@@ -58,6 +58,7 @@
<Compile Include="Shop.cs" />
<Compile Include="Unite\Download.cs" />
<Compile Include="Unite\ReleaseQuery.cs" />
+ <Compile Include="UserConfig.cs" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
diff --git a/ShiftOS.Objects/UserConfig.cs b/ShiftOS.Objects/UserConfig.cs
new file mode 100644
index 0000000..61d11b8
--- /dev/null
+++ b/ShiftOS.Objects/UserConfig.cs
@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Newtonsoft.Json;
+
+namespace ShiftOS.Objects
+{
+ public class UserConfig
+ {
+ public string UniteUrl { get; set; }
+ public string DigitalSocietyAddress { get; set; }
+ public int DigitalSocietyPort { get; set; }
+
+ public static UserConfig Get()
+ {
+ var conf = new UserConfig
+ {
+ UniteUrl = "http://getshiftos.ml",
+ DigitalSocietyAddress = "michaeltheshifter.me",
+ DigitalSocietyPort = 13370
+ };
+
+ if (!File.Exists("servers.json"))
+ {
+ File.WriteAllText("servers.json", JsonConvert.SerializeObject(conf, Formatting.Indented));
+ }
+ else
+ {
+ conf = JsonConvert.DeserializeObject<UserConfig>(File.ReadAllText("servers.json"));
+ }
+ return conf;
+ }
+ }
+}