1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- using System;
- using System.Collections.Generic;
- using System.IO;
- using MediaBrowser.Model.Users;
- using MediaBrowser.Common.Json;
- namespace MediaBrowser.Controller
- {
- /// <summary>
- /// Manages users within the system
- /// </summary>
- public class UserController
- {
- /// <summary>
- /// Gets or sets the path to folder that contains data for all the users
- /// </summary>
- public string UsersPath { get; set; }
- public UserController(string usersPath)
- {
- UsersPath = usersPath;
- }
- /// <summary>
- /// Gets all users within the system
- /// </summary>
- 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;
- }
- /// <summary>
- /// Gets a User from it's directory
- /// </summary>
- private User GetFromDirectory(string path)
- {
- string file = Path.Combine(path, "user.js");
- return JsonSerializer.DeserializeFromFile<User>(file);
- }
- /// <summary>
- /// Creates a User with a given name
- /// </summary>
- public User CreateUser(string name)
- {
- var now = DateTime.Now;
- User user = new User()
- {
- Name = name,
- Id = Guid.NewGuid(),
- DateCreated = now,
- DateModified = now
- };
- user.Path = Path.Combine(UsersPath, user.Id.ToString());
- Directory.CreateDirectory(user.Path);
- JsonSerializer.SerializeToFile(user, Path.Combine(user.Path, "user.js"));
- return user;
- }
- }
- }
|