public List <UserPermStatus> CheckUserPermissions() { var results = new List <UserPermStatus>(); try { var userPermissions = this.SharePointRepository.GetWebUserPermissions(SourceClientContext); foreach (var userPermission in userPermissions) { string newUpn = string.Empty; if (UserMapping != null) { newUpn = UserMapping.FindNewUpn(userPermission.Key); } if (!String.IsNullOrEmpty(newUpn)) { var targetUserPermission = this.SharePointRepository.CheckUserPermissions(TargetClientContext, newUpn); //Report mismatch perms b/w source & target if (userPermission.Value != targetUserPermission) { results.Add(new UserPermStatus { CurrentPermissions = targetUserPermission, ExpectedPermissions = userPermission.Value, UserStatus = UserStatus.PresentInUserMapping, LoginName = newUpn }); } } else { //User not in the mapping file results.Add(new UserPermStatus { CurrentPermissions = UserPermissions.None, ExpectedPermissions = userPermission.Value, UserStatus = UserStatus.NotPresentInUserMapping, LoginName = userPermission.Key }); } } } catch (Exception ex) { logger.Log(LogLevel.Error, ex); } return(results); }
public List <UserGroupStatus> MissingUsersInGroups() { var results = new List <UserGroupStatus>(); try { IDictionary <string, List <string> > usersGroups = null; if (SourceSiteCreds.SiteType == SiteType.WSS) { //TODO: Get usersGroups = this.SharePointRepository2007.GetWebUserGroups(); } else { usersGroups = this.SharePointRepository.GetSiteUserGroups(SourceClientContext); } foreach (var userGroup in usersGroups) { if (!this.SharePointRepository.GroupExists(TargetClientContext, userGroup.Key)) { continue; } foreach (var user in userGroup.Value) { string newUpn = user; if (UserMapping != null && UserMapping.GetUserMappingList().Count > 0) { newUpn = UserMapping.FindNewUpn(user); } if (newUpn == string.Empty) { //Missing in the users mapping results.Add(new UserGroupStatus { LoginName = user, GroupName = userGroup.Key, UserInGroupStatus = UserStatus.NotPresentInUserMapping }); continue; } if (!this.SharePointRepository.UserExistsInGroup(TargetClientContext, userGroup.Key, newUpn)) { //misisng in the group results.Add(new UserGroupStatus { LoginName = newUpn, GroupName = userGroup.Key, UserInGroupStatus = UserStatus.NotPresentInSharePointGroup }); continue; } } } } catch (Exception ex) { logger.Log(LogLevel.Error, ex); } return(results); }