public void InvokeUserUnban(Authentication authentication, User user) { this.CremaHost.DebugMethod(authentication, this, nameof(InvokeUserUnban), user); try { var userInfo = user.SerializationInfo; userInfo.BanInfo = (BanSerializationInfo)BanInfo.Empty; var categories = from UserCategory item in this.Context.Categories select item.Path; var users = from User item in this.Context.Users select userInfo.ID == item.ID ? userInfo : item.SerializationInfo; var serializationInfo = new UserContextSerializationInfo() { Version = CremaSchema.VersionValue, Categories = categories.ToArray(), Users = users.ToArray(), }; var xml = DataContractSerializerUtility.GetString(serializationInfo, true); this.Repository.Modify(this.Context.UserFilePath, xml); } catch (Exception e) { this.CremaHost.Error(e); this.Repository.Revert(); throw e; } }
public void InvokeUserCreate(Authentication authentication, UserSerializationInfo userInfo) { this.CremaHost.DebugMethod(authentication, this, nameof(InvokeUserCreate), userInfo.ID, userInfo.Authority, userInfo.CategoryPath); try { var categories = from UserCategory item in this.Context.Categories select item.Path; var users = from User item in this.Context.Users select item.SerializationInfo; var userList = users.ToList(); userList.Add(userInfo); var serializationInfo = new UserContextSerializationInfo() { Version = CremaSchema.VersionValue, Categories = categories.ToArray(), Users = userList.ToArray(), }; var xml = DataContractSerializerUtility.GetString(serializationInfo, true); this.Repository.Modify(this.Context.UserFilePath, xml); } catch (Exception e) { this.CremaHost.Error(e); this.Repository.Revert(); throw e; } }
public void InvokeCategoryCreate(Authentication authentication, string name, string parentPath) { this.CremaHost.DebugMethod(authentication, this, nameof(InvokeCategoryCreate), name, parentPath); try { var categories = from UserCategory item in this.Context.Categories where item != this.Root select item.Path; var categoryList = categories.ToList(); categoryList.Add(new CategoryName(parentPath, name)); var users = from User item in this.Context.Users select item.SerializationInfo; var serializationInfo = new UserContextSerializationInfo() { Version = CremaSchema.VersionValue, Categories = categoryList.OrderBy(item => item).ToArray(), Users = users.ToArray(), }; var xml = DataContractSerializerUtility.GetString(serializationInfo, true); this.Repository.Modify(this.Context.UserFilePath, xml); } catch (Exception e) { this.CremaHost.Error(e); this.Repository.Revert(); throw e; } }
public void InvokeCategoryDelete(Authentication authentication, UserCategory category) { this.CremaHost.DebugMethod(authentication, this, nameof(InvokeCategoryDelete), category); try { var categories = from UserCategory item in this.Context.Categories where item != this.Root || item.Path.StartsWith(category.Path) == false select item.Path; var users = from User item in this.Context.Users select item.SerializationInfo; var serializationInfo = new UserContextSerializationInfo() { Version = CremaSchema.VersionValue, Categories = categories.ToArray(), Users = users.ToArray(), }; var xml = DataContractSerializerUtility.GetString(serializationInfo, true); this.Repository.Modify(this.Context.UserFilePath, xml); } catch (Exception e) { this.CremaHost.Error(e); this.Repository.Revert(); throw e; } }
private void WriteUsers() { var categories = from UserCategory item in this.Categories where item != this.Root select item.Path; var users = from User item in this.Users select item.SerializationInfo; var serializationInfo = new UserContextSerializationInfo() { Version = CremaSchema.VersionValue, Categories = categories.ToArray(), Users = users.ToArray(), }; var xml = DataContractSerializerUtility.GetString(serializationInfo, true); }
public void InvokeCategoryMove(Authentication authentication, UserCategory category, string parentPath) { this.CremaHost.DebugMethod(authentication, this, nameof(InvokeCategoryMove), category, parentPath); try { var categoryPath = (string)new CategoryName(parentPath, category.Name); var categories = from UserCategory item in this.Context.Categories where item != this.Root select item.Path; var users = from User item in this.Context.Users select item.SerializationInfo; var categoryArray = categories.ToArray(); var userArray = users.ToArray(); for (var i = 0; i < categoryArray.Length; i++) { categoryArray[i] = Regex.Replace(categoryArray[i], "^" + category.Path, categoryPath); } for (var i = 0; i < userArray.Length; i++) { userArray[i].CategoryPath = Regex.Replace(userArray[i].CategoryPath, "^" + category.Path, categoryPath); } var serializationInfo = new UserContextSerializationInfo() { Version = CremaSchema.VersionValue, Categories = categoryArray, Users = userArray, }; var xml = DataContractSerializerUtility.GetString(serializationInfo, true); this.Repository.Modify(this.Context.UserFilePath, xml); } catch (Exception e) { this.CremaHost.Error(e); this.Repository.Revert(); throw e; } }
public static void GenerateDefaultUserInfos(string repositoryPath) { var filename = UserContext.GenerateUsersFilePath(repositoryPath); var designedInfo = new SignatureDate(Authentication.SystemID, DateTime.UtcNow); var administrator = new UserSerializationInfo() { ID = Authentication.AdminID, Name = Authentication.AdminName, CategoryName = string.Empty, Authority = Authority.Admin, Password = Authentication.AdminID.Encrypt(), CreationInfo = designedInfo, ModificationInfo = designedInfo, BanInfo = (BanSerializationInfo)BanInfo.Empty, }; #if DEBUG var users = new List <UserSerializationInfo> { administrator }; for (var i = 0; i < 0; i++) { var admin = new UserSerializationInfo() { ID = "admin" + i, Name = "관리자" + i, CategoryName = "Administrators", Authority = Authority.Admin, Password = "******".Encrypt(), CreationInfo = designedInfo, ModificationInfo = designedInfo, BanInfo = (BanSerializationInfo)BanInfo.Empty, }; var member = new UserSerializationInfo() { ID = "member" + i, Name = "구성원" + i, CategoryName = "Members", Authority = Authority.Member, Password = "******".Encrypt(), CreationInfo = designedInfo, ModificationInfo = designedInfo, BanInfo = (BanSerializationInfo)BanInfo.Empty, }; var guest = new UserSerializationInfo() { ID = "guest" + i, Name = "손님" + i, CategoryName = "Guests", Authority = Authority.Guest, Password = "******".Encrypt(), CreationInfo = designedInfo, ModificationInfo = designedInfo, BanInfo = (BanSerializationInfo)BanInfo.Empty, }; users.Add(admin); users.Add(member); users.Add(guest); } var serializationInfo = new UserContextSerializationInfo() { Version = CremaSchema.VersionValue, Categories = new string[] { "/Administrators/", "/Members/", "/Guests/" }, Users = users.ToArray(), }; #else var serializationInfo = new UserContextSerializationInfo() { Version = CremaSchema.VersionValue, Categories = new string[] { }, Users = new UserSerializationInfo[] { administrator }, }; #endif //foreach (var item in serializationInfo.Categories) //{ // var basePath = Path.Combine(Path.GetDirectoryName(filename), "users"); // var localPath = PathUtility.ConvertFromUri(basePath + item); // DirectoryUtility.Prepare(localPath); //} //foreach (var item in serializationInfo.Users) //{ // var basePath = Path.Combine(Path.GetDirectoryName(filename), "users"); // var localPath = PathUtility.ConvertFromUri(basePath + item.CategoryPath + item.ID + ".xml"); // FileUtility.WriteAllText(DataContractSerializerUtility.GetString(item), localPath); //} DataContractSerializerUtility.Write(filename, serializationInfo, true); }