private MFilesUserGroup ConvertTo(UserGroupAdmin groupAdmin, long vaultId) { var group = ConvertTo(groupAdmin.UserGroup, vaultId); group.Alias = groupAdmin.SemanticAliases.Value; return(group); }
public static void CreateNewUserGroup() { LogIntoVault(); var userGroup = new UserGroup(); userGroup.Name = "UserGroupSample" + Guid.NewGuid().ToString().Substring(0, 7); var uAdmin = new UserGroupAdmin(); uAdmin.UserGroup = userGroup; loggedInVault.UserGroupOperations.AddUserGroupAdmin(uAdmin); }
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; }
private IEnumerable <MFilesUserGroup> GetUserGroupsOfUserEx(long userid, int ugid, UserGroupAdmin fatherug, Vault ovault) { var uga = ovault.UserGroupOperations.GetUserGroupAdmin(ugid); var ret = new List <MFilesUserGroup>(); var fatherhave = false; foreach (int id in uga.UserGroup.Members) { if (id < 0) { var ugs = GetUserGroupsOfUserEx(userid, -id, uga, ovault).ToArray(); if (ugs.Any()) { ret.AddRange(ugs); fatherhave = true; } } else { if (id == userid && !uga.UserGroup.Predefined) { ret.Add(ConvertTo(uga, 0)); fatherhave = true; } } } if (fatherhave) { ret.Add(ConvertTo(fatherug, 0)); } return(ret); }
private void createaccount(List <userandgroup> all) { var oVault = GlobalVar.OVault; var MFLicenseTypeNamedUserLicense = 0; var changelicense = false; var companyindex = 0; richTextBoxlog.AppendText(Environment.NewLine + "公司---" + all.Count); foreach (userandgroup userandgroup in all) { if (userandgroup.company == string.Empty) { continue; } richTextBoxlog.AppendText(Environment.NewLine + "公司---" + userandgroup.company + userandgroup.groups.Count); var bigug = new UserGroup(); bigug.Name = userandgroup.company; foreach (onegroup ogOnegroup in userandgroup.groups) { if (ogOnegroup.name == string.Empty) { continue; } richTextBoxlog.AppendText(Environment.NewLine + "用户组" + ogOnegroup.name + ogOnegroup.users.Count + ogOnegroup.alias); var ug = new UserGroup(); ug.Name = ogOnegroup.name; foreach (oneuser ou in ogOnegroup.users) { if (ou.fullname == string.Empty) { continue; } richTextBoxlog.AppendText(Environment.NewLine + "用户" + ou.name + ou.fullname + ou.password); var la = new LoginAccount(); la.UserName = ou.name; la.FullName = ou.fullname; la.AccountType = MFLoginAccountType.MFLoginAccountTypeMFiles; la.LicenseType = changelicense ? MFLicenseType.MFLicenseTypeNamedUserLicense : MFLicenseType.MFLicenseTypeConcurrentUserLicense; la.Enabled = true; la.ServerRoles = MFLoginServerRole.MFLoginServerRoleLogIn; la.EmailAddress = "*****@*****.**"; try { GlobalVar.oServerApp.LoginAccountOperations.AddLoginAccount(la, ou.password); richTextBoxlog.AppendText(Environment.NewLine + "AddLoginAccount ok-" + la.UserName); MFLicenseTypeNamedUserLicense++; if (MFLicenseTypeNamedUserLicense > 108) { changelicense = true; } } catch (Exception ex) { richTextBoxlog.AppendText(Environment.NewLine + "AddLoginAccount error-" + la.UserName); try { GlobalVar.oServerApp.LoginAccountOperations.ModifyLoginAccount(la); richTextBoxlog.AppendText(Environment.NewLine + "ModifyLoginAccount ok-" + la.UserName); } catch (Exception eex) { richTextBoxlog.AppendText(Environment.NewLine + "ModifyLoginAccount error-" + la.UserName); } } var vu = new UserAccount(); vu.Enabled = true; vu.LoginName = ou.name; vu.VaultRoles = MFUserAccountVaultRole.MFUserAccountVaultRoleDefaultRoles; try { var newuser = oVault.UserOperations.AddUserAccount(vu); richTextBoxlog.AppendText(Environment.NewLine + "AddUserAccount ok-" + vu.LoginName); ug.AddMember(newuser.ID); bigug.AddMember(newuser.ID); } catch (Exception ex) { richTextBoxlog.AppendText(Environment.NewLine + "AddUserAccount error-" + vu.LoginName); try { var userid = getuserid(ou.fullname, oVault); ug.AddMember(userid); bigug.AddMember(userid); richTextBoxlog.AppendText(Environment.NewLine + "AddMember ok-" + vu.LoginName + userid); } catch (Exception eex) { richTextBoxlog.AppendText(Environment.NewLine + "AddMember error-" + vu.LoginName + eex.Message); } } } try { if (ogOnegroup.alias != string.Empty) { try { var ugid = oVault.GetMetadataStructureItemIDByAlias( MFMetadataStructureItem.MFMetadataStructureItemUserGroup, ogOnegroup.alias); var uga = oVault.UserGroupOperations.GetUserGroupAdmin(ugid); uga.UserGroup.Members = ug.Members; uga.SemanticAliases.Value = ogOnegroup.alias; oVault.UserGroupOperations.UpdateUserGroupAdmin(uga); richTextBoxlog.AppendText(Environment.NewLine + "UpdateUserGroupAdmin ok-" + ug.Name + uga.UserGroup.ID); bigug.AddMember(-uga.UserGroup.ID); } catch (Exception ex) { var groups = oVault.UserGroupOperations.GetUserGroupList(); foreach (KeyNamePair keyNamePair in groups) { if (keyNamePair.Name == ogOnegroup.name) { var uga = oVault.UserGroupOperations.GetUserGroupAdmin(keyNamePair.Key); uga.UserGroup.Members = ug.Members; uga.SemanticAliases.Value = ogOnegroup.alias; oVault.UserGroupOperations.UpdateUserGroupAdmin(uga); richTextBoxlog.AppendText(Environment.NewLine + "UpdateUserGroupAdmin ok-" + ug.Name + uga.UserGroup.ID); bigug.AddMember(-uga.UserGroup.ID); break; } } } } else { var groups = oVault.UserGroupOperations.GetUserGroupList(); foreach (KeyNamePair keyNamePair in groups) { if (keyNamePair.Name == ogOnegroup.name) { var uga = oVault.UserGroupOperations.GetUserGroupAdmin(keyNamePair.Key); uga.UserGroup.Members = ug.Members; oVault.UserGroupOperations.UpdateUserGroupAdmin(uga); richTextBoxlog.AppendText(Environment.NewLine + "UpdateUserGroupAdmin ok-" + ug.Name + uga.UserGroup.ID); bigug.AddMember(-uga.UserGroup.ID); break; } } } } catch (Exception ex) { richTextBoxlog.AppendText(Environment.NewLine + "UpdateUserGroupAdmin error-" + ug.Name + ex.Message); try { var uga = new UserGroupAdmin(); uga.UserGroup = ug; uga.SemanticAliases.Value = ogOnegroup.alias; var aaa = oVault.UserGroupOperations.AddUserGroupAdmin(uga); richTextBoxlog.AppendText(Environment.NewLine + "AddUserGroupAdmin ok-" + ug.Name + aaa.UserGroup.ID); bigug.AddMember(-aaa.UserGroup.ID); } catch (Exception) { richTextBoxlog.AppendText(Environment.NewLine + "AddUserGroupAdmin error-" + ug.Name); } } // break;//for debug } var biguga = new UserGroupAdmin(); biguga.UserGroup = bigug; companyindex++; biguga.SemanticAliases.Value = companyindex.ToString(); try { oVault.UserGroupOperations.AddUserGroupAdmin(biguga); richTextBoxlog.AppendText(Environment.NewLine + "AddUserGroupAdmin ok-" + biguga.UserGroup.Name); } catch (Exception ex) { richTextBoxlog.AppendText(Environment.NewLine + "AddUserGroupAdmin error-" + biguga.UserGroup.Name + ex.Message); try { richTextBoxlog.AppendText(Environment.NewLine + "UpdateUserGroupAdmin alias-" + companyindex.ToString()); var ugid = oVault.GetMetadataStructureItemIDByAlias( MFMetadataStructureItem.MFMetadataStructureItemUserGroup, companyindex.ToString()); richTextBoxlog.AppendText(Environment.NewLine + "UpdateUserGroupAdmin ugid-" + bigug.Name + ugid); var uga = oVault.UserGroupOperations.GetUserGroupAdmin(ugid); richTextBoxlog.AppendText(Environment.NewLine + "UpdateUserGroupAdmin 111-" + uga.UserGroup.ID + "-" + uga.UserGroup.Members.Count + "-" + bigug.Members.Count); // uga.UserGroup.Name = bigug.Name; //foreach (int member in bigug.Members) //{ // uga.UserGroup.Members.Add(-1,member); // richTextBoxlog.AppendText(Environment.NewLine + "UpdateUserGroupAdmin :" + member); //} //foreach (int member in uga.UserGroup.Members) //{ // richTextBoxlog.AppendText(Environment.NewLine + "UpdateUserGroupAdmin -all:" + member); //} uga.UserGroup.Members = bigug.Members; uga.SemanticAliases.Value = companyindex.ToString(); richTextBoxlog.AppendText(Environment.NewLine + "UpdateUserGroupAdmin 222-" + "-" + uga.UserGroup.Members.Count); oVault.UserGroupOperations.UpdateUserGroupAdmin(uga); richTextBoxlog.AppendText(Environment.NewLine + "UpdateUserGroupAdmin ok-" + biguga.UserGroup.Name); } catch (Exception eex) { richTextBoxlog.AppendText(Environment.NewLine + "UpdateUserGroupAdmin error-" + biguga.UserGroup.Name + eex.Message); } } // break;//for debug } richTextBoxlog.AppendText(Environment.NewLine + "公司---" + all.Count); }