package cz.cvut.fel.restauracefel.server.service.controllers; import cz.cvut.fel.restauracefel.hibernate.Right; import cz.cvut.fel.restauracefel.hibernate.RoleRight; import cz.cvut.fel.restauracefel.hibernate.UserRole; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * * @author Tomas Hnizdil */ public class RightController { protected static RightController instance = null; protected Right right = null; private RightController() { } public static RightController getInstance() { if (instance == null){ instance = new RightController(); } return instance; } //vraci List vsech uzivatelskych prav public List getAllRights() { return Right.findAll(); } //vraci pole Stringu obsahujici jmena vsech roli public String[] getRightNames() { List<Right> list = getAllRights(); if (list == null || list.isEmpty()) return null; String rightsName[] = new String[list.size()]; Iterator it = list.iterator(); int i = 0; while (it.hasNext()) { rightsName[i] = ((Right) it.next()).getName(); i++; } return rightsName; } //vraci roli dle jejiho Id public Right getRightByID(int id) { return Right.findById(id); } //vraci roli dle jejiho jmena public Right getRightByName(String name) { return Right.findByName(name); } public String[] getRightsByUser(int userId) { List<UserRole> roles = UserRole.findByUser(userId); if (roles == null) return null; List<String> res = new ArrayList<String>(); for (int i=0; i<roles.size(); i++) { List<RoleRight> subList = RoleRight.findByRole(roles.get(i).getRole().getRoleId()); for(int j=0; j<subList.size(); j++) { if (!res.contains(subList.get(j).getRight().getName())) res.add(subList.get(j).getRight().getName()); } } String[] result = new String[res.size()]; for (int i=0; i<result.length; i++) { result[i] = res.get(i); } return result; } }