/// <summary> /// 在指定的MFiles服务器中添加登陆账户 /// </summary> /// <param name="user">用户对象</param> /// <param name="server">MFiles Server对象 </param> internal void CreateMFilesLoginAccount(User user, VaultServer server, MFLoginAccountType accountType, MFLicenseType licenseType) { var app = MFServerUtility.ConnectToServer(server.AdminName, server.AdminPwd, MFServerUtility.GetVaultServerLocalIp(server), server.ServerPort); try { var accountName = GetAccountName(user); var hasAccount = MfUserUtils.HasLoginAccount(app, accountName); if (!hasAccount) { var account = new LoginAccount(); var fullName = user.FullName; if (String.IsNullOrEmpty(fullName)) { fullName = user.UserName; } account.Set(accountType, user.Domain, user.UserName, MFLoginServerRole.MFLoginServerRoleLogIn, fullName, user.Email, licenseType); app.LoginAccountOperations.AddLoginAccount(account); } } finally { app.Disconnect(); //todo 多线程时是否对其他会话有影响 } }
public UserInfo GetUserInfo(VaultServer server, string userName) { var app = MFServerUtility.ConnectToServer(server); try { var la = MfUserUtils.GetLoginAccount(app, userName); if (la != null) { if (String.IsNullOrEmpty(la.FullName)) { la.FullName = userName; } return(new UserInfo { UserName = userName, Email = la.EmailAddress, Fullname = la.FullName }); } } catch (Exception ex) { Log.Error(String.Format("获取登录账户({0})异常:" + ex.Message, userName), ex); } finally { app.Disconnect(); } return(null); }
public ICollection <string> GetUsersInGroup(MFilesVault vault, int groupId) { var ovault = MFServerUtility.GetVault(vault); var users = GetUsersFromGroup(ovault, groupId); return(users.Select(uid => ovault.UserOperations.GetUserAccount(uid)).Select(la => MfUserUtils.GetUserNameWithoutDomain(la.LoginName)).ToList()); }
public ICollection <string> GetUsersInGroup(MFilesVault vault, string groupName) { var ovault = MFServerUtility.GetVault(vault); var group = GetGroupByName(ovault, groupName, vault.Id); return(GetUsersInGroup(ovault, group.GroupId)); }
public void ChangeVaultUserInfo(User user, VaultServer server) { var accountName = GetAccountName(user); var app = MFServerUtility.ConnectToServer(server.AdminName, server.AdminPwd, MFServerUtility.GetVaultServerLocalIp(server), server.ServerPort); try { var la = MfUserUtils.GetLoginAccount(app, accountName); if (la == null) { return; } var needChange = false; if (la.FullName != user.FullName) { needChange = true; la.FullName = user.FullName; } if (la.EmailAddress != user.Email) { la.EmailAddress = user.Email; needChange = true; } if (needChange) { app.LoginAccountOperations.ModifyLoginAccount(la); } } finally { app.Disconnect(); } }
public ICollection <string> GetUsersInGroupByAlias(MFilesVault vault, string groupAlias) { var ovault = MFServerUtility.GetVault(vault); var groupId = MfAlias.GetUsergroup(ovault, groupAlias); return(GetUsersInGroup(ovault, groupId)); }
public void RenameGroupName(MFilesVault vault, int groupId, string newName) { var ovault = MFServerUtility.GetVault(vault); var uga = ovault.UserGroupOperations.GetUserGroupAdmin(groupId); uga.UserGroup.Name = newName; ovault.UserGroupOperations.UpdateUserGroupAdmin(uga); }
public void AddUserToGroup(MFilesVault vault, string userName, string groupName) { var ovault = MFServerUtility.GetVault(vault); var groupId = GetGroupId(ovault, groupName); var userId = GetUserId(ovault, userName); AddUserToGroup(ovault, userId, groupId); }
public void CreateForAllBackup(MFilesVault vault, string templateRootPath, string impersonationUserName, string impersonationPassword, MFSqlDatabase sqlDb = null, string vaultIndexRootPath = null) { var app = MFServerUtility.ConnectToMfApp(vault); CreateForAllBackup(app, vault, templateRootPath, impersonationUserName, impersonationPassword, sqlDb, vaultIndexRootPath); }
public void Create(MFilesVault vault, string templateRootPath, string impersonationUserName, string impersonationPassword, MFSqlDatabase sqlDb = null, string vaultIndexRootPath = null, bool fullBackupOrStructure = false) { var app = MFServerUtility.ConnectToMfApp(vault); Create(app, vault, templateRootPath, impersonationUserName, impersonationPassword, sqlDb, vaultIndexRootPath, fullBackupOrStructure); }
public int GetObjectVersion(MFilesVault vault, int objType, int objId) { var mfVault = MFServerUtility.GetVault(vault); var objID = new ObjID(); objID.SetIDs(objType, objId); var objVer = mfVault.ObjectOperations.GetLatestObjVer(objID, false, false); return(objVer.Version); }
public void ChangeVaultName(MFilesVault vault) { var app = MFServerUtility.ConnectToMfApp(vault); var props = app.VaultManagementOperations.GetVaultProperties(vault.Guid); props.DisplayName = vault.Name; var mfVault = app.LogInToVault(vault.Guid); mfVault.ManagementOperations.UpdateVaultProperties(props); }
public void AddUserToGroup(MFilesVault vault, string userName, params int[] groupIds) { var ovault = MFServerUtility.GetVault(vault); var userId = GetUserId(ovault, userName); foreach (var groupId in groupIds) { AddUserToGroup(ovault, userId, groupId); } }
public void DisableVaultUser(string userName, MFilesVault vault) { var mVault = MFServerUtility.GetVault(vault); if (!HasVaultUser(userName, vault)) { Log.Error(string.Format("用户({0})不存在于vault({1}),vaultname={2},中!", userName, vault.Guid, mVault.Name)); return; } MfUserUtils.DisableVaultUser(mVault, userName); }
public ICollection <MFilesUserGroup> GetUserGroups(MFilesVault vault, bool includeInternalGroup = false) { var mfVault = MFServerUtility.GetVault(vault); var groups = mfVault.UserGroupOperations.GetUserGroupsAdmin(); if (includeInternalGroup) { return((from UserGroupAdmin uga in groups select ConvertTo(uga, vault.Id)).ToList()); } return((from UserGroupAdmin uga in groups where !uga.UserGroup.Predefined select ConvertTo(uga, vault.Id)).ToList()); }
public ICollection <MFilesUserGroup> GetUserGroupsContainsString(MFilesVault vault, string groupStr) { var mfVault = MFServerUtility.GetVault(vault); var groups = mfVault.UserGroupOperations.GetUserGroupsAdmin(); var list = (from UserGroupAdmin uga in groups where !uga.UserGroup.Predefined && uga.UserGroup.Name.Contains(groupStr) && uga.UserGroup.Name != groupStr select ConvertTo(uga, vault.Id)).ToList(); list.Sort(); return(list); }
public bool UninstallApps(MFilesVault vault) { var ovault = MFServerUtility.GetVault(vault); var apps = ovault.CustomApplicationManagementOperations.GetCustomApplications(); foreach (CustomApplication ca in apps) { ovault.CustomApplicationManagementOperations.UninstallCustomApplication(ca.ID); } return(true); }
public void EnableVaultUser(string userName, MFilesVault vault) { var mVault = MFServerUtility.GetVault(vault); if (!HasVaultUser(userName, vault)) { var err = string.Format("用户{0}不存在于vault{1},vaultname={2},中!", userName, vault.Guid, mVault.Name); Log.Error(err); throw new Exception(err); } MfUserUtils.EnableVaultUser(mVault, userName); }
public MfContact GetContact(MFilesVault vault, MetadataAliases aliases, string userName) { var mfVault = MFServerUtility.GetVault(vault); var userId = MfUserUtils.GetUserAccount(mfVault, userName); if (userId == null) { return(null); } var uid = userId.Value; //userid return(GetContactByUserId(mfVault, aliases, uid)); }
internal void Create(MFilesVault vault, MFObject obj) { var mfVault = MFServerUtility.GetVault(vault); try { Create(mfVault, obj); } catch (Exception ex) { throw new Exception(obj.ToString(), ex); } }
public bool HasUser(User user, string password, MFilesVault vault) { try { var serverApp = MFServerUtility.ConnetToMfApp(user, password, vault.Server); var mfvault = serverApp.LogInToVault(vault.Guid); return(mfvault != null); } catch { return(false); } }
public bool ImportApp(string zipPath, MFilesVault vault) { var zipDirectory = new DirectoryInfo(zipPath); var ovault = MFServerUtility.GetVault(vault); foreach (var di in zipDirectory.GetDirectories()) { var targetPath = Path.Combine(Path.GetTempPath(), di.Name + ".zip"); var zip = new ZipFile(); zip.AddSelectedFiles("name!=*.zip and name!=*.pdb and name!=*.log", di.FullName, di.Name, true); zip.Save(targetPath); ImportApp(targetPath, ovault); } return(true); }
public MFObject GetMFObject <T>(MFilesVault vault, MetadataAliases aliases, T entity) where T : InternalEntity { if (entity is Project) { //var config = VaultConfig.GetConfigFromString(vault.Template.MetadataJson); var projObj = aliases.GetMfProject(entity as Project);// config.GetMfProjectObject(entity as Project); return(projObj); } if (entity is MfContact) { var mfVault = MFServerUtility.GetVault(vault); var contactObj = aliases.GetMfContact(mfVault, entity as MfContact); return(contactObj); } return(null); }
/// <summary> /// 在指定的Vault中添加用户 /// </summary> /// <param name="user">用户对象</param> /// <param name="vault">库对象</param> public int CreateVaultUser(User user, MFilesVault vault) { var server = vault.Server; var app = MFServerUtility.ConnectToServer(server.AdminName, server.AdminPwd, MFServerUtility.GetVaultServerLocalIp(vault.Server), server.ServerPort); try { var mVault = app.LogInToVault(vault.Guid); return(CreateVaultUser(mVault, user)); } finally { app.Disconnect(); } }
public bool Backup(MFilesVault vault) { var path = Path.Combine(Path.GetTempPath(), vault.Guid + ".mfb"); var ovault = MFServerUtility.GetVault(vault); var backup = new BackupJob { BackupType = MFBackupType.MFBackupTypeFull, TargetFile = path, VaultGUID = ovault.GetGUID(), OverwriteExistingFiles = true }; var app = MFServerUtility.ConnectToMfApp(vault); app.VaultManagementOperations.BackupVault(backup); return(true); }
public ICollection <MFilesUserGroup> GetGroupsByUser(MFilesVault vault, string userName) { var ret = new List <MFilesUserGroup>(); var ovault = MFServerUtility.GetVault(vault); var userid = GetUserId(ovault, userName); var usergroups = ovault.UserGroupOperations.GetUserGroupsAdmin(); foreach (UserGroupAdmin uga in usergroups) { foreach (int id in uga.UserGroup.Members) { if (id < 0) { ret.AddRange(GetUserGroupsOfUserEx(userid, -id, uga, ovault)); } else { if (id == userid && !uga.UserGroup.Predefined) { ret.Add(ConvertTo(uga, vault.Id)); } } } } var newret = new List <MFilesUserGroup>(); foreach (var a in ret) { var found = false; foreach (var b in newret) { if (b.Id == a.Id) { found = true; break; } } if (!found) { newret.Add(a); } } return(newret); }
private IEnumerable <VaultKey> GetUserVaults(string userName, string password, bool isAdUser, VaultServer server) { var vaults = new List <VaultKey>(); try { var serverApp = MFServerUtility.ConnectToServer(userName, password, server.LocalIp, server.ServerPort, isAdUser); var keys = serverApp.GetOnlineVaults(); vaults.AddRange(from VaultOnServer key in keys select new VaultKey { Name = key.Name, Guid = key.GUID }); _serverApp = serverApp; } catch (Exception) { } return(vaults); }
public void AddUserGroupToVault(MFilesVault vault, MFilesUserGroup userGroup) { var ovault = MFServerUtility.GetVault(vault); var newuga = new UserGroupAdmin { UserGroup = new UserGroup { Name = userGroup.Name } }; if (!String.IsNullOrEmpty(userGroup.Alias)) { newuga.SemanticAliases = new SemanticAliases { Value = userGroup.Alias }; } var ug = ovault.UserGroupOperations.AddUserGroupAdmin(newuga); userGroup.Id = ug.UserGroup.ID; }
public void RemoveUserFromGroup(MFilesVault vault, string userName, params int[] groupIds) { var ovault = MFServerUtility.GetVault(vault); var userid = -1; var users = ovault.UserOperations.GetUserAccounts(); var un = MfUserUtils.GetUserNameWithoutDomain(userName).ToUpper(); foreach (UserAccount ua in users) { var un0 = MfUserUtils.GetUserNameWithoutDomain(ua.LoginName); if (un0.ToUpper() == un) { userid = ua.ID; break; } } foreach (var groupId in groupIds) { RemoveUserFromGroupById(ovault, userid, groupId); } }
public MFDownloadFile DownloadFile(MFilesVault vault, int objType, int objId, int fileId) { var mfVault = MFServerUtility.GetVault(vault); var objID = new ObjID(); objID.SetIDs(objType, objId); var objVer = mfVault.ObjectOperations.GetLatestObjVer(objID, false, false); var objVersion = mfVault.ObjectOperations.GetObjectInfo(objVer, true, false); if (objVersion.FilesCount == 0) { return(null); } if (fileId > 0) { ObjectFile fv = null; foreach (ObjectFile file in objVersion.Files) { if (file.FileVer.ID == fileId) { fv = file; break; } } if (fv == null) { fv = objVersion.Files[1]; } var session = mfVault.ObjectFileOperations.DownloadFileInBlocks_Begin(fv.FileVer.ID, fv.FileVer.Version); var content = mfVault.ObjectFileOperations.DownloadFileInBlocks_ReadBlock(session.DownloadID, session.FileSize32, 0); return(new MFDownloadFile { Content = content, Name = fv.Title, Extension = fv.Extension, Version = objVer.Version }); } return(null); }