Beispiel #1
0
 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);
     }
 }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
 /// <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;
     }
 }
Beispiel #4
0
        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);
                        }
                    }
                }
            }
        }