Ejemplo n.º 1
0
        /// <summary>
        /// Set contributor permissions on the live thread.
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="permissions">Permissions to set.</param>
        public async Task <bool> SetContributorPermissions(string userName, LiveUpdateEventPermission permissions)
        {
            var request = WebAgent.CreateRequest(SetContributorPermissionUrl, "POST");

            WebAgent.WritePostBody(request, new
            {
                api_type    = "json",
                name        = userName,
                type        = "liveupdate_contributor",
                permissions = GetPermissionsString(permissions)
            });
            var response = await WebAgent.GetResponseAsync(request).ConfigureAwait(false);

            if (response.IsSuccessStatusCode)
            {
                return(true);
            }

            return(false);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Set permissions on a contributor who has been invited but has not accepted.
        /// </summary>
        /// <param name="name"></param>
        /// <param name="permissions">Permissions to set.</param>
        public void SetInvitedContributorPermissions(string userName, LiveUpdateEventPermission permissions)
        {
            if (Reddit.User == null)
            {
                throw new AuthenticationException("No user logged in.");
            }
            var request = WebAgent.CreatePost(String.Format(SetContributorPermissionUrl, Name));
            var stream  = request.GetRequestStream();

            WebAgent.WritePostBody(stream, new
            {
                api_type    = "json",
                name        = userName,
                type        = "liveupdate_contributor_invite",
                permissions = GetPermissionsString(permissions),
                uh          = Reddit.User.Modhash
            });
            stream.Close();
            var response = request.GetResponse();
            var data     = WebAgent.GetResponseString(response.GetResponseStream());
        }
Ejemplo n.º 3
0
        private string GetPermissionsString(LiveUpdateEventPermission input)
        {
            // settings of edit + close
            // -all,-close,+edit,-manage,+settings,-update


            if (input == LiveUpdateEventPermission.All)
            {
                return("+all");
            }

            if (input == LiveUpdateEventPermission.None)
            {
                return("-all,-close,-edit,-manage,-settings,-update");
            }

            var result = "-all,";

            if (input.HasFlag(LiveUpdateEventPermission.Close))
            {
                result += "+close,";
            }
            else
            {
                result += "-close,";
            }

            if (input.HasFlag(LiveUpdateEventPermission.Edit))
            {
                result += "+edit,";
            }
            else
            {
                result += "-edit,";
            }

            if (input.HasFlag(LiveUpdateEventPermission.Manage))
            {
                result += "+manage,";
            }
            else
            {
                result += "-manage,";
            }

            if (input.HasFlag(LiveUpdateEventPermission.Settings))
            {
                result += "+settings,";
            }
            else
            {
                result += "-settings,";
            }

            if (input.HasFlag(LiveUpdateEventPermission.Update))
            {
                result += "+update,";
            }
            else
            {
                result += "-update,";
            }

            if (result.EndsWith(","))
            {
                result = result.Remove(result.Length - 1, 1);
            }

            return(result);
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Set permissions on a contributor who has been invited but has not accepted.
 /// </summary>
 /// <param name="name"></param>
 /// <param name="permissions">Permissions to set.</param>
 public void SetInvitedContributorPermissions(RedditUser user, LiveUpdateEventPermission permissions)
 {
     SetInvitedContributorPermissions(user.Name, permissions);
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Set permissions on a contributor who has been invited but has not accepted.
 /// </summary>
 /// <param name="user"></param>
 /// <param name="permissions">Permissions to set.</param>
 public async Task <bool> SetInvitedContributorPermissionsAsync(RedditUser user, LiveUpdateEventPermission permissions)
 {
     return(await SetInvitedContributorPermissionsAsync(user.Name, permissions).ConfigureAwait(false));
 }