/*
* UserInfo.java
*
* Created on 27 Декабрь 2007 г., 3:03
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package clips.login;
import beans.security.LoginRemote;
import cli_fmw.delegate.directory.complex.DirectoryLocator;
import cli_fmw.login.UserInfoAbstract;
import cli_fmw.main.UserPanel;
import cli_fmw.main.ClipsException;
import clips.delegate.client.CollaboratorLocal;
import clips.delegate.directory.ro.DirectoryCollaborator;
import clips.delegate.directory.ro.DirectoryCollaboratorItem;
import clips.main.UserPanelsEnum;
import framework.beans.security.SessionSecurityDetails;
import java.util.Set;
/**
* Класс - дескриптор текущего пользователя.
* На основе данных пользователя будет корректироваться интерфейс.
* @author Axe Ilshat
*/
public class UserInfo
extends UserInfoAbstract<CollaboratorLocal>{
// private String socialCardID;
public static UserInfo get() {
return (UserInfo) instance;
}
protected UserInfo(SessionSecurityDetails securityData) throws ClipsException {
super(securityData, new CollaboratorLocal(securityData.collaboratorId, null));//NULL AL
}
/**
* Возвращает список доступных панелей
* @return
* @throws ClipsException
*/
@Override
public Set<UserPanel> getPanels() throws ClipsException {
Set<UserPanel> panels = super.getPanels();
//если не включен в расписание, нечего давать ему смотреть свое расписание
if(!getCollaboratorLocal().isSheduled()) {
panels.remove(UserPanelsEnum.PANEL_PanelSelfReception);
}
return panels;
}
@Override
public DirectoryCollaboratorItem getCollaborator() throws ClipsException {
DirectoryCollaborator colls = DirectoryLocator.getDirectory(DirectoryCollaborator.class, false);
return colls.getItemFromID(securityData.collaboratorId);
}
public String getCollaboratorSocialCardID() throws ClipsException {
CollaboratorLocal colLocal = new CollaboratorLocal(UserInfo.get().getCollaborator().getID(), null);//NULL AL
String target = colLocal.getClient().getSocialСardCode();
return target;
}
/* protected static SessionSecurityDetails tryLoginByCard(String cardName) throws Exception {
if (get() != null) {
throw new ClipsException("Внутренняя ошибка: попытка зарегистрировать сессию во второй раз.");
}
LoginRemote loginBean = (LoginRemote) getLoginBean();
int sessId = loginBean.loginByCard(loginBean.getEncryptor().encryptPasswd(cardName.toCharArray()));
SessionSecurityDetails detail = loginBean.getSessionRemote(sessId);
return detail;
}
*/
}