Exemplo n.º 1
0
        public List <Permission> GetAllPermission()
        {
            RolePermissionMapper rolePermissionMapper = new RolePermissionMapper();
            List <Permission>    permissions          = rolePermissionMapper.Get();

            if (permissions == null)
            {
                AddError(new ResultBE(ResultBE.Type.EMPTY, "Sin permisos sin asignar."));
            }

            return(permissions);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Recupera el rol cuyo id es pasado por parámetro.
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public Role Get(int id)
        {
            RolePermissionMapper rolePermissionMapper = new RolePermissionMapper();
            RoleMapper           roleMapper           = new RoleMapper();

            Role role = roleMapper.Get(id);

            if (role == null)
            {
                AddError(new ResultBE(ResultBE.Type.EMPTY, "No se encontró el el rol con id " + id));
                return(null);
            }

            List <Permission> permissions = rolePermissionMapper.Get(role);

            role.Permissions = permissions;

            return(role);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Guarda los cambios que
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public bool EditRoleForUser(User user)
        {
            if (!IsValidForUserAssignation(user))
            {
                return(false);
            }

            RolePermissionMapper rolePermissionMapper = new RolePermissionMapper();
            bool success = rolePermissionMapper.EditRoleForUser(user);

            if (!success)
            {
                string errorDescription = "No se han podido asignar los roles al usuario.";
                log.AddLogCritical("EditRoleForUser", errorDescription, this);
                AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription));
            }

            return(success);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Elimina el rol cuyo id es pasado por parámetro.
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public bool Delete(int id)
        {
            RoleMapper           rolMapper            = new RoleMapper();
            RolePermissionMapper rolePermissionMapper = new RolePermissionMapper();
            UserRoleMapper       userRolMapper        = new UserRoleMapper();

            if (!userRolMapper.InUse(id))
            {
                //TODO - falta agregar control de error aquí
                rolePermissionMapper.Delete(id);
                rolMapper.Delete(id);
            }
            else
            {
                string errorDescription = "El rol está en uso.";
                log.AddLogCritical("Delete", errorDescription, this);
                AddError(new ResultBE(ResultBE.Type.RELATIONSHIP_ERROR, errorDescription));
            }
            return(true);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Devuelve la lista de roles del usuario pasado por parámetro.
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public List <Role> Get(User user)
        {
            RolePermissionMapper rolePermissionMapper = new RolePermissionMapper();
            UserRoleMapper       userRoleMapper       = new UserRoleMapper();
            List <Role>          roles = userRoleMapper.Get(user);

            if (roles == null)
            {
                string errorDescription = "El usuario " + user.Mail + " no posee permisos asociados.";
                log.AddLogInfo("IsValid", errorDescription, this);
                AddError(new ResultBE(ResultBE.Type.EMPTY, errorDescription));
            }
            else
            {
                //TODO - revisar la performance
                foreach (Role role in roles)
                {
                    role.Permissions = rolePermissionMapper.Get(role);
                }
            }

            return(roles);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Guarda las modificaciones del rol.
        /// </summary>
        /// <param name="role"></param>
        /// <returns></returns>
        public bool Edit(Role role)
        {
            RoleMapper           roleMapper           = new RoleMapper();
            RolePermissionMapper rolePermissionMapper = new RolePermissionMapper();

            if (!IsValid(role))
            {
                return(false);
            }

            if (roleMapper.Exists(role))
            {
                string errorDescription = "Ya existe rol con ese nombre";
                log.AddLogWarn("Edit", errorDescription, this);
                AddError(new ResultBE(ResultBE.Type.ALREADY_EXISTS, errorDescription));
                return(false);
            }

            if (!roleMapper.Edit(role))
            {
                string errorDescription = "No se pudo actualizar el rol.";
                log.AddLogCritical("Edit", errorDescription, this);
                AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription));
                return(false);
            }

            // TODO - los roles tienen una lista de permisos y deberían guardarse en la misma transacción
            if (!rolePermissionMapper.Edit(role))
            {
                string errorDescription = "No se ha podido guardar la nómina de permisos asociados al rol.";
                log.AddLogCritical("Edit", errorDescription, this);
                AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription));
                return(false);
            }

            return(true);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Persiste el rol y los permisos asociados.
        /// </summary>
        /// <param name="role"></param>
        /// <returns></returns>
        public bool Save(Role role)
        {
            RoleMapper           roleMapper           = new RoleMapper();
            RolePermissionMapper rolePermissionMapper = new RolePermissionMapper();

            if (!IsValid(role))
            {
                return(false);
            }

            if (roleMapper.Exists(role))
            {
                string errorDescription = "Ya existe un rol con ese nombre.";
                log.AddLogCritical("Save", errorDescription, this);
                AddError(new ResultBE(ResultBE.Type.ALREADY_EXISTS, errorDescription));
                return(false);
            }

            if (!roleMapper.Save(role))
            {
                string errorDescription = "Error al grabar rol";
                log.AddLogCritical("Save", errorDescription, this);
                AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription));
                return(false);
            }

            // TODO - los roles tienen una lista de permisos
            if (!rolePermissionMapper.SavePermissionForRole(role))
            {
                string errorDescription = "Error al asociar los permisos al rol.";
                log.AddLogCritical("Save", errorDescription, this);
                AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription));
                return(false);
            }

            return(true);
        }
Exemplo n.º 8
0
        /// <summary>
        /// Devuelve la lista de roles disponibles para un usuario.
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public List <Role> GetUnassignedRole(User user)
        {
            RolePermissionMapper rolePermissionMapper = new RolePermissionMapper();

            return(rolePermissionMapper.GetUnassignedRole(user));
        }
Exemplo n.º 9
0
        /// <summary>
        /// Recupera los permisos que no fueron asociados a un rol.
        /// </summary>
        /// <returns></returns>
        public List <Permission> GetUnassignedPermission(Role role)
        {
            RolePermissionMapper rolePermissionMapper = new RolePermissionMapper();

            return(rolePermissionMapper.GetUnassignedPermission(role));
        }