private void AddCapabilityToTable(ENTCapabilityBO capability, string text) { var tr = new TableRow(); //Name var tc = new TableCell(); var lc = new LiteralControl(); lc.Text = text; tc.Controls.Add(lc); tr.Cells.Add(tc); //access flag var tc1 = new TableCell(); var radioButtons = new RadioButtonList(); radioButtons.ID = capability.ID.ToString(); switch (capability.AccessType) { case ENTCapabilityBO.AccessTypeEnum.ReadOnlyEdit: radioButtons.Items.Add(new ListItem("None", ENTRoleCapabilityEO.CapabiiltyAccessFlagEnum.None.ToString())); radioButtons.Items.Add(new ListItem("Read Only", ENTRoleCapabilityEO.CapabiiltyAccessFlagEnum.ReadOnly.ToString())); radioButtons.Items.Add(new ListItem("Edit", ENTRoleCapabilityEO.CapabiiltyAccessFlagEnum.Edit.ToString())); radioButtons.RepeatDirection = RepeatDirection.Horizontal; radioButtons.RepeatLayout = RepeatLayout.Table; break; case ENTCapabilityBO.AccessTypeEnum.ReadOnly: radioButtons.Items.Add(new ListItem("None", ENTRoleCapabilityEO.CapabiiltyAccessFlagEnum.None.ToString())); radioButtons.Items.Add(new ListItem("Read Only", ENTRoleCapabilityEO.CapabiiltyAccessFlagEnum.ReadOnly.ToString())); radioButtons.RepeatDirection = RepeatDirection.Horizontal; radioButtons.RepeatLayout = RepeatLayout.Table; break; case ENTCapabilityBO.AccessTypeEnum.Edit: radioButtons.Items.Add(new ListItem("None", ENTRoleCapabilityEO.CapabiiltyAccessFlagEnum.None.ToString())); radioButtons.Items.Add(new ListItem("Edit", ENTRoleCapabilityEO.CapabiiltyAccessFlagEnum.Edit.ToString())); radioButtons.RepeatDirection = RepeatDirection.Horizontal; radioButtons.RepeatLayout = RepeatLayout.Table; break; } tc1.Controls.Add(radioButtons); tr.Cells.Add(tc1); tblCapabilities.Rows.Add(tr); }
public virtual void CheckCapabilities() { if (IgnoreCapabilityCheck == false) { foreach (var capabilityName in CapabilityNames()) { // Check if user has the capability to view this screen ENTCapabilityBO capability = Globals.GetCapabilities(this.Cache).GetByName(capabilityName); if (capability == null) { throw new Exception("Security is not enabled for this page. " + this.ToString()); } else { switch (CurrentUser.GetCapabilityAccess(capability.ID, Globals.GetRoles(this.Cache))) { case ENTRoleCapabilityEO.CapabilityAccessFlagEnum.None: NoAccessToPage(capabilityName); break; case ENTRoleCapabilityEO.CapabilityAccessFlagEnum.ReadOnly: MakeFormReadOnly(capabilityName, this.Controls); break; case ENTRoleCapabilityEO.CapabilityAccessFlagEnum.Edit: break; default: throw new Exception("Unknown access for this screen. " + capability.CapabilityName); } } capability = null; } } }