Exemple #1
0
        public override MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords)
        {
            MembershipUserCollection muc = new MembershipUserCollection();

            N2.Security.Items.UserList userContainer = Bridge.GetUserContainer(false);
            if (userContainer == null)
            {
                totalRecords = 0;
                return(muc);
            }
            IList <ContentItem> users = Bridge.Finder
                                        .Where.Detail("Email").Eq(emailToMatch)
                                        .And.Type.Eq(typeof(N2.Security.Items.User))
                                        .And.Parent.Eq(userContainer)
                                        .Select();

            totalRecords = users.Count;
            N2.Collections.CountFilter.Filter(users, pageIndex * pageSize, pageSize);

            foreach (N2.Security.Items.User u in users)
            {
                muc.Add(u.GetMembershipUser(Name));
            }
            return(muc);
        }
        public override MembershipUser GetUser(object providerUserKey, bool userIsOnline)
        {
            N2.Security.Items.UserList userContainer = Bridge.GetUserContainer(false);
            if (userContainer == null)
            {
                return(null);
            }

            int _userId = 0;

            if (providerUserKey is int)
            {
                _userId = (int)providerUserKey;
            }
            else if (providerUserKey is Guid)
            {
                /// http://forums.asp.net/t/1266765.aspx
                Guid guid = (Guid)providerUserKey;
                //extract an integer from the beginning of the Guid
                byte[] _bytes = guid.ToByteArray();
                _userId = ((int)_bytes[0]) | ((int)_bytes[1] << 8) | ((int)_bytes[2] << 16) | ((int)_bytes[3] << 24);
            }

            var users = Bridge.Finder
                        .Where.ID.Eq(_userId)
                        .And.Type.Eq(typeof(N2.Security.Items.User))
                        .And.Parent.Eq(userContainer)
                        .MaxResults(1)
                        .Select <Items.User>();

            return(users.Select(u => u.GetMembershipUser(Name)).FirstOrDefault());
        }
Exemple #3
0
 public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords)
 {
     N2.Security.Items.UserList users = Bridge.GetUserContainer(false);
     if (users == null)
     {
         totalRecords = 0;
         return(new MembershipUserCollection());
     }
     return(users.GetMembershipUsers(Name, pageIndex * pageSize, pageSize, out totalRecords));
 }
        public override int GetNumberOfUsersOnline()
        {
            N2.Security.Items.UserList users = Bridge.GetUserContainer(false);
            if (users == null)
            {
                return(0);
            }

            int userIsOnlineTimeWindow = (Membership.UserIsOnlineTimeWindow > 0 ? Membership.UserIsOnlineTimeWindow : 20);

            return(Bridge.Finder.Where.Parent.Eq(users).And.Detail("LastActivityDate").Ge(DateTime.Now.AddMinutes(-userIsOnlineTimeWindow)).Count());
        }
        public override string GetUserNameByEmail(string email)
        {
            N2.Security.Items.UserList userContainer = Bridge.GetUserContainer(false);
            if (userContainer == null)
            {
                return(null);
            }
            var userNames = Bridge.Finder
                            .Where.Detail("Email").Eq(email)
                            .And.Type.Eq(typeof(N2.Security.Items.User))
                            .And.Parent.Eq(userContainer)
                            .MaxResults(1)
                            .Select("Name");

            return(userNames.OfType <string>().FirstOrDefault());
        }
Exemple #6
0
        public override string GetUserNameByEmail(string email)
        {
            N2.Security.Items.UserList userContainer = Bridge.GetUserContainer(false);
            if (userContainer == null)
            {
                return(null);
            }
            IList <ContentItem> users = Bridge.Finder
                                        .Where.Detail("Email").Eq(email)
                                        .And.Type.Eq(typeof(N2.Security.Items.User))
                                        .And.Parent.Eq(userContainer)
                                        .Select();

            foreach (N2.Security.Items.User u in users)
            {
                return(u.Name);
            }
            return(null);
        }
Exemple #7
0
        public override int GetNumberOfUsersOnline()
        {
            N2.Security.Items.UserList users = Bridge.GetUserContainer(false);
            if (users == null)
            {
                return(0);
            }
            int online = 0;
            int userIsOnlineTimeWindow = (Membership.UserIsOnlineTimeWindow > 0 ? Membership.UserIsOnlineTimeWindow : 20);

            foreach (N2.Security.Items.User u in users.Children)
            {
                if (u.LastActivityDate < DateTime.Now.AddMinutes(-userIsOnlineTimeWindow))                 // JH
                {
                    online++;
                }
            }
            return(online);
        }
Exemple #8
0
        public override MembershipUser GetUser(object providerUserKey, bool userIsOnline)
        {
            N2.Security.Items.UserList userContainer = Bridge.GetUserContainer(false);
            if (userContainer == null)
            {
                return(null);
            }

            int _userId = 0;

            if (providerUserKey is int)
            {
                _userId = (int)providerUserKey;
            }
            else if (providerUserKey is Guid)
            {
                /// http://forums.asp.net/t/1266765.aspx
                Guid guid = (Guid)providerUserKey;
                //extract an integer from the beginning of the Guid
                byte[] _bytes = guid.ToByteArray();
                _userId = ((int)_bytes[0]) | ((int)_bytes[1] << 8) | ((int)_bytes[2] << 16) | ((int)_bytes[3] << 24);
            }

            IList <ContentItem> users = Bridge.Finder
                                        .Where.ID.Eq(_userId)
                                        .And.Type.Eq(typeof(N2.Security.Items.User))
                                        .And.Parent.Eq(userContainer)
                                        .Select();

            foreach (N2.Security.Items.User u in users)
            {
                if (userIsOnline)
                {
                    u.LastActivityDate = DateTime.Now;                     // JH
                    Bridge.Save(u);
                }
                return(u.GetMembershipUser(Name));
            }
            return(null);
        }