Exemple #1
0
        public static void ImportUser(UserEntry userEntry, Guid organizationId, string domain)
        {
            if (userEntry != null)
            {
                Guid       instanceId = InstanceProvider.GetFirstInstanceId(organizationId);
                SortedList list       = GroupProvider.GetGroupIdRoleIdList(organizationId, instanceId);
                Guid       groupId    = GroupProvider.GetGroupIdOfLowestRoleInInstance(list);

                string groups = groupId.ToString();

                if (userEntry.Login.Admin)
                {
                    groups = Guid.Empty.ToString();

                    System.Collections.IList roleIdList = list.GetValueList();
                    if (roleIdList != null)
                    {
                        Guid roleId = RoleProvider.GetHighestNonBuiltInRoleId(roleIdList);
                        if (roleId != Guid.Empty)
                        {
                            int idx = list.IndexOfValue(roleId);
                            if (idx > -1)
                            {
                                groupId = (Guid)list.GetKey(idx);
                                groups  = string.Format(CultureInfo.InvariantCulture, "{0}, {1}", groups, groupId.ToString());
                            }
                        }

                        roleId = RoleProvider.GetHighestBuiltInRoleId(roleIdList);
                        if (roleId != Guid.Empty)
                        {
                            int idx = list.IndexOfValue(roleId);
                            if (idx > -1)
                            {
                                groupId = (Guid)list.GetKey(idx);
                                groups  = string.Format(CultureInfo.InvariantCulture, "{0}, {1}", groups, groupId.ToString());
                            }
                        }
                    }
                }

                string loginName = string.Format(CultureInfo.InvariantCulture, "{0}@{1}", userEntry.Login.UserName, domain);
                string password  = null;

                var drv = LoginProvider.Current.GetLogin(loginName);

                if (drv == null)
                {
                    password = LoginProvider.Current.GeneratePassword();
                }

                Guid loginId = UserProvider.AddUserToOrganization(loginName, userEntry.Name.GivenName, userEntry.Name.FamilyName, null
                                                                  , null, null, null, null, null
                                                                  , null, null, null, null, null, null
                                                                  , groups, organizationId
                                                                  , password, false, !string.IsNullOrEmpty(password));

                if (string.IsNullOrEmpty(password))
                {
                    UserProvider.RaiseUserUpdated(loginId, organizationId, Support.ConvertStringToGuidList(groups), loginName);
                }
                else
                {
                    UserProvider.RaiseUserInserted(loginId, organizationId, null, Support.ConvertStringToGuidList(groups));
                }
            }
        }