public Response DeleteOperationToRole(ApplicationPMX application, Operation operation, Role role, User registerUser)
        {
            var response = new Response {
                Message = "Sin inicializar", Result = false
            };
            var operationsDA = new OperationDA(_configuration);

            try
            {
                operationsDA.DeleteOperationToRole(operation, role);
                response.Message = string.Format("Se eliminó la operacion {0} al rol {1}", operation.OperationName, role.RoleName);
                var log = new Log
                {
                    Application = application
                    ,
                    EventTypeId = LogTypeEnum.Notification
                    ,
                    EventUser = registerUser
                    ,
                    LogDescription = string.Format("Se eliminó la operacion {0} al rol {1}", operation.OperationName, role.RoleName)
                };

                var loglogic = new LogLogic(_configuration);
                loglogic.InsertLogEvent(log);
                loglogic.Dispose();
                response.Result = true;
            }
            catch (Exception)
            {
                response.Message = string.Format("Ocurrio un error al intentar eliminar operacion {0} al rol {1}",
                                                 operation.OperationName, role.RoleName);
            }
            operationsDA.Dispose();
            return(response);
        }
        public void usuariosModificados(User registerUser, string mensaje)
        {
            var logCuentasUsuarios = new Log
            {
                Application = new ApplicationPMX {
                    ApplicationName = _applicationName
                },
                EventUser      = registerUser,
                EventTypeId    = LogTypeEnum.Notification,
                LogDescription = string.Format(mensaje)
            };
            var loglogic = new LogLogic(_configuration);

            loglogic.InsertLogEvent(logCuentasUsuarios);
            loglogic.Dispose();
        }
        public Response UpdateOperationCombinationNotAllowed(ApplicationPMX application, Operation operationA, Operation operationB, DateTime declineDate, User registerUser)
        {
            //Se debe de regresar falso si no existe y se debe de interpretar en la llamada de la funcion
            var response = new Response {
                Message = "No existe la combinacion", Result = false
            };
            var operationDA = new OperationDA(_configuration);

            try
            {
                operationDA.UpdateOperationNotAllowedCombination(application, operationA, operationB, declineDate, registerUser);

                #region logRegister
                var log = new Log
                {
                    Application = new ApplicationPMX
                    {
                        ApplicationName = _applicationName
                    },
                    EventUser      = registerUser,
                    EventTypeId    = LogTypeEnum.Notification,
                    LogDescription = string.Format("Se actualizó la fecha de vigencia de combinación no autorizada de operaciones. Operaciones {0} - {1} nueva fecha de vigencia {3}", operationA.OperationId.ToString() + " " + operationA.OperationName, operationB.OperationId.ToString() + " " + operationB.OperationName, declineDate.ToShortDateString())
                };

                #endregion
                var loglogic = new LogLogic(_configuration);
                loglogic.InsertLogEvent(log);
                loglogic.Dispose();
            }
            catch (Exception e)
            {
                response.Message =
                    string.Format(
                        "Ocurrio un error al eliminar la combinacion de operaciones. {0}",
                        e.Message);
                response.Result = false;
            }
            response.Result  = true;
            response.Message =
                string.Format(
                    "Se eliminó la combinación no permitida de la operacion {0} y {1} de la aplicacion {2}.", operationA.OperationName, operationB.OperationName, application.ApplicationName);
            operationDA.Dispose();
            return(response);
        }
Пример #4
0
        public Response UpdateOperationCombinationNotAllowed(ApplicationPMX application, Role roleA, Role roleb, DateTime dtDeclineDate, User registerUser)
        {
            Response response = new Response()
            {
                Message = "Sin Inicializar", Result = false
            };
            var roleDa = new RoleDA(_configuration);

            try
            {
                roleDa.UpdateRoleNotAllowedCombination(application, roleA, roleb, dtDeclineDate, registerUser);
                response.Result  = true;
                response.Message = "Combinacion no autorizada de rol actualizada.";
                #region logRegister
                var log = new Log
                {
                    Application = new ApplicationPMX
                    {
                        ApplicationName = _applicationName
                    },
                    EventUser      = registerUser,
                    EventTypeId    = LogTypeEnum.Notification,
                    LogDescription = string.Format("Se actualizó la fecha de vigencia de combinación no autorizada de roles. Roles {0} - {1} fecha de declinación {2}", roleA.RoleId.ToString() + " " + roleA.RoleName, roleb.RoleId.ToString() + " " + roleb.RoleName, dtDeclineDate.ToShortDateString())
                };

                #endregion

                var logLogic = new LogLogic(_configuration);
                logLogic.InsertLogEvent(log);
                logLogic.Dispose();
            }
            catch (Exception e)
            {
                response.Message = e.Message;
            }
            roleDa.Dispose();
            return(response);
        }
        public Response AddSession(User userAuthenticated, ApplicationPMX application)
        {
            Response response = new Response {
                Message = "Sin inicializar", Result = false
            };

            try
            {
                var sessionDataAccess = new SessionsDataAccess(_configuration);
                sessionDataAccess.AddSession(userAuthenticated, application);
                sessionDataAccess.Dispose();

                var log = new Log
                {
                    Application = application,
                    EventUser   = userAuthenticated,
                    EventTypeId = LogTypeEnum.LogInSuccesful,
                    //EventIpAddress = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] ??
                    //                  HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"],
                    LogDescription = string.Format("Se ha agregado la sesión {0} del usuario {1} al esquema de seguridad.", userAuthenticated.SessionId, userAuthenticated.UserId)
                };

                var loglogic = new LogLogic(_configuration);
                loglogic.InsertLogEvent(log);
                loglogic.Dispose();

                response.Message = "Se agrego exitosamente la sesión al esquema de seguridad.";

                response.Result = true;
                return(response);
            }
            catch (Exception err)
            {
                response.Message = string.Format("Ocurrió un error al intentar crear una sesión en el esquema de seguridad. {0}", err.Message);
                return(response);
            }
        }
Пример #6
0
        public Response AddRoleToApplication(ApplicationPMX application, Role role, User registerUser, int tipo)
        {
            var response = new Response {
                Message = "Sin inicializar", Result = false
            };
            var roleDa = new RoleDA(_configuration);

            try
            {
                //aplicationValidation
                var applicationLogic = new ApplicationLogic(_configuration);
                var applicationList  = applicationLogic.GetApplicationList();
                applicationLogic.Dispose();

                var applicationFinded = applicationList.Find(app => app.ApplicationName == application.ApplicationName);
                if (applicationFinded == null)
                {
                    response.Message = string.Format("La aplicación {0} especificada no existe en el esquema de seguridad", application.ApplicationName);
                    return(response);
                }


                //User validation
                var userLogic  = new UserLogic(_configuration);
                var userFinded = userLogic.FindUser(registerUser.UserId);
                userLogic.Dispose();
                if (userFinded == null)
                {
                    response.Message = string.Format(
                        "El usuario {0} de registro no se encontró en el esquema de seguridad", registerUser.UserId);
                    return(response);
                }

                //Role validation
                var userApplicationRole = new UsersApplicationsRoles()
                {
                    ApplicationId = applicationFinded.ApplicationId
                };

                var roleList          = roleDa.GetRoleforApplication(userApplicationRole, tipo);
                var roleAlreadyFinded = roleList.Find(rolesearched => rolesearched.RoleName == role.RoleName);
                if (roleAlreadyFinded != null)
                {
                    response.Message = string.Format("El nombre {0} del rol no puede ser repetido.", role.RoleName);
                    return(response);
                }
                //TODO:Validar nombre con caracteres distintos
                //Roleregister
                roleDa.AddRole(role, userFinded);

                //LogActivity
                var log = new Log
                {
                    Application = applicationFinded
                    ,
                    EventTypeId = LogTypeEnum.Notification
                    ,
                    EventUser = registerUser
                    ,
                    LogDescription =
                        string.Format("Se agregó el rol {0} a la aplicación {1}.", role.RoleName,
                                      applicationFinded.ApplicationName)
                };
                var loglogic  = new LogLogic(_configuration);
                var resultLog = loglogic.InsertLogEvent(log);
                loglogic.Dispose();
                if (resultLog.Result)
                {
                    response.Message = string.Format("Se agregó el rol {0} a la aplicación {1}.", role.RoleName,
                                                     applicationFinded.ApplicationName);
                    response.Result = true;
                }
                else
                {
                    response.Message = string.Format("Se agregó el rol {0} a la aplicación {1}. Pero no se pudo registrar el movimiento en bitácora.", role.RoleName, applicationFinded.ApplicationName);
                    response.Result  = true;
                }
            }
            catch (Exception err)
            {
                response.Message = string.Format("Ocurrio un error. {0}", err.Message);
            }
            roleDa.Dispose();
            return(response);
        }
Пример #7
0
        public Response InsertRoleCombinationNotAllowed(ApplicationPMX application, Role roleAc, Role roleBc, User registerUser)
        {
            var response = new Response {
                Message = "Not Initialized", Result = false
            };
            var roleA = this.GetRole(roleAc);
            var roleB = this.GetRole(roleBc);


            if (roleA.RoleId == roleB.RoleId)
            {
                response.Message = "La combinación no puede realizarse con el mismo rol";
                response.Result  = false;
                return(response);
            }

            var resultExist = RoleNotAllowedCombinationExist(application, roleA, roleB);

            if (resultExist.Result)
            {
                response.Message = string.Format("No se puede insertar la combinación de rol.{0}", resultExist.Message);
                response.Result  = false;
                return(response);
            }


            var roleDa = new RoleDA(_configuration);

            try
            {
                roleDa.InsertRoleNotAllowedCombination(application, roleA, roleB, registerUser);
                response.Result  = true;
                response.Message =
                    string.Format(
                        "Se insertó la combinación no permitida del rol {0} y {1} de la aplicación {2}.", roleA.RoleId.ToString() + " " + roleA.RoleName, roleB.RoleId.ToString() + " " + roleB.RoleName, application.ApplicationName);

                #region logRegister
                var log = new Log
                {
                    Application = new ApplicationPMX
                    {
                        ApplicationName = _applicationName
                    },
                    EventUser      = registerUser,
                    EventTypeId    = LogTypeEnum.Notification,
                    LogDescription = response.Message
                };

                #endregion
                var loglogic = new LogLogic(_configuration);
                loglogic.InsertLogEvent(log);
                loglogic.Dispose();
            }
            catch (Exception e)
            {
                response.Message =
                    string.Format(
                        "Ocurrio un error al insertar la combinación de roles. {0}",
                        e.Message);
                response.Result = false;
            }
            roleDa.Dispose();

            return(response);
        }
        public Response InsertOperationCombinationNotAllowed(ApplicationPMX application, Operation operationA, Operation operationB, DateTime declineDate, User registerUser)
        {
            var response = new Response {
                Message = "Not Initialized", Result = false
            };

            if (operationA.OperationId == operationB.OperationId)
            {
                response.Message = "La combinación no puede realizarse con la misma operación";
                response.Result  = false;
                return(response);
            }

            var resultExist = OperationsNotAllowedCombinationExist(application, operationA, operationB);

            if (resultExist.Result)
            {
                response.Message = string.Format("No se puede insertar la combinación.{0}", resultExist.Message);
                response.Result  = false;
                return(response);
            }


            var operationDA = new OperationDA(_configuration);

            try
            {
                operationDA.InsertOperationNotAllowedCombination(application, operationA, operationB, declineDate, registerUser);
                response.Result  = true;
                response.Message =
                    string.Format(
                        "Se insertó la combinación no permitida de la operación {0} y {1} de la aplicación {2}.", operationA.OperationName, operationB.OperationName, application.ApplicationName);

                #region logRegister
                var log = new Log
                {
                    Application = new ApplicationPMX
                    {
                        ApplicationName = _applicationName
                    },
                    EventUser      = registerUser,
                    EventTypeId    = LogTypeEnum.Notification,
                    LogDescription = response.Message
                };

                #endregion
                var loglogic  = new LogLogic(_configuration);
                var resultLog = loglogic.InsertLogEvent(log);
                loglogic.Dispose();
            }
            catch (Exception e)
            {
                response.Message =
                    string.Format(
                        "Ocurrio un error al insertar la combinación de operaciones. {0}",
                        e.Message);
                response.Result = false;
            }
            operationDA.Dispose();
            return(response);
        }
        public Response AddOperationToApplication(ApplicationPMX application, Operation operation, User registerUser)
        {
            var response = new Response {
                Message = "No inicializado", Result = false
            };

            try
            {
                //aplicationValidation
                var applicationLogic = new ApplicationLogic(_configuration);
                var applicationList  = applicationLogic.GetApplicationList();
                applicationLogic.Dispose();
                var applicationFinded = applicationList.Find(app => app.ApplicationName == application.ApplicationName);
                if (applicationFinded == null)
                {
                    response.Message = string.Format("La aplicación {0} especificada no existe en el esquema de seguridad", application.ApplicationName);
                    return(response);
                }


                //User validation
                var userLogic  = new UserLogic(_configuration);
                var userFinded = userLogic.FindUser(registerUser.UserId);
                userLogic.Dispose();
                if (userFinded == null)
                {
                    response.Message = string.Format(
                        "El usuario {0} de registro no se encontró en el esquema de seguridad", registerUser.UserId);
                    return(response);
                }

                //OperationValidation
                if (string.IsNullOrEmpty(operation.OperationName) || operation.OperationName.Length < 7)
                {
                    response.Message =
                        string.Format("El nombre de la operación no puede estár vacío ni menor a 7 caracteres.");
                    return(response);
                }
                var operationDA     = new OperationDA(_configuration);
                var operationsList  = operationDA.GetOperationsList(applicationFinded);
                var operationfinded = operationsList.Find(op => op.OperationName == operation.OperationName);
                if (operationfinded != null)
                {
                    response.Message = string.Format("La operacion {0} ya ha sido agregada previamente.", operation.OperationName);
                    return(response);
                }


                //AddOperation

                operationDA.AddOperation(operation, userFinded);
                operationDA.Dispose();
                response.Result = true;
                //LogActivity
                var log = new Log
                {
                    Application = applicationFinded
                    ,
                    EventTypeId = LogTypeEnum.Notification
                    ,
                    EventUser = registerUser
                    ,
                    LogDescription =
                        string.Format("Se agregó la operación {0} a la aplicación {1}.", operation.OperationName,
                                      applicationFinded.ApplicationName)
                };
                var loglogic  = new LogLogic(_configuration);
                var resultLog = loglogic.InsertLogEvent(log);
                loglogic.Dispose();
                response.Message = string.Format(resultLog.Result ? "Se agregó la operación {0} a la aplicación {1}." : "Se agregó la operación {0} a la aplicación {1}. Pero no se pudo registrar el movimiento en bitácora.", operation.OperationName, applicationFinded.ApplicationName);
            }
            catch (Exception err)
            {
                response.Message = string.Format("Ocurrio un error. {0}", err.Message);
            }
            return(response);
        }
        public Response UpdateRoleOperations(ApplicationPMX application, Role role, List <Operation> operationList, User registerUser, int tipoApp)
        {
            var response = new Response {
                Message = "Sin inicializar", Result = false
            };

            try
            {
                //aplicationValidation
                var applicationLogic = new ApplicationLogic(_configuration);
                var applicationList  = applicationLogic.GetApplicationList();
                applicationLogic.Dispose();
                var applicationFinded = applicationList.Find(app => app.ApplicationName == application.ApplicationName);
                if (applicationFinded == null)
                {
                    response.Message = string.Format("La aplicación {0} especificada no existe en el esquema de seguridad", application.ApplicationName);
                    return(response);
                }


                //User validation
                var userLogic  = new UserLogic(_configuration);
                var userFinded = userLogic.FindUser(registerUser.UserId);
                userLogic.Dispose();
                if (userFinded == null)
                {
                    response.Message = string.Format(
                        "El usuario {0} de registro no se encontró en el esquema de seguridad", registerUser.UserId);
                    return(response);
                }

                //Validate Role for application
                var userApplicationRole = new UsersApplicationsRoles
                {
                    ApplicationId = applicationFinded.ApplicationId
                };
                var roleDa   = new RoleDA(_configuration);
                var roleList = roleDa.GetRoleforApplication(userApplicationRole, tipoApp);
                roleDa.Dispose();

                var roleFinded = roleList.Find(rol => rol.RoleName == role.RoleName);
                if (roleFinded == null)
                {
                    response.Message =
                        string.Format("El rol  {0} especificado no existe en el esquema de seguridad para la aplicación {1}.", role.RoleName, application.ApplicationName);
                    return(response);
                }

                //Validate existing operations in applications and add operationProperties
                var operationDa         = new OperationDA(_configuration);
                var appOperations       = operationDa.GetOperationsList(applicationFinded);
                var operationsToAddList = new List <Operation>();
                foreach (var operation in operationList)
                {
                    var opfinded = appOperations.Find(op => op.OperationName == operation.OperationName);
                    if (opfinded == null)
                    {
                        response.Message = string.Format("La operación {0} especificada no existe en el esquema de seguridad para la aplicación {1}.", operation.OperationName, application.ApplicationName);
                        return(response);
                    }
                    operationsToAddList.Add(opfinded);
                }
                //Delete all operations for role
                var currentOperations = operationDa.GetRoleOperations(roleFinded);
                operationDa.Dispose();

                foreach (var operationToDelete in from operationToDelete in currentOperations
                         let deleteResponse = DeleteOperationToRole(applicationFinded, operationToDelete, roleFinded, userFinded)
                                              where !deleteResponse.Result select operationToDelete)
                {
                    response.Message =
                        string.Format("No se pudo actualizar la operación {0} en el esquema de seguridad.",
                                      operationToDelete.OperationName);
                    return(response);
                }
                //Add all operations for role

                foreach (var operationToAdd in from operationToAdd in operationsToAddList
                         let addResponse = AddOperationToRole(applicationFinded, operationToAdd, roleFinded, userFinded)
                                           where !addResponse.Result select operationToAdd)
                {
                    response.Message =
                        string.Format("No se pudo actualizar la operación {0} en el esquema de seguridad.",
                                      operationToAdd.OperationName);
                    return(response);
                }

                //LogActivity
                var log = new Log
                {
                    Application = applicationFinded
                    ,
                    EventTypeId = LogTypeEnum.Notification
                    ,
                    EventUser = registerUser
                    ,
                    LogDescription =
                        string.Format("Se actualizaron las operaciones del rol {0} de la aplicación {1}.", roleFinded.RoleName,
                                      applicationFinded.ApplicationName)
                };
                var loglogic  = new LogLogic(_configuration);
                var resultLog = loglogic.InsertLogEvent(log);
                loglogic.Dispose();
                response.Message = string.Format(resultLog.Result ? "Se actualizaron las operaciones del rol {0} de la aplicación {1}." : "Se actualizaron las operaciones del rol {0} de la aplicación {1}. Pero no se pudo registrar el movimiento en bitácora.", roleFinded.RoleName, applicationFinded.ApplicationName);

                response.Result = true;
            }
            catch (Exception)
            {
                response.Message =
                    string.Format("Ocurrio un error al actualizar las operaciones del rol {0} de la aplicación {1}.",
                                  application.ApplicationName, registerUser);
            }
            return(response);
        }
        public Response AddNewRoleOperation(RoleOperations roleOperations, User registerUser)
        {
            var response = new Response {
                Message = "Sin inicializar", Result = false
            };

            try
            {
                #region logRegister
                var log = new Log
                {
                    Application = new ApplicationPMX
                    {
                        ApplicationName = _applicationName
                    },
                    EventUser   = registerUser,
                    EventTypeId = LogTypeEnum.Notification,

                    /*LogDescription = string.Format("Se ha agregado la operacion {0} al rol {1}.", roleOperations.OperationId, roleOperations.RoleId)*/
                    LogDescription = string.Format("Agregó la operacion Id {0} al rol Id {1} Fecha vigencia: {2}", roleOperations.OperationId, roleOperations.RoleId, roleOperations.DeclineDate)
                };
                #endregion

                #region AddUserDataValidation
                if (roleOperations.RoleId <= 0)
                {
                    response.Message = "El campo role no puede estar vacío";
                    return(response);
                }

                if (roleOperations.OperationId <= 0)
                {
                    response.Message = "El campo Operación no puede estar vacío";
                    return(response);
                }

                if (registerUser == null)
                {
                    response.Message = "No se ha especificado el usuario con permisos para registrar";
                    return(response);
                }


                //Se valida que no exista la prohibición de combinacion de operaciones
                var operationlogic = new OperationLogic(_configuration);
                var role           = new Role {
                    RoleId = roleOperations.RoleId
                };
                Operation      operationB       = operationlogic.GetOperationById(roleOperations.OperationId);
                var            applicationLogic = new ApplicationLogic(_configuration);
                ApplicationPMX application      = applicationLogic.GetApplication(operationB.ApplicationId);
                applicationLogic.Dispose();
                /*Aqui hay que hacer algo*/

                List <Operation> operations = operationlogic.GetOperationRole(role);

                foreach (var operationA in operations)
                {
                    var resultExist = operationlogic.OperationsNotAllowedCombinationExistAndDate(application, operationA, operationB);

                    if (resultExist.Result)
                    {
                        response.Message =
                            "No se puede agregar operación al rol, ya que no está permitida en la combinación de operaciones";
                        return(response);
                    }
                }
                operationlogic.Dispose();


                #endregion
                var loglogic    = new LogLogic(_configuration);
                var responseLog = loglogic.InsertLogEvent(log);
                loglogic.Dispose();


                if (!responseLog.Result)
                {
                    response.Message = string.Format("No se puede insertar en bitácorá el movimiento. {0}", responseLog.Message);
                    return(response);
                }

                //Validamos que no este asignada la operación al role
                var roleLogic    = new RoleLogic(_configuration);
                var lstOperacion = roleLogic.GetRoleOperation(roleOperations.RoleId);
                roleLogic.Dispose();
                var iRes = 0;

                if (lstOperacion.Any(operation => operation.OperationId.Equals(roleOperations.OperationId)))
                {
                    iRes = 1;
                }

                if (iRes <= 0)
                {
                    var roleOperationDa = new RoleOperationDA(_configuration);
                    roleOperationDa.AddNewRoleOperation(roleOperations, registerUser);
                    roleOperationDa.Dispose();
                    response.Message = "Se asocio correctamente la operación {0} al rol {1}";
                    response.Result  = true;
                }
                else
                {
                    response.Message = "La operación ya esta asignada a ese rol, favor de verificar.";
                }
            }
            catch (Exception err)
            {
                if (err.Message.Substring(0, 35) == "Violation of PRIMARY KEY constraint")
                {
                    var log = new Log
                    {
                        EventUser      = registerUser,
                        EventTypeId    = LogTypeEnum.Notification,
                        LogDescription = string.Format("Se intentó asignar la operación al role  {0} en el esquema de seguridad, pero ya existe previamente", roleOperations.RoleId),
                        Application    = new ApplicationPMX
                        {
                            ApplicationName =
                                _applicationName
                        }
                    };
                    var loglogic = new LogLogic(_configuration);
                    loglogic.InsertLogEvent(log);
                    loglogic.Dispose();
                    response.Message = "El rol ha sido registrado previamente";
                    return(response);
                }
                response.Message = string.Format("Ocurrio un error al intentar asignar el rol. {0} {1}", err.Message, DateTime.Now.ToString(CultureInfo.InvariantCulture));
                return(response);
            }
            return(response);
        }
        public Response AddNewOperation(Operation operation, User registerUser)
        {
            var response = new Response {
                Message = "Sin inicializar", Result = false
            };
            var operationDA = new OperationDA(_configuration);

            try
            {
                #region AddOperationDataValidation
                if (operation.ApplicationId == 0)
                {
                    response.Message = "El IdAplicacion  no puede estar vacío";
                    return(response);
                }

                if (string.IsNullOrEmpty(operation.OperationName))
                {
                    response.Message = "El campo nombre no puede estar vacío";
                    return(response);
                }

                if (string.IsNullOrEmpty(operation.OperationDescription))
                {
                    response.Message = "El campo Descripción no puede estar vacío";
                    return(response);
                }

                if (registerUser == null)
                {
                    response.Message = "No se ha especificado el usuario con permisos para registrar";
                    return(response);
                }
                #endregion



                //Validamos Operation
                var objOperations = operationDA.GetDataByOperationName(operation);

                if (objOperations != null)
                {
                    response.Message = "El nombre de la operación ya existe, favor de verificarlo.";
                    return(response);
                }

                operationDA.AddOperation(operation, registerUser);
                #region logRegister
                var log = new Log
                {
                    Application = new ApplicationPMX
                    {
                        ApplicationName = _applicationName
                    },
                    EventUser      = registerUser,
                    EventTypeId    = LogTypeEnum.Notification,
                    LogDescription = string.Format("Agregó la operación {0}-{1} al esquema de seguridad. Descripción: {2} Fecha declinacion {3}  ", operation.OperationId, operation.OperationName, operation.OperationDescription, operation.DeclineDate)
                };

                #endregion

                var loglogic = new LogLogic(_configuration);
                loglogic.InsertLogEvent(log);
                loglogic.Dispose();


                response.Message = string.Format("Se registró correctamente la operación {0} ", operation.OperationName);

                response.Result = true;
            }
            catch (Exception err)
            {
                if (err.Message.Substring(0, 35) == "Violation of PRIMARY KEY constraint")
                {
                    var log = new Log
                    {
                        EventUser      = registerUser,
                        EventTypeId    = LogTypeEnum.Notification,
                        LogDescription = string.Format("Se intentó agregar la operación {0} al esquema de seguridad, pero ya existe previamente", operation.OperationName),
                        Application    = new ApplicationPMX
                        {
                            ApplicationName = _applicationName
                        }
                    };
                    var loglogic = new LogLogic(_configuration);
                    loglogic.InsertLogEvent(log);
                    loglogic.Dispose();
                    response.Message = "La operación ha sido registrada previamente";
                    return(response);
                }
                response.Message = string.Format("Ocurrio un error al intentar agregar la Operación. {0} {1}", err.Message, DateTime.Now.ToString(CultureInfo.InvariantCulture));
            }
            operationDA.Dispose();
            return(response);
        }
Пример #13
0
        public Response AddNewRole(Role role, User registerUser, int tipo)
        {
            var response = new Response {
                Message = "Sin inicializar", Result = false
            };
            var userDa = new UserDA(_configuration);
            var roleDa = new RoleDA(_configuration);

            try
            {
                #region AddUserDataValidation
                if (role.ApplicationId < 0)
                {
                    response.Message = "El IdAplicación no puede estar vacío";
                    return(response);
                }

                if (string.IsNullOrEmpty(role.RoleName))
                {
                    response.Message = "El campo Nombre no puede estar vacío";
                    return(response);
                }

                if (string.IsNullOrEmpty(role.RoleDescription))
                {
                    response.Message = "El campo descripción no puede estar vacío";
                    return(response);
                }

                if (string.IsNullOrEmpty(role.RoleAuthorizationUserId))
                {
                    response.Message = "El campo autorizador no puede estar vacío";
                    return(response);
                }

                if (string.IsNullOrEmpty(role.RoleAuthorizationOwner))
                {
                    response.Message = "El campo cargo no puede estar vacío";
                    return(response);
                }

                if (registerUser == null)
                {
                    response.Message = "No se ha especificado el usuario con permisos para registrar";
                    return(response);
                }

                var objUser = userDa.FindUser(role.RoleAuthorizationUserId);
                if (objUser == null)
                {
                    response.Message = "La clave del autorizador no es válida o no existe, favor de validar.";
                    return(response);
                }
                #endregion



                //Valida Existencia Role
                var application = new UsersApplicationsRoles
                {
                    ApplicationId = role.ApplicationId,
                    UserId        = registerUser.UserId
                };

                var lstrole = roleDa.GetRoleforApplication(application, tipo);
                var iRes    = 0;

                if (lstrole.Any(roles => roles.RoleName.Equals(role.RoleName)))
                {
                    iRes = 1;
                }

                if (iRes <= 0)
                {
                    roleDa.AddRole(role, registerUser);
                    #region logRegister
                    var log = new Log
                    {
                        Application = new ApplicationPMX
                        {
                            ApplicationName = _applicationName
                        },
                        EventUser      = registerUser,
                        EventTypeId    = LogTypeEnum.Notification,
                        LogDescription = string.Format("Agregó el rol {0}-{1}  a la aplicación id {2}. Vigencia: {3} Autorizador rol: {4} Cargo autorizador:{5} Descripción: {6}",
                                                       role.RoleId, role.RoleName, role.ApplicationId, role.DeclineDate, role.RoleAuthorizationUserId, role.RoleAuthorizationOwner, role.RoleDescription)
                    };



                    #endregion
                    var loglogic = new LogLogic(_configuration);
                    loglogic.InsertLogEvent(log);
                    loglogic.Dispose();
                    response.Message = "Se registró correctamente el rol {0} para la Aplicación {1}";
                    response.Result  = true;
                }
                else
                {
                    response.Message = "Ya esta asignado el rol a la aplicación, favor de verificar.";
                    response.Result  = false;
                }
            }
            catch (Exception err)
            {
                if (err.Message.Substring(0, 35) == "Violation of PRIMARY KEY constraint")
                {
                    var log = new Log
                    {
                        EventUser      = registerUser,
                        EventTypeId    = LogTypeEnum.Notification,
                        LogDescription = string.Format("Se intentó agregar el rol {0} al esquema de seguridad, pero ya existe previamente", role.RoleId),
                        Application    = new ApplicationPMX
                        {
                            ApplicationName = _applicationName
                        }
                    };
                    var loglogic = new LogLogic(_configuration);
                    loglogic.InsertLogEvent(log);
                    loglogic.Dispose();

                    response.Message = "El rol ha sido registrado previamente";
                    return(response);
                }
                response.Message = string.Format("Ocurrio un error al intentar agregar el rol. {0} {1}", err.Message, DateTime.Now.ToString(CultureInfo.InvariantCulture));
                return(response);
            }
            userDa.Dispose();
            roleDa.Dispose();

            return(response);
        }
Пример #14
0
        public Response AddNewUser(EntityLibrary.User user, EntityLibrary.User registerUser)
        {
            var response = new Response {
                Message = "Sin inicializar", Result = false
            };

            try
            {
                #region AddUserDataValidation
                if (string.IsNullOrEmpty(user.UserId))
                {
                    response.Message = "El usuario no puede estar vacío";
                    return(response);
                }

                if (string.IsNullOrEmpty(user.EmployeeNumber))
                {
                    response.Message = "El campo ficha no puede estar vacío";
                    return(response);
                }

                /* 06/10/2015 Se deshabilita validación debido a que las cuentas de servicio no son necesariamente numéricas */

                /*
                 * int employeenumber;
                 * var isNum = Int32.TryParse(user.EmployeeNumber, out employeenumber);
                 * if(!isNum)
                 * {
                 *
                 *  response.Message = "El campo ficha solo acepta valores numericos";
                 *  return response;
                 *
                 * }
                 */

                if (string.IsNullOrEmpty(user.EmployeeNames))
                {
                    response.Message = "El campo nombre no puede estar vacío";
                    return(response);
                }

                if (string.IsNullOrEmpty(user.EmployeeLastName))
                {
                    response.Message = "El campo apellido paterno no puede estar vacío";
                    return(response);
                }



                if (string.IsNullOrEmpty(user.EmployeeEmail))
                {
                    response.Message = "El campo correo electronico no puede estar vacío";
                    return(response);
                }
                if (string.IsNullOrEmpty(user.Telephone))
                {
                    response.Message = "El campo telefono no puede estar vacío";
                    return(response);
                }

                if (Convert.ToDateTime(user.ValidityStartDate).Year != DateTime.Now.Year)
                {
                    response.Message = "El año de inicio de vigencia no puede ser distinto al actual. ";
                    return(response);
                }

                if (registerUser == null)
                {
                    response.Message = "No se ha especificado el usuario con permisos para registrar";
                    return(response);
                }
                #endregion

                var userDa = new UserDA(_configuration);
                userDa.AddUser(user, registerUser);
                userDa.Dispose();

                #region logRegister

                var log = new Log
                {
                    Application = new ApplicationPMX
                    {
                        ApplicationName = _applicationName
                    },
                    EventUser      = registerUser,
                    EventTypeId    = LogTypeEnum.Notification,
                    LogDescription = string.Format("Agregó la cuenta {0} asignado a F-{1} - {2}, vigente a partir de {3} Vigente hasta {4} vigente en SIO hasta {5}. Observaciones: {6} ",
                                                   user.UserId, user.EmployeeNumber, user.EmployeeNames + " " + user.EmployeeLastName, user.ValidityStartDate, user.DeclineDate, user.DeclineDateSIO, user.Observations)
                };

                #endregion
                var loglogic = new LogLogic(_configuration);
                loglogic.InsertLogEvent(log);
                loglogic.Dispose();


                response.Message = "Se registró correctamente el usuario para uso de aplicaciones.";
                response.Result  = true;
            }
            catch (Exception err)
            {
                if (err.Message.Substring(0, 35) == "Violation of PRIMARY KEY constraint")
                {
                    var log = new Log
                    {
                        EventUser      = user,
                        EventTypeId    = LogTypeEnum.Notification,
                        LogDescription = string.Format("Se intentó agregar al usuario {0} al esquema de seguridad, pero ya existe previamente", user.UserId),
                        Application    = new ApplicationPMX
                        {
                            ApplicationName =
                                _applicationName
                        }
                    };
                    var loglogic = new LogLogic(_configuration);
                    loglogic.InsertLogEvent(log);
                    loglogic.Dispose();
                    response.Message = "La cuenta que ha intentado agregar ha sido registrada previamente.";
                    return(response);
                }
                response.Message = string.Format("Ocurrio un error al intentar agregar el usuario. {0} {1}", err.Message, DateTime.Now.ToString(CultureInfo.InvariantCulture));
                return(response);
            }
            return(response);
        }
        public Response DelApplicationAdministration(ApplicationPMX application, User user)
        {
            var response = new Response {
                Message = "Sin inicializar.", Result = false
            };
            var applicationDa = new ApplicationDA(_configuration);

            try
            {
                if (application == null)
                {
                    response.Message = "El objeto application no puede ser nulo";
                    return(response);
                }
                if (user == null)
                {
                    response.Message = "El objeto user no puede ser nulo";
                    return(response);
                }

                var log = new Log
                {
                    Application = new ApplicationPMX {
                        ApplicationName = _applicationName
                    },
                    EventUser      = user,
                    EventTypeId    = LogTypeEnum.Notification,
                    LogDescription = string.Format("Removió la cuenta {0} de la configuración que permite ejercer sus permisos de SeguridadApp en la aplicación {1}.", user.UserId, application.ApplicationName)
                };
                var loglogic = new LogLogic(_configuration);
                loglogic.InsertLogEvent(log);
                loglogic.Dispose();


                applicationDa.DelApplicationAdministration(application, user);
                response.Message =
                    string.Format(
                        "Se ha eliminado la cuenta del usuario {0} que permite ejercer sus permisos de SeguridadApp en la aplicación {1}.",
                        user.UserId, application.ApplicationName);
                response.Result = true;
            }
            catch (Exception err)
            {
                var log = new Log
                {
                    EventUser      = user,
                    EventTypeId    = LogTypeEnum.Notification,
                    LogDescription = string.Format("Se intentó eliminar la cuenta del usuario {0} para la aplicacion {1} , pero ocurrio un error. {2}", user.UserId, application.ApplicationName, err.Message),
                    Application    = new ApplicationPMX
                    {
                        ApplicationName =
                            _applicationName
                    }
                };
                var loglogic    = new LogLogic(_configuration);
                var responseLog = loglogic.InsertLogEvent(log);
                loglogic.Dispose();

                response.Message = string.Format("Ocurrio un error al intentar eliminar la cuenta del usuario {0} para la aplicacion. {1} {2}", user.UserId, responseLog.Message, DateTime.Now.ToString(CultureInfo.InvariantCulture));
                response.Result  = false;
            }
            applicationDa.Dispose();
            return(response);
        }
        public Response DelUsersApplicationsRoles(UsersApplicationsRoles usersApplicationsRoles, User registerUser)
        {
            var response = new Response {
                Message = "Sin inicializar", Result = false
            };

            try
            {
                #region AddUserDataValidation
                if (string.IsNullOrEmpty(usersApplicationsRoles.UserId))
                {
                    response.Message = "El usuario no puede estar vacío";
                    return(response);
                }

                if (string.IsNullOrEmpty(usersApplicationsRoles.ApplicationId.ToString()))
                {
                    response.Message = "El campo IdAplicacion no puede estar vacío";
                    return(response);
                }

                if (string.IsNullOrEmpty(usersApplicationsRoles.RoleId.ToString()))
                {
                    response.Message = "El campo IdRole no puede estar vacío";
                    return(response);
                }

                if (string.IsNullOrEmpty(usersApplicationsRoles.DeclineDate.ToString()))
                {
                    response.Message = "El campo declinedate no puede estar vacío";
                    return(response);
                }

                if (registerUser == null)
                {
                    response.Message = "No se ha especificado el usuario con permisos para registrar";
                    return(response);
                }
                #endregion


                var usersApplicationsRoleDa = new  UsersApplicationsRoleDA(_configuration);
                usersApplicationsRoleDa.DeleteUsersApplicationsRoles(usersApplicationsRoles, registerUser);
                usersApplicationsRoleDa.Dispose();
                #region logRegister

                var log = new Log
                {
                    Application = new ApplicationPMX
                    {
                        ApplicationName = _applicationName
                    },
                    EventUser      = registerUser,
                    EventTypeId    = LogTypeEnum.Notification,
                    LogDescription = string.Format("Declinó el rol {0} de la aplicación {1} al usuario {2}. Fecha declinación {3} ",
                                                   usersApplicationsRoles.RoleName, usersApplicationsRoles.ApplicationName, usersApplicationsRoles.UserId, usersApplicationsRoles.DeclineDate)
                };
                #endregion
                var loglogic = new LogLogic(_configuration);
                loglogic.InsertLogEvent(log);
                loglogic.Dispose();


                response.Message = "Se declinó correctamente el usuario para uso de aplicaciones.";
                response.Result  = true;
            }
            catch (Exception err)
            {
                if (err.Message.Substring(0, 35) == "Violation of PRIMARY KEY constraint")
                {
                    var log = new Log
                    {
                        EventUser      = registerUser,
                        EventTypeId    = LogTypeEnum.Notification,
                        LogDescription = string.Format("Se intentó declinar al usuario {0} al esquema de seguridad, pero ya existe previamente", usersApplicationsRoles.UserId),
                        Application    = new ApplicationPMX
                        {
                            ApplicationName =
                                _applicationName
                        }
                    };
                    var loglogic = new LogLogic(_configuration);
                    loglogic.InsertLogEvent(log);
                    loglogic.Dispose();
                    response.Message = "El usuario ha sido declinado previamente";
                    return(response);
                }
                response.Message = string.Format("Ocurrio un error al intentar agregar el usuario. {0} {1}", err.Message, DateTime.Now.ToString(CultureInfo.InvariantCulture));
                return(response);
            }
            return(response);
        }
        /// <summary>
        /// Adds application object to application Database
        /// </summary>
        /// <param name="application">Values required ApplicationName,ApplicationDescription, FunctionalUserId, TecnicalUserId,ValidityStartDate</param>
        /// <param name="registerUser">Values required UserId</param>
        /// <returns></returns>
        public Response AddApplication(ApplicationPMX application, User registerUser, object [] args, List <string> cuentasUsuarios)
        {
            var response = new Response {
                Message = "Sin inicializar.", Result = false
            };
            var applicartionDa = new ApplicationDA(_configuration);

            try
            {
                if (application == null)
                {
                    response.Message = "El objeto application no puede ser nulo";
                    return(response);
                }
                if (registerUser == null)
                {
                    response.Message = "El objeto registerUser no puede ser nulo";
                    return(response);
                }
                if (string.IsNullOrEmpty(application.ApplicationName))
                {
                    response.Message = "Debe de proporcionar un nombre a la aplicación.";
                    return(response);
                }

                if (string.IsNullOrEmpty(application.ApplicationDescription) || application.ApplicationDescription.Length < 1)
                {
                    response.Message = "El nombre de la aplicación no puede estar vacía.";
                    return(response);
                }

                var applications = GetApplicationList();
                var appFinded    = applications.Find(app => app.ApplicationName == application.ApplicationName);
                if (appFinded != null)
                {
                    response.Message = "El nombre de la aplicación ya existe registrada en SeguridadApp";
                    return(response);
                }

                //Application paswordHashed
                if (string.IsNullOrEmpty(application.ApplicationPassword) || application.ApplicationPassword.Length < 8)
                {
                    response.Message = "Debe de especificar un password para la aplicación. Longitud mínima 8 caracteres.";
                    return(response);
                }

                /*Mantenimiento pendiente de criptografia de passwords de applicacion*/
                //We use EnterpriseLibrary 5.0 to generate a hashed password and store in db.
                //application.ApplicationPassword = Cryptographer.CreateHash("SecurityAlgorithim", application.ApplicationPassword);
                /*Fin Mantenimieto*/



                if (Convert.ToDateTime(application.ValidityStartDate).Year != DateTime.Now.Year)
                {
                    response.Message = "El año de vigencia de la aplicación no puede ser distinto al año actual";
                    return(response);
                }
                if (string.IsNullOrEmpty(application.Observations))
                {
                    application.Observations = " ";
                }

                if (Convert.ToDateTime(application.ValidityStartDate) > Convert.ToDateTime(application.DeclineDate))
                {
                    response.Message = "La fecha Vigencia final no puede ser menor a la fecha de inicio";
                    return(response);
                }

                //Tecnical user finded
                if (string.IsNullOrEmpty(application.TecnicalUserId))
                {
                    response.Message = "La cuenta del usuario no ha sido registrada previamente.";
                    return(response);
                }
                var userLogic          = new UserLogic(_configuration);
                var userTecnicalFinded = userLogic.FindUser(application.TecnicalUserId);
                userLogic.Dispose();
                if (userTecnicalFinded == null)
                {
                    response.Message = "La cuenta de usuario especificado no ha sido registrado previamente.";
                    return(response);
                }

                //Functional user finded
                if (string.IsNullOrEmpty(application.FunctionalUserId))
                {
                    response.Message = "Es necesario especificar una cuenta de usuario que exista previamente registrada.";
                    return(response);
                }

                var userFunctionalFinded = userLogic.FindUser(application.FunctionalUserId);
                userLogic.Dispose();
                if (userFunctionalFinded == null)
                {
                    response.Message = "La cuenta del usuario especificado no ha sido registrado previamente.";
                    return(response);
                }


                //Log user
                var userFinded = userLogic.FindUser(registerUser.UserId);

                if (userFinded == null)
                {
                    response.Message = "la cuenta de usuario para registrar la aplicación no es válido.";
                    return(response);
                }
                application.CreationUserId     = registerUser.UserId;
                application.ModificationUserId = registerUser.UserId;



                applicartionDa.AddApplication(application, registerUser);
                var log = new Log
                {
                    Application = new ApplicationPMX {
                        ApplicationName = _applicationName
                    },
                    EventUser      = registerUser,
                    EventTypeId    = LogTypeEnum.Notification,
                    LogDescription = string.Format("Agregó la aplicación {0}-{1} en SeguridadApp. Descripción: {2} Vigente: {3} Vigente hasta: {4} responsable funcional {5} , Observaciones {6} ", application.ApplicationId, application.ApplicationName, application.ApplicationDescription, application.ValidityStartDate, application.DeclineDate, application.FunctionalUserId, application.Observations)
                };

                var loglogic = new LogLogic(_configuration);
                loglogic.InsertLogEvent(log);
                loglogic.Dispose();

                foreach (object o in args)
                {
                    applicartionDa.AddApplicationAdministration(application, userFunctionalFinded, true, true, o.ToString());
                }


                if (cuentasUsuarios != null)
                {
                    foreach (string usuario in cuentasUsuarios)
                    {
                        string[] splitUsuario = usuario.Split(new Char[] { ' ' });


                        var logCuentasUsuarios = new Log
                        {
                            Application = new ApplicationPMX {
                                ApplicationName = _applicationName
                            },
                            EventUser      = registerUser,
                            EventTypeId    = LogTypeEnum.Notification,
                            LogDescription = string.Format("Agregó la cuenta " + splitUsuario[0] + " para ejercer sus permisos de SeguridadApp en la aplicación " + application.ApplicationId + "-" + application.ApplicationName)
                        };


                        loglogic.InsertLogEvent(logCuentasUsuarios);
                    }
                }

                loglogic.Dispose();
                response.Message = string.Format("Se agregó correctamente la nueva aplicación al esquema de seguridad. ");
                response.Result  = true;
            }
            catch (Exception err)
            {
                var log = new Log
                {
                    EventUser      = registerUser,
                    EventTypeId    = LogTypeEnum.Notification,
                    LogDescription = string.Format("Se intentó agregar la aplicación {0} en SeguridadApp, pero ocurrio un error. {1}", application.ApplicationName, err.Message),
                    Application    = new ApplicationPMX
                    {
                        ApplicationName =
                            _applicationName
                    }
                };
                var loglogic    = new LogLogic(_configuration);
                var responseLog = loglogic.InsertLogEvent(log);
                loglogic.Dispose();

                response.Message = string.Format("Ocurrio un error al intentar agregar una nueva aplicación. {0} {1}", responseLog.Message, DateTime.Now.ToString(CultureInfo.InvariantCulture));
                response.Result  = false;
            }
            applicartionDa.Dispose();

            return(response);
        }
        public Response DelApplication(ApplicationPMX application, User registerUser)
        {
            var response = new Response {
                Message = "Sin inicializar.", Result = false
            };
            var applicationDa = new ApplicationDA(_configuration);

            try
            {
                if (application == null)
                {
                    response.Message = "El objeto application no puede ser nulo";
                    return(response);
                }
                if (registerUser == null)
                {
                    response.Message = "El objeto registerUser no puede ser nulo";
                    return(response);
                }

                if (string.IsNullOrEmpty(application.DeclineDate))
                {
                    response.Message = "La fecha fin de vigencia no puede estar vacía.";
                    return(response);
                }

                //Log user
                var userLogic  = new UserLogic(_configuration);
                var userFinded = userLogic.FindUser(registerUser.UserId);
                userLogic.Dispose();

                if (userFinded == null)
                {
                    response.Message = "Usuario no válido para declinar la aplicación.";
                    return(response);
                }
                application.CreationUserId     = registerUser.UserId;
                application.ModificationUserId = registerUser.UserId;

                var log = new Log
                {
                    Application = new ApplicationPMX {
                        ApplicationName = _applicationName
                    },
                    EventUser      = registerUser,
                    EventTypeId    = LogTypeEnum.Notification,
                    LogDescription = string.Format("Declinó la aplicacion {0}-{1} de SeguridadApp. Fecha declinación {2}  ", application.ApplicationId, application.ApplicationName, application.DeclineDate)
                };
                var loglogic = new LogLogic(_configuration);
                loglogic.InsertLogEvent(log);
                loglogic.Dispose();


                applicationDa.DelApplication(application, registerUser);
                response.Message = string.Format("Se declino correctamente la aplicación de SeguridadApp. ");
                response.Result  = true;
            }
            catch (Exception err)
            {
                var log = new Log
                {
                    EventUser      = registerUser,
                    EventTypeId    = LogTypeEnum.Notification,
                    LogDescription = string.Format("Se intentó declinar la aplicacion {0} en SeguridadApp, pero ocurrio un error. {1}", application.ApplicationName, err.Message),
                    Application    = new ApplicationPMX
                    {
                        ApplicationName =
                            _applicationName
                    }
                };
                var loglogic    = new LogLogic(_configuration);
                var responseLog = loglogic.InsertLogEvent(log);
                loglogic.Dispose();

                response.Message = string.Format("Ocurrio un error al intentar declinar una aplicacion. {0} {1}", responseLog.Message, DateTime.Now.ToString(CultureInfo.InvariantCulture));
                response.Result  = false;
            }
            applicationDa.Dispose();
            return(response);
        }
        public Response UpdApplication(ApplicationPMX application, string strpwd, User registerUser, bool canAdminAppRolesAndOperations, bool canAdminUsers, object[] args)
        {
            var response = new Response {
                Message = "Sin inicializar.", Result = false
            };

            var applicationDa = new ApplicationDA(_configuration);

            try
            {
                if (application == null)
                {
                    response.Message = "El objeto application no puede ser nulo";
                    return(response);
                }
                if (registerUser == null)
                {
                    response.Message = "El objeto registerUser no puede ser nulo";
                    return(response);
                }
                if (string.IsNullOrEmpty(application.ApplicationName))
                {
                    response.Message = "Debe de proporcionar un nombre a la aplicación.";
                    return(response);
                }

                if (string.IsNullOrEmpty(application.ApplicationDescription) || application.ApplicationDescription.Length < 1)
                {
                    response.Message = "El nombre de la aplicación no puede estar vacía.";
                    return(response);
                }

                //Application paswordHashed
                if (string.IsNullOrEmpty(application.ApplicationPassword) || application.ApplicationPassword.Length < 8)
                {
                    response.Message = "Debe de especificar un password para la aplicación. Longitud mínima 8 caracteres.";
                    return(response);
                }

                /*Mantenimiento pendiente de criptografia de passwords de applicacion*/
                //We use EnterpriseLibrary 5.0 to generate a hashed password and store in db.
                //if (!strpwd.Trim().Equals(application.ApplicationPassword.Trim()))
                //{
                //    application.ApplicationPassword = Cryptographer.CreateHash("SecurityAlgorithim", application.ApplicationPassword);
                //}


                if (string.IsNullOrEmpty(application.Observations))
                {
                    application.Observations = " ";
                }

                //Tecnical user finded
                if (string.IsNullOrEmpty(application.TecnicalUserId))
                {
                    response.Message = "Es necesario especificar un usuario técnico registrado previamente.";
                    return(response);
                }
                var userLogic          = new UserLogic(_configuration);
                var userTecnicalFinded = userLogic.FindUser(application.TecnicalUserId);
                userLogic.Dispose();
                if (userTecnicalFinded == null)
                {
                    response.Message = "El usuario técnico especificado no ha sido registrado previamente.";
                    return(response);
                }

                //Log user
                var userFinded = userLogic.FindUser(registerUser.UserId);

                if (userFinded == null)
                {
                    response.Message = "El usuario para registrar la aplicación no es válido.";
                    return(response);
                }
                application.CreationUserId     = registerUser.UserId;
                application.ModificationUserId = registerUser.UserId;

                foreach (object o in args)
                {
                    applicationDa.UpdApplication(application, registerUser);
                    applicationDa.UpdApplicationAdministration(application, canAdminAppRolesAndOperations,
                                                               canAdminUsers, o.ToString());
                    response.Message =
                        string.Format("Se Actualizó correctamente la nueva aplicación en SeguridadApp. ");
                    response.Result = true;
                }
                var log = new Log
                {
                    Application = new ApplicationPMX {
                        ApplicationName = _applicationName
                    },
                    EventUser      = registerUser,
                    EventTypeId    = LogTypeEnum.Notification,
                    LogDescription = string.Format("Actualizó la aplicación {0}-{1} en SeguridadApp. Descripción: {2} Vigente {3} Vigente hasta {4} responsable funcional {5} , Observaciones {6} ", application.ApplicationId, application.ApplicationName, application.ApplicationDescription, application.ValidityStartDate, application.DeclineDate, application.FunctionalUserId, application.Observations)
                };
                var loglogic = new LogLogic(_configuration);
                loglogic.InsertLogEvent(log);
                loglogic.Dispose();
            }
            catch (Exception err)
            {
                var log = new Log
                {
                    EventUser      = registerUser,
                    EventTypeId    = LogTypeEnum.Notification,
                    LogDescription = string.Format("Se intentó agregar la aplicacion {0} a SeguridadApp, pero ocurrio un error. {1}", application.ApplicationName, err.Message),
                    Application    = new ApplicationPMX
                    {
                        ApplicationName =
                            _applicationName
                    }
                };
                var loglogic    = new LogLogic(_configuration);
                var responseLog = loglogic.InsertLogEvent(log);
                loglogic.Dispose();

                response.Message = string.Format("Ocurrió un error al intentar agregar una nueva aplicación. {0} {1}", responseLog.Message, DateTime.Now.ToString(CultureInfo.InvariantCulture));
                response.Result  = false;
            }
            applicationDa.Dispose();
            return(response);
        }
Пример #20
0
        /// <summary>
        /// Returns a true or false response when trying to insert a log activitie.
        /// </summary>
        /// <param name="log">Log</param>
        /// <param name="applicationPassword">string</param>
        /// <returns></returns>
        public Response InsertLog(Log log, string applicationPassword)
        {
            var response = new Response {
                Message = "Sin inicilizar", Result = false
            };

            if (log.Application == null)
            {
                response.Message = "El objeto application no puede ser nulo para registro de bitacora.";
                return(response);
            }

            if (string.IsNullOrEmpty(log.Application.ApplicationName))
            {
                response.Message = "El nombre de la aplicacion no puede ser vacío para registro de bitácora.";
                return(response);
            }

            if (string.IsNullOrEmpty(log.LogDescription))
            {
                response.Message = "La descripcion del mensaje de bitácora no puede ser nulo o vacio";
                return(response);
            }

            try
            {
                //1.-GetApplication Id
                var applicationLogic  = new ApplicationLogic(_configuration);
                var applicationDbList = applicationLogic.GetApplicationList();
                applicationLogic.Dispose();
                var appFinded = applicationDbList.Find(app => app.ApplicationName == log.Application.ApplicationName);
                if (appFinded == null)
                {
                    response.Message = string.Format("La aplicación  {0} especificada no está registrada en esquema de seguridad. {1}", log.Application.ApplicationName, DateTime.Now.ToString());
                    return(response);
                }

                /*Mantenimiento pendiente de criptografia de passwords de applicacion*/
                //var applicationPasswordResult = Cryptographer.CompareHash("SecurityAlgorithim", applicationPassword, appFinded.ApplicationPassword);
                //if (!applicationPasswordResult)
                //{
                //    response.Message = string.Format("La contraseña de aplicación especificada no es válida. {0}", DateTime.Now.ToString());
                //    return response;
                //}
            }
            catch (Exception err)
            {
                response.Message =
                    string.Format(
                        "Ocurrió un error al validar la aplicación para inserción de registro en bitácora. Err. {0}",
                        err.Message);
                return(response);
            }

            try
            {
                var loglogic  = new LogLogic(_configuration);
                var resultLog = loglogic.InsertLogEvent(log);
                loglogic.Dispose();
                response = resultLog;
            }
            catch (Exception err)
            {
                response.Message =
                    string.Format(
                        "Ocurrió un error al intentar insertar en bitácora. Err. {0}",
                        err.Message);
                return(response);
            }
            return(response);
        }
        public Response DelOperation(Operation operation, User registerUser)
        {
            var response = new Response {
                Message = "Sin inicializar", Result = false
            };
            var operationDA = new OperationDA(_configuration);

            try
            {
                #region logRegister
                var log = new Log
                {
                    Application = new ApplicationPMX
                    {
                        ApplicationName = _applicationName
                    },
                    EventUser      = registerUser,
                    EventTypeId    = LogTypeEnum.Notification,
                    LogDescription = string.Format("Declinó la operación {0}-{1} al esquema de seguridad. Descripción: {2} Fecha declinacion {3}  ", operation.OperationId, operation.OperationName, operation.OperationDescription, operation.DeclineDate)
                };

                #endregion

                #region AddOperationDataValidation
                if (operation.ApplicationId == 0)
                {
                    response.Message = "El IdAplicacion  no puede estar vacío";
                    return(response);
                }

                if (registerUser == null)
                {
                    response.Message = "No se ha especificado el usuario con permisos para registrar";
                    return(response);
                }
                #endregion

                var loglogic    = new LogLogic(_configuration);
                var responseLog = loglogic.InsertLogEvent(log);
                loglogic.Dispose();
                if (!responseLog.Result)
                {
                    response.Message = string.Format("No se puede insertar en bitácorá el movimiento. {0}", responseLog.Message);
                    return(response);
                }

                operationDA.DelOperation(operation, registerUser);

                response.Message = "Se declinó correctamente la operación.";
                response.Result  = true;
            }
            catch (Exception err)
            {
                if (err.Message.Substring(0, 35) == "Violation of PRIMARY KEY constraint")
                {
                    var log = new Log
                    {
                        EventUser      = registerUser,
                        EventTypeId    = LogTypeEnum.Notification,
                        LogDescription = string.Format("Se intentó declinar la operación {0} al esquema de seguridad, pero ya existe previamente", operation.OperationName),
                        Application    = new ApplicationPMX
                        {
                            ApplicationName = _applicationName
                        }
                    };
                    var loglogic    = new LogLogic(_configuration);
                    var responseLog = loglogic.InsertLogEvent(log);
                    loglogic.Dispose();
                    response.Message = "La operación ha sido declinada previamente";
                    operationDA.Dispose();
                    return(response);
                }
                response.Message = string.Format("Ocurrio un error al intentar agregar la Operación. {0} {1}", err.Message, DateTime.Now.ToString(CultureInfo.InvariantCulture));
            }
            operationDA.Dispose();
            return(response);
        }
Пример #22
0
        public Response DelUser(User user, User registerUser)
        {
            var response = new Response {
                Message = "Sin inicializar", Result = false
            };

            try
            {
                #region AddUserDataValidation
                if (string.IsNullOrEmpty(user.UserId))
                {
                    response.Message = "El usuario no puede estar vacío";
                    return(response);
                }

                if (string.IsNullOrEmpty(user.EmployeeNumber))
                {
                    response.Message = "El campo ficha no puede estar vacío";
                    return(response);
                }

                //if (Convert.ToDateTime(user.DeclineDate).Year != DateTime.Now.Year)
                //{
                //    response.Message = "El año de inicio de vigencia no puede ser distinto al actual. ";
                //    return response;
                //}

                if (registerUser == null)
                {
                    response.Message = "No se ha especificado el usuario con permisos para registrar";
                    return(response);
                }
                #endregion
                var userDa = new UserDA(_configuration);
                userDa.DelUser(user, registerUser);
                userDa.Dispose();
                #region logRegister

                var log = new Log
                {
                    Application = new ApplicationPMX
                    {
                        ApplicationName =
                            _applicationName
                    },
                    EventUser      = registerUser,
                    EventTypeId    = LogTypeEnum.Notification,
                    LogDescription = string.Format("Declinó la cuenta {0} asignado a F-{1} - {2}, Vigente hasta {3} ",
                                                   user.UserId, user.EmployeeNumber, user.EmployeeNames + " " + user.EmployeeLastName, user.DeclineDate)
                };
                #endregion
                var loglogic = new LogLogic(_configuration);
                loglogic.InsertLogEvent(log);
                loglogic.Dispose();



                response.Message = "Se declino correctamente el usuario para uso de aplicaciones.";
                response.Result  = true;
            }
            catch (Exception err)
            {
                if (err.Message.Substring(0, 35) == "Violation of PRIMARY KEY constraint")
                {
                    var log = new Log
                    {
                        EventUser      = registerUser,
                        EventTypeId    = LogTypeEnum.Notification,
                        LogDescription = string.Format("Se intentó declinar el usuario {0} del esquema de seguridad, pero ya existe previamente", user.UserId),
                        Application    = new ApplicationPMX
                        {
                            ApplicationName =
                                _applicationName
                        }
                    };
                    var loglogic = new LogLogic(_configuration);
                    loglogic.InsertLogEvent(log);
                    loglogic.Dispose();
                    response.Message = "El usuario ha sido declinado previamente";
                    return(response);
                }
                response.Message = string.Format("Ocurrio un error al intentar declinar el usuario. {0} {1}", err.Message, DateTime.Now.ToString(CultureInfo.InvariantCulture));
                return(response);
            }
            return(response);
        }
        public Response DelRoleOperation(RoleOperations roleOperations, User registerUser)
        {
            var response = new Response {
                Message = "Sin inicializar", Result = false
            };

            try
            {
                #region logRegister
                var log = new Log
                {
                    Application = new ApplicationPMX
                    {
                        ApplicationName = _applicationName
                    },
                    EventUser   = registerUser,
                    EventTypeId = LogTypeEnum.Notification,

                    LogDescription = string.Format("Declinó la operacion Id {0} al rol Id {1} Fecha vigencia: {2}", roleOperations.OperationId, roleOperations.RoleId, roleOperations.DeclineDate)
                };
                #endregion

                #region AddUserDataValidation
                if (roleOperations.RoleId <= 0)
                {
                    response.Message = "El campo role no puede estar vacío";
                    return(response);
                }

                if (roleOperations.OperationId <= 0)
                {
                    response.Message = "El campo Operación no puede estar vacío";
                    return(response);
                }

                if (registerUser == null)
                {
                    response.Message = "No se ha especificado el usuario con permisos para registrar";
                    return(response);
                }
                #endregion

                var loglogic    = new LogLogic(_configuration);
                var responseLog = loglogic.InsertLogEvent(log);
                loglogic.Dispose();
                if (!responseLog.Result)
                {
                    response.Message = string.Format("No se puede insertar en bitácorá el movimiento. {0}", responseLog.Message);
                    return(response);
                }
                var roleOperationDa = new RoleOperationDA(_configuration);
                roleOperationDa.DelRoleOperation(roleOperations, registerUser);
                roleOperationDa.Dispose();
                response.Message = "Se declino correctamente el rol para uso de operaciones.";
                response.Result  = true;
            }
            catch (Exception err)
            {
                if (err.Message.Substring(0, 35) == "Violation of PRIMARY KEY constraint")
                {
                    var log = new Log
                    {
                        EventUser      = registerUser,
                        EventTypeId    = LogTypeEnum.Notification,
                        LogDescription = string.Format("Se intentó agregar al usuario {0} al esquema de seguridad, pero ya existe previamente", roleOperations.RoleId),
                        Application    = new ApplicationPMX
                        {
                            ApplicationName =
                                _applicationName
                        }
                    };
                    var loglogic = new LogLogic(_configuration);
                    loglogic.InsertLogEvent(log);
                    loglogic.Dispose();
                    response.Message = "El usuario ha sido registrado previamente";
                    return(response);
                }
                response.Message = string.Format("Ocurrio un error al intentar agregar el usuario. {0} {1}", err.Message, DateTime.Now.ToString(CultureInfo.InvariantCulture));
                return(response);
            }
            return(response);
        }
        public Response AddNewUsersApplicationsRoles(UsersApplicationsRoles usersApplicationsRoles, User registerUser)
        {
            var response = new Response {
                Message = "Sin inicializar", Result = false
            };

            try
            {
                #region AddUserDataValidation
                if (string.IsNullOrEmpty(usersApplicationsRoles.UserId))
                {
                    response.Message = "El usuario no puede estar vacío";
                    return(response);
                }

                //Se valida que no exista previamente el rol asignado al usuario
                var usersApplicationsRoleLogic = new UsersApplicationsRolesLogic(_configuration);
                var lstprofileFull             = usersApplicationsRoleLogic.GetApplicationsRoleList(new User()
                {
                    UserId = usersApplicationsRoles.UserId
                }, registerUser);
                usersApplicationsRoleLogic.Dispose();

                var roleFinded = lstprofileFull.Find(a => a.ApplicationName == usersApplicationsRoles.ApplicationName && a.RoleName == usersApplicationsRoles.RoleName);
                if (roleFinded != null)
                {
                    response.Message = "El rol ya ha sido asignado previamente al usuario.";
                    return(response);
                }



                //Se valida que no exista la prohibición de combinacion de roles
                EntityLibrary.ApplicationPMX application = new ApplicationPMX()
                {
                    ApplicationId = usersApplicationsRoles.ApplicationId
                };
                User usertoAdd = new User()
                {
                    UserId = usersApplicationsRoles.UserId
                };
                var roleLogic = new RoleLogic(_configuration);
                List <EntityLibrary.Role> roles = roleLogic.GetRoleList(application, usertoAdd);


                Role roleB = new Role()
                {
                    RoleId = usersApplicationsRoles.RoleId
                };

                foreach (var roleA in roles)
                {
                    var resultExist = roleLogic.RoleNotAllowedCombinationExistAndDate(application, roleA, roleB);
                    if (resultExist.Result)
                    {
                        response.Message =
                            "No se puede agregar el rol al usuario, ya que no está permitida en la combinación de roles";
                        return(response);
                    }
                }
                roleLogic.Dispose();

                if (string.IsNullOrEmpty(usersApplicationsRoles.ApplicationId.ToString()))
                {
                    response.Message = "El campo IdAplicacion no puede estar vacío";
                    return(response);
                }

                if (string.IsNullOrEmpty(usersApplicationsRoles.RoleId.ToString()))
                {
                    response.Message = "El campo IdRole no puede estar vacío";
                    return(response);
                }

                var dateRole = Convert.ToDateTime(usersApplicationsRoles.DeclineDate);
                if (Convert.ToDateTime(string.Format("{0:yyyy/MM/dd}", dateRole)) < Convert.ToDateTime(string.Format("{0:yyyy/MM/dd}", DateTime.Now)))
                {
                    response.Message = "La fecha ingresada no puede ser menor a la fecha actual, favor de verificar.";
                    return(response);
                }

                if (registerUser == null)
                {
                    response.Message = "No se ha especificado el usuario con permisos para registrar";
                    return(response);
                }
                #endregion

                var usersApplicationsRoleDa = new UsersApplicationsRoleDA(_configuration);
                usersApplicationsRoleDa.AddNewUsersApplicationsRoles(usersApplicationsRoles, registerUser);
                usersApplicationsRoleDa.Dispose();
                #region logRegister

                var log = new Log
                {
                    Application = new ApplicationPMX
                    {
                        ApplicationName = _applicationName
                    },
                    EventUser      = registerUser,
                    EventTypeId    = LogTypeEnum.Notification,
                    LogDescription = string.Format("Agregó el rol {0}-{1} de la aplicación {2}-{3} al usuario {4}  Vigente hasta: {5}.",
                                                   usersApplicationsRoles.RoleId, usersApplicationsRoles.RoleName, usersApplicationsRoles.ApplicationId, usersApplicationsRoles.ApplicationName, usersApplicationsRoles.UserId, usersApplicationsRoles.DeclineDate)
                };
                #endregion
                var loglogic = new LogLogic(_configuration);
                loglogic.InsertLogEvent(log);
                loglogic.Dispose();


                response.Message = "Se registró correctamente el rol {0} de la aplicación {1} al userId {2} - {3}.";
                response.Result  = true;
            }
            catch (Exception err)
            {
                if (err.Message.Substring(0, 35) == "Violation of PRIMARY KEY constraint")
                {
                    var log = new Log
                    {
                        EventUser      = registerUser,
                        EventTypeId    = LogTypeEnum.Notification,
                        LogDescription = string.Format("Se intentó agregar al usuario {0} al esquema de seguridad, pero ya existe previamente", registerUser.UserId),
                        Application    = new ApplicationPMX
                        {
                            ApplicationName =
                                _applicationName
                        }
                    };
                    var loglogic = new LogLogic(_configuration);
                    loglogic.InsertLogEvent(log);
                    loglogic.Dispose();
                    response.Message = "El usuario ya cuenta con el role seleccionado.";
                    return(response);
                }
                response.Message = string.Format("Ocurrio un error al intentar agregar el usuario. {0} {1}", err.Message, DateTime.Now.ToString(CultureInfo.InvariantCulture));
                return(response);
            }
            return(response);
        }
Пример #25
0
        public Response DelRole(Role role, User registerUser)
        {
            var response = new Response {
                Message = "Sin inicializar", Result = false
            };

            try
            {
                #region logRegister

                var log = new Log
                {
                    Application = new ApplicationPMX
                    {
                        ApplicationName = _applicationName
                    },
                    EventUser      = registerUser,
                    EventTypeId    = LogTypeEnum.Notification,
                    LogDescription = string.Format("Declinó el rol {0}-{1}  a la aplicación id: {2}. Vigente hasta: {3} Autorizador rol: {4} Cargo autorizador: {5} Descripción: {6}",
                                                   role.RoleId, role.RoleName, role.ApplicationId, role.DeclineDate, role.RoleAuthorizationUserId, role.RoleAuthorizationOwner, role.RoleDescription)
                };

                #endregion

                #region AddUserDataValidation
                if (role.RoleId < 0)
                {
                    response.Message = "La clave del rol no puede estar vacía.";
                    return(response);
                }

                if (role.ApplicationId < 0)
                {
                    response.Message = "La clave de la aplicación no puede estar vacía.";
                    return(response);
                }

                if (registerUser == null)
                {
                    response.Message = "No se ha especificado el usuario con permisos para registrar";
                    return(response);
                }

                #endregion

                var loglogic    = new LogLogic(_configuration);
                var responseLog = loglogic.InsertLogEvent(log);
                loglogic.Dispose();
                if (!responseLog.Result)
                {
                    response.Message = string.Format("No se puede insertar en bitácorá el movimiento. {0}", responseLog.Message);
                    return(response);
                }


                var roleDa = new RoleDA(_configuration);
                roleDa.DelRole(role, registerUser);
                roleDa.Dispose();

                response.Message = "Se declino correctamente el rol para uso de Aplicaciones.";
                response.Result  = true;
            }
            catch (Exception err)
            {
                if (err.Message.Substring(0, 35) == "Violation of PRIMARY KEY constraint")
                {
                    var log = new Log
                    {
                        EventUser      = registerUser,
                        EventTypeId    = LogTypeEnum.Notification,
                        LogDescription = string.Format("Se intentó eliminar el rol {0} al esquema de seguridad, pero ya existe previamente", role.RoleId),
                        Application    = new ApplicationPMX
                        {
                            ApplicationName = _applicationName
                        }
                    };
                    var loglogic = new LogLogic(_configuration);
                    loglogic.InsertLogEvent(log);
                    loglogic.Dispose();
                    response.Message = "El rol ha sido eliminado previamente";
                    return(response);
                }
                response.Message = string.Format("Ocurrio un error al intentar agregar el rol. {0} {1}", err.Message, DateTime.Now.ToString(CultureInfo.InvariantCulture));
                return(response);
            }
            return(response);
        }