public addPermission ( string duz, AbstractPermission p ) : AbstractPermission | ||
duz | string | |
p | AbstractPermission | |
return | AbstractPermission |
public AbstractPermission addPermission(string duz, AbstractPermission p)
{
if (p.Type == PermissionType.MenuOption)
{
p.RecordId = addMenuOption(duz, p);
return p;
}
if (p.Type == PermissionType.DelegatedOption)
{
p.RecordId = addDelegatedOption(duz, p);
return p;
}
if (p.Type == PermissionType.SecurityKey)
{
return addSecurityKey(duz, p);
}
throw new ArgumentException("Invalide permission type");
}
//internal void setVisitorContext(AbstractPermission requestedContext, string DUZ) //{ // try // { // setContext(requestedContext); // return; // } // catch (UnauthorizedAccessException uae) // { // addContextInVista(DUZ, requestedContext); // setContext(requestedContext); // } // catch (Exception e) // { // throw; // } //} // This is how the visitor gets the requested context - typically // OR CPRS GUI CHART. The visitor comes back from VistA with CAPRI // context only. internal void addContextInVista(string duz, AbstractPermission requestedContext) { if (Permissions.ContainsKey(requestedContext.Name)) { return; } VistaUserDao dao = new VistaUserDao(Cxn); // try/catch should fix: http://trac.medora.va.gov/web/ticket/2288 try { setContext(requestedContext); } catch (Exception) { try { // will get CONTEXT HAS NOT BEEN CREATED if we don't set this again after failed attempt setContext(new MenuOption(VistaConstants.DDR_CONTEXT)); dao.addPermission(duz, requestedContext); setContext(requestedContext); } catch (Exception) { throw; } } }