È possibile utilizzare la maschera per questo
public interface IPersmisions {
public static final int NONE = 1 << 0;
public static final int LEVEL1 = 1 << 1;
public static final int LEVEL2 = 1 << 2;
public static final int LEVEL3 = 1 << 3;
public static final int LEVEL4 = 1 << 4;
public static final int LEVEL5 = 1 << 5;
public static final int LEVEL6 = 1 << 6;
public static final int LEVEL7 = 1 << 7;
public static final int LEVEL8 = 1 << 8;
public static final int LEVEL9 = 1 << 9;
}
ASSORBITO Si aggiunge
int permisions = IPersmisions.NONE;
public boolean checkPermission(int permission) {
return (permissions & permission) != 0;
}
public void addPermission(int permission) {
permissions = (permissions | permission);
}
public void removePermission(int permission) {
permissions = (permissions & ~permission);
}
di quanto si possa impostare un facilmente impostare un gruppo per gli utenti
public interface IPermisionGroup extends IPermisions {
public static final int LEVEL1_2_3 = LEVEL1 | LEVEL2 | LEVEL3;
public static final int LEVEL4_5_6 = LEVEL4 | LEVEL5 | LEVEL6;
public static final int LEVEL7_8_9 = LEVEL7 | LEVEL8 | LEVEL9;
}
E il codice è possibile utilizzare è come questo
user.addPermision(IPermisions.LEVEL1);
o
user.addPermision(IPermisions.LEVEL1 | IPermision.LEVEL2);
o
user.addPermision(IPermisionGroup.LEVEL1_2_3);
fonte
2010-08-03 12:48:39
puoi incollare qualche frammento di codice per apprezzare meglio quello che stai cercando di fare. –