private bool HasUserNameProperFormat(string name, out string ErrorMessage) { ErrorMessage = string.Empty; if ((string.IsNullOrWhiteSpace(name) || string.IsNullOrEmpty(name))) { Debug.WriteLine("empty"); Debug.WriteLine(name); ErrorMessage = "User name should not be empty"; return(false); } else if (UserCollection.Any(u => u.name == UserName)) { ErrorMessage = "User name already exists"; return(false); } else if (name.Length > 20) { ErrorMessage = "User name should not be greater than 20 characters"; return(false); } else { return(true); } }
/// <summary> /// Checks if the user is a Site Admin /// </summary> /// <param name="refreshToken">The refresh token for Client Context</param> /// <param name="clientUrl">The client URL for Client Context</param> /// <returns>User present in Site Owner group</returns> public static bool GetUserGroup(string refreshToken, Uri clientUrl, HttpRequest request) { bool returnValue = false; try { if (!string.IsNullOrWhiteSpace(refreshToken) && null != clientUrl) { using (ClientContext clientContext = ServiceUtility.GetClientContext(null, clientUrl, refreshToken, request)) { UserCollection siteOwners = clientContext.Web.AssociatedOwnerGroup.Users; clientContext.Load(siteOwners, owners => owners.Include(owner => owner.Title)); clientContext.Load(clientContext.Web.CurrentUser); clientContext.ExecuteQuery(); returnValue = siteOwners.Any(owners => owners.Title.Equals(clientContext.Web.CurrentUser.Title)); } } } catch (Exception exception) { returnValue = false; Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ConstantStrings.LogTableName); } return(returnValue); }
/// <summary> /// This method will check if the current login user is part of site owners group or not /// </summary> /// <param name="client"></param> /// <returns></returns> public bool IsLoginUserOwner(Client client) { try { using (ClientContext clientContext = spoAuthorization.GetClientContext(client.Url)) { UserCollection siteOwners = clientContext.Web.AssociatedOwnerGroup.Users; clientContext.Load(siteOwners, owners => owners.Include(owner => owner.Title)); clientContext.Load(clientContext.Web.CurrentUser); clientContext.ExecuteQuery(); return(siteOwners.Any(owners => owners.Title.Equals(clientContext.Web.CurrentUser.Title))); } } catch (Exception ex) { customLogger.LogError(ex, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, logTables.SPOLogTable); throw; } }
public async Task DoTeamUpdate() { if (_fs.Forum != null) { var oldStaff = _staff; _staff = await _fs.Forum.GetMembersList(MembersListType.Staff).ConfigureAwait(false); var rankAdded = _staff.Where(uiNew => oldStaff.All(uiOld => uiOld.Id != uiNew.Id)).ToArray(); var rankChanged = oldStaff.Where(uiOld => _staff.Any(uiNew => uiNew.Id == uiOld.Id && !string.Equals(uiNew.UserTitle, uiOld.UserTitle, StringComparison.OrdinalIgnoreCase))).Select(uiOld => new RankUpdateItem(uiOld, _staff.First(uiNew => uiNew.Id == uiOld.Id))).ToArray(); var rankRemoved = oldStaff.Where(uiOld => _staff.All(uiNew => uiNew.Id != uiOld.Id)).ToArray(); await TeamMemberAdded.Invoke(rankAdded).ConfigureAwait(false); await TeamMemberRankChanged.Invoke(rankChanged).ConfigureAwait(false); await TeamMemberRemoved.Invoke(rankRemoved).ConfigureAwait(false); using var uow = _db.UnitOfWork; var guildConfigs = uow.GuildConfigs.GetAllGuildConfigs(_client.Guilds.Select(g => g.Id).ToList()).Where(gc => gc.TeamUpdateChannelId.HasValue).ToList(); var teamUpdateRanks = uow.TeamUpdateRanks.GetAll().AsEnumerable().Where(tur => guildConfigs.Any(gc => gc.GuildId == tur.GuildId)).GroupBy(tur => tur.GuildId).ToList(); foreach (var gc in guildConfigs) { var guild = _client.GetGuild(gc.GuildId); var teamUpdateChannel = guild?.GetTextChannel(gc.TeamUpdateChannelId.Value); if (teamUpdateChannel != null) { var roles = teamUpdateRanks.FirstOrDefault(turgroup => turgroup.Key == gc.GuildId)?.ToArray(); if (!(roles is null) && roles.Length != 0) { await TeamMemberAdded_Message.Invoke(teamUpdateChannel, rankAdded).ConfigureAwait(false); await TeamMemberRankChanged_Message.Invoke(teamUpdateChannel, rankChanged).ConfigureAwait(false); await TeamMemberRemoved_Message.Invoke(teamUpdateChannel, rankRemoved).ConfigureAwait(false); } } } } }