Esempio n. 1
0
 public HttpResponseMessage validate(LoginRequest model)
 {
     try
     {
         if (ModelState.IsValid)
         {
             IUserAuthData success = _userService.validatePassword(model.Email, model.Password);
             if (success != null)
             {
                 ItemResponse <IUserAuthData> resp = new ItemResponse <IUserAuthData>();
                 resp.Item = success;
                 return(Request.CreateResponse(HttpStatusCode.OK, resp));
             }
             else
             {
                 ErrorResponse resp = new ErrorResponse("Password does not match");
                 return(Request.CreateResponse(HttpStatusCode.OK, resp));
             }
         }
         else
         {
             return(Request.CreateResponse(HttpStatusCode.BadRequest, ModelState));
         }
     }
     catch (Exception ex)
     {
         log.Error(ex.Message, ex);
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
     }
 }
        public ActionResult <ItemsResponse <List <ProviderReport> > > SelectProviderLicenseList()
        {
            int          code     = 200;
            BaseResponse response = null;

            try
            {
                IUserAuthData user = _auth.GetCurrentUser();
                if (user.Roles.Contains("Office Manager"))
                {
                    List <ProviderReport> list = _service.SelectAllProviderList(user.Id);
                    if (list == null)
                    {
                        code     = 404;
                        response = new ErrorResponse("Resource not found");
                    }
                    else
                    {
                        response = new ItemsResponse <ProviderReport>()
                        {
                            Items = list
                        };
                    }
                }
            } catch (Exception ex)
            {
                code     = 500;
                response = new ErrorResponse(ex.Message);
            }

            return(StatusCode(code, response));
        }
Esempio n. 3
0
        public bool LogIn(string email, string password)
        {
            bool isSuccessful = false;


            string salt = GetSalt(email);

            if (salt == null)
            {
                return(isSuccessful);
            }
            if (!String.IsNullOrEmpty(salt))
            {
                string passwordHash = _cryptographyService.Hash(password, salt, HASH_ITERATION_COUNT);

                IUserAuthData response = Get(email, passwordHash);

                if (response != null)
                {
                    _authenticationService.LogIn(response);
                    isSuccessful = true;
                }
            }

            return(isSuccessful);
        }
Esempio n. 4
0
 public MealService2(IDataProvider dataProvider, IUserService getProfile, IPrincipal user)
 {
     _dataProvider = dataProvider;
     _getProfile   = getProfile;
     _principal    = user;
     _currentUser  = _principal.Identity.GetCurrentUser();
 }
        public ActionResult <ItemResponse <int> > Add(AdvertisersAddRequest model)
        {
            int           userId = _authService.GetCurrentUserId();
            IUserAuthData user   = _authService.GetCurrentUser();
            ObjectResult  result = null;

            try
            {
                int id = _service.Add(model, userId);
                ItemResponse <int> response = new ItemResponse <int>()
                {
                    Item = id
                };

                result = Created201(response);
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.ToString());
                ErrorResponse response = new ErrorResponse(ex.Message);

                result = StatusCode(500, response);
            }

            return(result);
        }
Esempio n. 6
0
        public bool LogIn(string email, string password, bool isPersistent)
        {
            bool isSuccessful = false;

            string salt             = GetSalt(email);
            bool   isEmailConfirmed = GetEmailConfirmation(email);

            if (!String.IsNullOrEmpty(salt) && isEmailConfirmed != false)
            {
                string passwordHash = _cryptographyService.Hash(password, salt, HASH_ITERATION_COUNT);

                IUserAuthData response = Get(email, passwordHash);

                if (response != null)
                {
                    Claim firstName = new Claim("FirstName", response.FirstName);
                    Claim lastName  = new Claim("LastName", response.LastName);
                    Claim photoUrl  = new Claim("PhotoUrl", response.PhotoUrl);


                    _authenticationService.LogIn(response, isPersistent, new Claim[] { firstName, lastName, photoUrl });
                    isSuccessful = true;
                }
            }
            return(isSuccessful);
        }
        public ActionResult <ItemResponse <IUserAuthData> > GetCurrentUser()
        {
            int          code     = 200;
            BaseResponse response = null;

            try
            {
                IUserAuthData currentUser = _authService.GetCurrentUser();

                if (currentUser != null)
                {
                    int  id   = currentUser.Id;
                    User user = _service.GetById(id);

                    response = new ItemResponse <User> {
                        Item = user
                    };
                }
                else
                {
                    code     = 404;
                    response = new ErrorResponse("Current user not found.");
                }
            }
            catch (Exception ex)
            {
                code     = 500;
                response = new ErrorResponse($"Generic Error: {ex.Message}");
                base.Logger.LogError(ex.ToString());
            }
            return(StatusCode(code, response));
        }
Esempio n. 8
0
        public void LogIn(IUserAuthData user, params Claim[] extraClaims)
        {
            ClaimsIdentity identity = new ClaimsIdentity(DefaultAuthenticationTypes.ApplicationCookie
                                                         , ClaimsIdentity.DefaultNameClaimType
                                                         , ClaimsIdentity.DefaultRoleClaimType);

            identity.AddClaim(new Claim("http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider"
                                        , _title
                                        , ClaimValueTypes.String));

            identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, user.Id.ToString(), ClaimValueTypes.String));

            identity.AddClaim(new Claim(ClaimsIdentity.DefaultNameClaimType, user.Name, ClaimValueTypes.String));

            if (user.Roles != null && user.Roles.Any())
            {
                foreach (string singleRole in user.Roles)
                {
                    identity.AddClaim(new Claim(ClaimsIdentity.DefaultRoleClaimType, singleRole, ClaimValueTypes.String));
                }
            }

            identity.AddClaims(extraClaims);

            AuthenticationProperties props = new AuthenticationProperties
            {
                IsPersistent = true,
                IssuedUtc    = DateTime.UtcNow,
                ExpiresUtc   = DateTime.UtcNow.AddDays(60),
                AllowRefresh = true
            };

            HttpContext.Current.GetOwinContext().Authentication.SignIn(props, identity);
        }
Esempio n. 9
0
        public ActionResult <ItemResponse <IUserAuthData> > GetCurrrent()
        {
            IUserAuthData user = _authService.GetCurrentUser();
            ItemResponse <IUserAuthData> response = new ItemResponse <IUserAuthData>();

            response.Item = user;
            return(Ok200(response));
        }
Esempio n. 10
0
        public HttpResponseMessage GetMine(int pageIndex, int pageSize)
        {
            ItemResponse <Paged <Ding> > response = new ItemResponse <Paged <Ding> >();
            IUserAuthData user   = _auth.GetCurrentUser();
            int           userId = user.Id;

            response.Item = _service.GetMine(userId, pageIndex, pageSize);
            return(Request.CreateResponse(HttpStatusCode.OK, response));
        }
Esempio n. 11
0
        //Login from fb,google,linkedin without needing password
        public bool LogInFree(UserFreeRequest model)
        {
            IUserAuthData response = GetFree(model.Email);

            _authenticationService.LogIn(response);
            bool isSuccessful = true;

            return(isSuccessful);
        }
        public HttpResponseMessage UploadFile()
        {
            var    httpPostedFile = HttpContext.Current.Request.Files[0];
            string fileName       = Path.GetFileNameWithoutExtension(httpPostedFile.FileName);
            string extension      = Path.GetExtension(httpPostedFile.FileName);
            var    newGuid        = Guid.NewGuid().ToString("");
            var    newFileName    = fileName + "_" + newGuid + extension;
            Stream st             = httpPostedFile.InputStream;

            try
            {
                if (httpPostedFile != null)
                {
                    TransferUtility utility = new TransferUtility(awsS3Client);
                    TransferUtilityUploadRequest request = new TransferUtilityUploadRequest();
                    request.BucketName  = bucketname;
                    request.Key         = newFileName;
                    request.InputStream = st;
                    log.Debug(newFileName + "uploading to AWS S3");
                    utility.Upload(request); //File Streamed to AWS

                    FileStorageAddRequest model       = new FileStorageAddRequest();
                    IUserAuthData         currentUser = _principal.Identity.GetCurrentUser();

                    if (extension == ".jpg" || extension == ".jpeg" || extension == ".png" ||
                        extension == ".gif" || extension == ".bmp" || extension == ".svg")
                    {
                        model.FileTypeId = 1;
                    }
                    else
                    {
                        model.FileTypeId = 8;
                    }
                    //Logic needed in order to separate filetypeId in correct type because this is more specific to documents...
                    model.UserFileName   = fileName;
                    model.SystemFileName = newFileName;
                    model.Location       = "https://sabio-training.s3.us-west-2.amazonaws.com/C53/" + newFileName;
                    model.CreatedBy      = currentUser.Name;
                    int id = _fileStorageService.Insert(model);
                    ItemResponse <int> resp = new ItemResponse <int>();
                    resp.Item = id;
                    log.Debug("URL:" + " " + model.Location);
                    return(Request.CreateResponse(HttpStatusCode.OK, resp));
                }
                else
                {
                    log.Error("Error trying to upload and store metadata");
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, ModelState));
                }
            }
            catch (Exception ex)
            {
                log.Error("Unable to upload files");
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
        public ActionResult <SuccessResponse> ResetPassword(int id, UserUpdatePasswordRequest model)
        {
            int          iCode    = 200;
            BaseResponse response = null;

            try
            {
                int userId = _service.GetUserIdByToken(model.Token);

                if (userId > 0)
                {
                    bool successful = _service.VerifyTokenResetPassword(model.Token, model.Password);

                    if (successful)
                    {
                        response = new SuccessResponse();
                    }
                    else
                    {
                        iCode    = 404;
                        response = new ErrorResponse("Could not locate UserId with this token");
                    }
                }
                else
                {
                    IUserAuthData currentUser = _authService.GetCurrentUser();

                    if (currentUser != null)
                    {
                        id = currentUser.Id;

                        _service.UpdatePassword(id, model.Password, model.ConfirmPassword);

                        response = new SuccessResponse();
                    }
                    else
                    {
                        iCode    = 404;
                        response = new ErrorResponse("Could not locate UserId");
                    }
                }
            }
            catch (Exception ex)
            {
                iCode = 500;
                base.Logger.LogError(ex.ToString());
                response = new ErrorResponse($"Generic Error: ${ ex.Message }");
            }

            return(StatusCode(iCode, response));
        }
        public ActionResult <ItemResponse <Provider> > SelectDetailsById(int id)
        {
            int          code = 200;
            BaseResponse response;

            try
            {
                IUserAuthData user     = _auth.GetCurrentUser();
                Provider      provider = null;

                if (user.Roles.Contains("SysAdmin"))
                {
                    provider = _service.SelectDetailsById(id);
                }
                if (!user.Roles.Contains("Consumer") && !user.Roles.Contains("SysAdmin"))
                {
                    if (user.Roles.Contains("Provider"))
                    //provider is making request
                    {
                        provider = _service.SelectDetailsById(id);
                    }
                    else
                    //office manager or provider assistant is making request
                    {
                        provider = _service.SelectDetailsById(id, user.Id);
                    }
                }

                if (provider == null)
                {
                    code     = 404;
                    response = new ErrorResponse("App resource not found.");
                }
                else
                {
                    response = new ItemResponse <Provider>()
                    {
                        Item = provider
                    };
                }
            }
            catch (Exception ex)
            {
                code     = 500;
                response = new ErrorResponse(ex.Message);
                base.Logger.LogError(ex.ToString());
            }

            return(StatusCode(code, response));
        }
Esempio n. 15
0
        public UsersApiController(IUserService userService, IAuthenticationService auth, IPrincipal principal, IAddressService addressService, IEmailService emailService, ICommentsService commentsService,
                                  ITokenService tokenService)
        {
            _userService = userService;
            _auth        = auth;
            _principal   = principal;

            _addressService = addressService;
            _emailService   = emailService;
            _tokenService   = tokenService;

            _currentUser     = _principal.Identity.GetCurrentUser();
            _commentsService = commentsService;
        }
Esempio n. 16
0
        public async Task <bool> LogInAsync(string email, string password)
        {
            bool isSuccessful = false;

            IUserAuthData response = Get(email, password);

            if (response != null)
            {
                await _authenticationService.LogInAsync(response);

                isSuccessful = true;
            }

            return(isSuccessful);
        }
Esempio n. 17
0
        public bool LogIn(string userName, string password)
        {
            bool isSuccessful = false;

            IUserAuthData response = SelectByUserName(userName, password);

            if (response != null)
            {
                _authenticationService.LogIn(response);
                isSuccessful = true;
            }


            return(isSuccessful);
        }
Esempio n. 18
0
        public bool LogIn(string email, string password)
        {
            bool isSuccessful = false;

            IUserAuthData response = Get(email, password);

            if (response != null)
            {
                _authenticationService.LogIn(response);
                isSuccessful = true;
            }


            return(isSuccessful);
        }
Esempio n. 19
0
        public IUserAuthData validatePassword(string email, string password)
        {
            string salt = GetSalt(email);

            if (!String.IsNullOrEmpty(salt))
            {
                string        passwordHash = _cryptographyService.Hash(password, salt, HASH_ITERATION_COUNT);
                IUserAuthData response     = Get(email, passwordHash);
                if (response != null && response.Name != null && response.Id != 0)
                {
                    return(response);
                }
            }
            return(null);
        }
Esempio n. 20
0
        public void Login_Test_Password_False()
        {
            // Arrange
            LoginRequest model = new LoginRequest
            {
                Email    = "*****@*****.**",
                Password = "******",
            };

            // Act
            IUserAuthData result = _userService1.LogIn(model.Email, model.Password);

            // Assert
            Assert.IsInstanceOfType(result, typeof(IUserAuthData), "response has to be bool");
        }
Esempio n. 21
0
        public HttpResponseMessage Create(DigAddRequest model)
        {
            if (!ModelState.IsValid)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
            }
            ItemResponse <int> response = new ItemResponse <int>();
            IUserAuthData      user     = _auth.GetCurrentUser();
            int userId = user.Id;

            model.CreatedBy = userId;

            response.Item = _service.Insert(model);

            return(Request.CreateResponse(HttpStatusCode.OK, response));
        }
Esempio n. 22
0
        public ActionResult <ItemResponse <IUserAuthData> > GetCurrent()
        {
            IUserAuthData user = _authService.GetCurrentUser();
            ItemResponse <IUserAuthData> response = new ItemResponse <IUserAuthData>();

            response.Item = user;

            if (response.Item == null)
            {
                return(NotFound404(new ErrorResponse("Not Logged In")));
            }
            else
            {
                return(Ok200(response));
            }
        }
Esempio n. 23
0
        public HttpResponseMessage Login(LoginRequest model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var    webClient         = new WebClient();
                    string verification      = webClient.DownloadString(string.Format("https://www.google.com/recaptcha/api/siteverify?secret={0}&response={1}", _configService.ConvertConfigValue_String("Google_Recaptcha"), model.recaptchaResponse));
                    var    recaptchaResponse = (JObject.Parse(verification)["success"].Value <bool>());

                    // checking for third party login
                    ThirdPartyUserLogin check = _thirdPartyUserService.GetByEmail(model.Email);
                    if (check.ThirdPartyTypeId > 0)
                    {
                        ErrorResponse resp = new ErrorResponse("Uncessful Login Attempt, user is registered with third party service");
                        return(Request.CreateResponse(HttpStatusCode.OK, resp));
                    }
                    else
                    {
                        IUserAuthData success = _userService.LogIn(model.Email, model.Password);

                        if (success != null)
                        {
                            List <int> pID = _userService.GetPerson(success.Id);
                            LoginResponse <IUserAuthData> resp = new LoginResponse <IUserAuthData>();
                            resp.Item     = success;
                            resp.PersonID = pID;
                            return(Request.CreateResponse(HttpStatusCode.OK, resp));
                        }
                        else
                        {
                            ErrorResponse resp = new ErrorResponse("Uncessful Login Attempt");
                            return(Request.CreateResponse(HttpStatusCode.OK, resp));
                        }
                    }
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, ModelState));
                }
            }
            catch (Exception ex)
            {
                log.Error(ex.Message, ex);
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
        public ActionResult <ItemResponse <Paged <ProviderReport> > > ReportSelectPaged(int pageIndex, int pageSize, ProviderDetailCategories categories)
        {
            int          code     = 200;
            BaseResponse response = null;

            try
            {
                IUserAuthData user = _auth.GetCurrentUser();
                if (user.Roles.Contains("SysAdmin") || user.Roles.Contains("Office Manager"))
                {
                    Paged <ProviderReport> pagedItems = null;
                    if (user.Roles.Contains("SysAdmin"))
                    {
                        pagedItems = _service.ReportSelectAllPaged(pageIndex, pageSize, categories);
                    }
                    else
                    {
                        pagedItems = _service.ReportSelectPaged(pageIndex, pageSize, user.Id, categories);
                    }

                    if (pagedItems == null)
                    {
                        code     = 404;
                        response = new ErrorResponse("App resource not found.");
                    }
                    else
                    {
                        response = new ItemResponse <Paged <ProviderReport> > {
                            Item = pagedItems
                        };
                    }
                }
                else
                {
                    code     = 500;
                    response = new ErrorResponse("You do not meet the requirements to access this resource.");
                }
            }
            catch (Exception ex)
            {
                base.Logger.LogError(ex.ToString());
                code     = 500;
                response = new ErrorResponse(ex.Message);
            }

            return(StatusCode(code, response));
        }
        public HttpResponseMessage UploadFile()
        {
            var    httpPostedFile = HttpContext.Current.Request.Files[0];
            string fileName       = Path.GetFileNameWithoutExtension(httpPostedFile.FileName);
            string extension      = Path.GetExtension(httpPostedFile.FileName);
            var    newGuid        = Guid.NewGuid().ToString("");
            var    newFileName    = fileName + "_" + newGuid + extension;
            Stream st             = httpPostedFile.InputStream;

            try
            {
                if (httpPostedFile != null)
                {
                    TransferUtility utility = new TransferUtility(awsS3Client);
                    TransferUtilityUploadRequest request = new TransferUtilityUploadRequest();
                    request.BucketName  = bucketname;
                    request.Key         = newFileName;
                    request.InputStream = st;
                    log.Debug(newFileName + "uploading to AWS S3");
                    utility.Upload(request);

                    FileStorageAddRequest model       = new FileStorageAddRequest();
                    IUserAuthData         currentUser = _principal.Identity.GetCurrentUser();

                    model.UserFileName   = fileName;
                    model.SystemFileName = newFileName;
                    model.Location       = "URL" + newFileName;
                    model.CreatedBy      = currentUser.Name;
                    int id = _fileStorageService.Insert(model);
                    ItemResponse <int> resp = new ItemResponse <int>();
                    resp.Item = id;
                    log.Debug("URL:" + " " + model.Location);
                    return(Request.CreateResponse(HttpStatusCode.OK, resp));
                }
                else
                {
                    log.Error("Error trying to upload and store metadata");
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, ModelState));
                }
            }
            catch (Exception ex)
            {
                log.Error("Unable to upload files");
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Esempio n. 26
0
        public bool ExternalLogIn(ExtUserAddRequest data, UserStatus status = UserStatus.Active)
        {
            bool          isSuccessful = false;
            bool          response     = Create(data, status);
            IUserAuthData authUser     = null;

            if (response)
            {
                authUser = Get(data.EmailAddress);
            }

            if (authUser != null)
            {
                _authenticationService.LogIn(authUser);
                isSuccessful = true;
            }

            return(isSuccessful);
        }
        public ActionResult <ItemResponse <Paged <ProviderReport> > > SearchProviderReportList(int pageIndex, int pageSize, string query, ProviderDetailCategories categories)

        {
            int          code = 200;
            BaseResponse response;

            try
            {
                IUserAuthData          user       = _auth.GetCurrentUser();
                Paged <ProviderReport> pagedItems = null;
                if (user.Roles.Contains("SysAdmin") || user.Roles.Contains("Office Manager"))
                {
                    if (user.Roles.Contains("SysAdmin"))
                    {
                        pagedItems = _service.SearchReportSelectAllPaged(pageIndex, pageSize, categories, query);
                    }
                    else
                    {
                        pagedItems = _service.SearchReportSelectPaged(pageIndex, pageSize, categories, query, user.Id);
                    }
                }
                if (pagedItems == null)
                {
                    code     = 404;
                    response = new ErrorResponse("App resource not found.");
                }
                else
                {
                    response = new ItemResponse <Paged <ProviderReport> >()
                    {
                        Item = pagedItems
                    };
                }
            }
            catch (Exception ex)
            {
                code     = 500;
                response = new ErrorResponse(ex.Message);
            }

            return(StatusCode(code, response));
        }
        public ActionResult <ItemsResponse <List <ProviderReport> > > ReportSelectAllPdf(ProviderDetailCategories categories)
        {
            int          code     = 200;
            BaseResponse response = null;

            try
            {
                IUserAuthData         user = _auth.GetCurrentUser();
                List <ProviderReport> list = null;
                if (user.Roles.Contains("Office Manager") || (user.Roles.Contains("SysAdmin")))
                {
                    if (user.Roles.Contains("SysAdmin"))
                    {
                        list = _service.ReportSelectAllPdf(categories, 0);
                    }
                    else
                    {
                        list = _service.ReportSelectAllPdf(categories, user.Id);
                    }

                    if (list == null)
                    {
                        code     = 404;
                        response = new ErrorResponse("App resource not found.");
                    }
                    else
                    {
                        response = new ItemsResponse <ProviderReport>()
                        {
                            Items = list
                        };
                    }
                }
            }
            catch (Exception ex)
            {
                base.Logger.LogError(ex.ToString());
                code     = 500;
                response = new ErrorResponse(ex.Message);
            }
            return(StatusCode(code, response));
        }
        public ActionResult <ItemResponse <Paged <ProviderNonCompliant> > > SelectAllNonCompliant(int pageIndex, int pageSize)
        {
            int          code     = 200;
            BaseResponse response = null;

            try
            {
                IUserAuthData user = _auth.GetCurrentUser();
                Paged <ProviderNonCompliant> pagedItems = null;
                if (user.Roles.Contains("SysAdmin") || user.Roles.Contains("Office Manager"))
                {
                    if (user.Roles.Contains("SysAdmin"))
                    {
                        pagedItems = _service.SelectAllNonCompliant(pageIndex, pageSize);
                    }
                    else
                    {
                        pagedItems = _service.SelectNonCompliant(pageIndex, pageSize, user.Id);
                    }
                }

                if (pagedItems == null)
                {
                    code     = 404;
                    response = new ErrorResponse("App resource not found.");
                }
                else
                {
                    response = new ItemResponse <Paged <ProviderNonCompliant> > {
                        Item = pagedItems
                    };
                }
            }
            catch (Exception ex)
            {
                base.Logger.LogError(ex.ToString());
                code     = 500;
                response = new ErrorResponse(ex.Message);
            }

            return(StatusCode(code, response));
        }
        public FileStreamResult ReportSelectAll(ProviderDetailCategories categories)
        {
            BaseResponse response;

            try
            {
                IUserAuthData user   = _auth.GetCurrentUser();
                MemoryStream  stream = null;
                if (user.Roles.Contains("Office Manager") || (user.Roles.Contains("SysAdmin")))
                {
                    if (user.Roles.Contains("SysAdmin"))
                    {
                        stream = _service.ReportSelectAll(categories, 0);
                    }
                    else
                    {
                        stream = _service.ReportSelectAll(categories, user.Id);
                    }
                }


                if (stream == null)
                {
                    response = new ErrorResponse("App resource not found.");
                }
                else
                {
                    stream.Position = 0;
                    var contentType = "application/octet-stream";
                    var fileName    = "ProviderReport.xlsx";
                    return(File(stream, contentType, fileName));
                }
            }
            catch (Exception ex)
            {
                base.Logger.LogError(ex.ToString());

                response = new ErrorResponse(ex.Message);
            }
            return(null);
        }