aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/UserController.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/UserController.cs')
-rw-r--r--MediaBrowser.Controller/UserController.cs60
1 files changed, 60 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/UserController.cs b/MediaBrowser.Controller/UserController.cs
new file mode 100644
index 000000000..cce20329f
--- /dev/null
+++ b/MediaBrowser.Controller/UserController.cs
@@ -0,0 +1,60 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using MediaBrowser.Common.Json;
+using MediaBrowser.Model.Users;
+
+namespace MediaBrowser.Controller
+{
+ public class UserController
+ {
+ public string UsersPath { get; set; }
+
+ public UserController(string usersPath)
+ {
+ UsersPath = usersPath;
+ }
+
+ public IEnumerable<User> GetAllUsers()
+ {
+ if (!Directory.Exists(UsersPath))
+ {
+ Directory.CreateDirectory(UsersPath);
+ }
+
+ List<User> list = new List<User>();
+
+ foreach (string folder in Directory.GetDirectories(UsersPath, "*", SearchOption.TopDirectoryOnly))
+ {
+ User item = GetFromDirectory(folder);
+
+ if (item != null)
+ {
+ list.Add(item);
+ }
+ }
+
+ return list;
+ }
+
+ private User GetFromDirectory(string path)
+ {
+ string file = Path.Combine(path, "user.js");
+
+ return JsonSerializer.Deserialize<User>(file);
+ }
+
+ public void CreateUser(User user)
+ {
+ user.Id = Guid.NewGuid();
+
+ user.DateCreated = user.DateModified = DateTime.Now;
+
+ string userFolder = Path.Combine(UsersPath, user.Id.ToString());
+
+ Directory.CreateDirectory(userFolder);
+
+ JsonSerializer.Serialize(user, Path.Combine(userFolder, "user.js"));
+ }
+ }
+}