private void SetAccessLevelRestrictions(IList <UserAccessLevel> accessLevels)
        {
            if (accessLevels.Count == 0)
            {
                return;
            }

            string message;

            KeyValuePair <int, string> [] allAccessLevels = User.GetAllAccessLevels();
            if (accessLevels.Count == 1)
            {
                message = Translator.GetString("The default permissions for the access level of {0} were changed. " +
                                               "Do you want to reset the permissions of all users with access level of {0} to the new defaults?");
                message = string.Format(message, string.Format("\"{0}\"", allAccessLevels [(int)accessLevels [0]].Value));
            }
            else
            {
                message = Translator.GetString("The default permissions for the access levels of {0} were changed. " +
                                               "Do you want to reset the permissions of all users with access levels of {0} to the new defaults?");
                StringBuilder accessLevelsBuilder = new StringBuilder();
                for (int i = 0; i < accessLevels.Count; i++)
                {
                    UserAccessLevel accessLevel = accessLevels [i];
                    accessLevelsBuilder.AppendFormat("\"{0}\"", allAccessLevels.First(k => k.Key == (int)accessLevel).Value);
                    if (i < accessLevels.Count - 2)
                    {
                        accessLevelsBuilder.Append(", ");
                    }
                    else if (i < accessLevels.Count - 1)
                    {
                        accessLevelsBuilder.AppendFormat(" {0} ", Translator.GetString("and"));
                    }
                }
                message = string.Format(message, accessLevelsBuilder);
            }

            if (Message.ShowDialog(Translator.GetString("Access Level Permissions"), null,
                                   message, "Icons.Question32.png", MessageButtons.YesNo) == ResponseType.Yes)
            {
                foreach (UserAccessLevel level in accessLevels)
                {
                    foreach (User user in users)
                    {
                        if (user.UserLevel == level)
                        {
                            restsRoot.ResetLevelRestrictions(user.Id, level);
                        }
                    }
                }
            }

            accessLevels.Clear();
        }