More people need to do just that. If a job treats its employees poorly, and the workers are afraid to speak up for their own rights, they either join a union and let it fight things out, or they leave.
Ideally, all workers would be in a union which is strong enough to negotiate for them, but realistically, this does not always/usually happen. One can be an activist and try coaxing coworkers to stand up for their rights alone, but it's a very hard thing to do. Join a union (or contact the labor standards office), or leave with some polite but firm words to the boss about his poor treatment. Let your coworkers know why you leave, and try to let others interested in the vacancies know, too. (This last point happens a lot in the teaching world.)