public HttpResponseMessage Get([FromUri] string username)
        {
            if (database.CheckUser(username) == true)
            {
                return(Request.CreateResponse(HttpStatusCode.OK, "True - User Does Exist! Did you mean to do a POST to create a new user?"));
            }

            else
            {
                return(Request.CreateResponse(HttpStatusCode.OK, "False - User Does Not Exist! Did you mean to do a POST to create a new user?"));
            }
        }
        public IActionResult Change([FromBody] JObject values)
        {
            string username = (string)values["username"];
            string role     = (string)values["role"];

            try {
                using (var ctx = new UserContext())
                {
                    if (role.ToLower() != "user" && role.ToLower() != "admin")
                    {
                        return(BadRequest("NOT DONE: Role does not exist"));
                    }
                    else if (UserDatabaseAccess.CheckUser(ctx, username) == false)
                    {
                        return(BadRequest("NOT DONE: Username does not exist"));
                    }
                    else
                    {
                        UserDatabaseAccess.ChangeRole(ctx, username, role);
                        return(Ok("DONE"));
                    }
                }
            }
            catch
            {
                return(BadRequest("NOT DONE: An error occured"));
            }
        }
 public string New([FromQuery] string username)
 {
     using (var ctx = new UserContext())
     {
         return(UserDatabaseAccess.CheckUser(ctx, username) == true
         ? "True - User Does Exist! Did you mean to do a POST to create a new user?"
         : "False - User Does Not Exist! Did you mean to do a POST to create a new user?");
     }
 }
        protected override Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            IEnumerable <string> headerValues;
            var apiKey = string.Empty;

            if (request.Headers.TryGetValues("ApiKey", out headerValues))
            {
                apiKey = headerValues.FirstOrDefault();
                Guid gApiKey = new Guid(apiKey);
                User user    = UserDatabaseAccess.CheckUser(gApiKey);

                var claims = new List <Claim>();
                claims.Add(new Claim(ClaimTypes.Name, user.UserName));
                var id        = new ClaimsIdentity(claims, apiKey);
                var principal = new ClaimsPrincipal(id);
                Thread.CurrentPrincipal = principal;
            }

            return(base.SendAsync(request, cancellationToken));
        }
        public HttpResponseMessage getPublicKey()
        {
            IEnumerable <string> key;

            Request.Headers.TryGetValues("x-api-key", out key);

            User   user      = userDatabase.GetUser(key.First());
            string logString = "Protected Get PublicKey";
            Log    log       = new Log(logString, DateTime.UtcNow);

            user.Log.Add(log);

            if (userDatabase.CheckUser(key.First()))
            {
                return(Request.CreateResponse(HttpStatusCode.OK, rsa.ToXmlString(false)));
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, "Couldn't Get the Public Key"));
            }
        }
 public IActionResult PostAction([FromBody] string username)
 {
     using (var ctx = new UserContext())
     {
         if (UserDatabaseAccess.CheckUser(ctx, username) == true)
         {
             this.Response.StatusCode = 403;
             return(new ObjectResult("Oops. This username is already in use. Please try again with a new username."));
         }
         else if (username == null)
         {
             this.Response.StatusCode = 400;
             return(new ObjectResult("Oops. Make sure your body contains a string with your username and your Content-Type is Content-Type:application/json"));
         }
         else
         {
             string ret = UserDatabaseAccess.CreateNewUser(ctx, username);
             return(Ok(ret));
         }
     }
 }
        public HttpResponseMessage Delete([FromUri] string username)
        {
            IEnumerable <string> key;

            Request.Headers.TryGetValues("x-api-key", out key);

            User   user      = userDatabase.GetUser(key.First());
            string logString = "Delete User";
            Log    log       = new Log(logString, DateTime.UtcNow);

            user.Log.Add(log);

            bool userCheck = userDatabase.CheckUser(key.First(), username);

            if (userCheck == true)
            {
                userDatabase.DeleteUser(key.First());
                return(Request.CreateResponse(HttpStatusCode.OK, true));
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.OK, false));
            }
        }