コード例 #1
0
        //--- Methods ---
        public PageSubscriptionUser GetUserInfo(uint userId)
        {
            PageSubscriptionUser user;

            lock (_users) {
                if (!_users.TryGetValue(userId, out user))
                {
                    user           = new PageSubscriptionUser(userId);
                    _users[userId] = user;
                }
            }
            return(user);
        }
コード例 #2
0
 //--- Methods ---
 public PageSubscriptionUser GetUserInfo(uint userId) {
     PageSubscriptionUser user;
     lock(_users) {
         if(!_users.TryGetValue(userId, out user)) {
             user = new PageSubscriptionUser(userId);
             _users[userId] = user;
         }
     }
     return user;
 }
コード例 #3
0
        private void PopulateUser(PageSubscriptionUser userInfo, XDoc userDoc) {
            var email = userDoc["email"].AsText;
            if(string.IsNullOrEmpty(email)) {
                throw new UserException("no email for user");
            }
            userInfo.Email = email;
            userInfo.Username = userDoc["fullname"].AsText.IfNullOrEmpty(userDoc["username"].AsText);
            var language = userDoc["language"].AsText;
            if(!string.IsNullOrEmpty(language)) {
                userInfo.Culture = CultureUtil.GetNonNeutralCulture(language);
            }
            var timezone = userDoc["timezone"].AsText;
            if(!string.IsNullOrEmpty(timezone)) {

                // only update timezone if the user has it defined
                userInfo.Timezone = timezone;
            }
            var perms = (userDoc["permissions.effective/operations"].AsText ?? "").Split(',');
            userInfo.IsAdmin = false;
            foreach(var perm in perms) {
                if("ADMIN".EqualsInvariantIgnoreCase(perm.Trim())) {
                    userInfo.IsAdmin = true;
                }
            }
        }