public static IEnumerable <string> GetAddresses(string fileId) { var fileShares = Global.FileStorageService.GetSharedInfo(new ItemList <string> { String.Format("file_{0}", fileId) }).ToList(); fileShares = fileShares.Where(share => !share.SubjectGroup && !share.SubjectId.Equals(FileConstant.ShareLinkId) && share.Share == FileShare.ReadWrite).ToList(); var accountsString = fileShares.Select(share => EncryptionLoginProvider.GetAddress(share.SubjectId)).Where(address => !string.IsNullOrEmpty(address)); return(accountsString); }
public object UpdateAddress(string address, string publicKey) { SecurityContext.DemandPermissions(new UserSecurityProvider(SecurityContext.CurrentAccount.ID), Core.Users.Constants.Action_EditUser); if (string.IsNullOrEmpty(address)) { throw new ArgumentNullException("address"); } if (string.IsNullOrEmpty(publicKey)) { throw new ArgumentNullException("publicKey"); } var currentAddressString = EncryptionLoginProvider.GetAddress(); if (!string.IsNullOrEmpty(currentAddressString)) { var currentAddress = JsonConvert.DeserializeObject <EncryptionAddress>(currentAddressString); if (currentAddress != null && !string.IsNullOrEmpty(currentAddress.PublicKey) && currentAddress.PublicKey.Equals(publicKey)) { return(new { isset = true }); } LogManager.GetLogger("ASC.Api.Documents").InfoFormat("User {0} updates address", SecurityContext.CurrentAccount.ID); } var account = new EncryptionAddress { Address = address, PublicKey = publicKey }; var accountString = JsonConvert.SerializeObject(account); EncryptionLoginProvider.UpdateAddress(accountString); return(new { isset = !string.IsNullOrEmpty(EncryptionLoginProvider.GetAddress()) }); }