protected void btnAdd_Click(object sender, EventArgs e)
{
// Add the selected subject with full control deny, then select it in the main list
string subject = lstFoundSubjects.SelectedValue.Substring(2);
bool isGroup = lstFoundSubjects.SelectedValue.StartsWith("G.");
bool done = false;
switch(CurrentResourceType) {
case AclResources.Namespaces:
if(isGroup) {
done = AuthWriter.SetPermissionForNamespace(AuthStatus.Deny,
Pages.FindNamespace(CurrentResourceName), Actions.FullControl,
Users.FindUserGroup(subject));
}
else {
done = AuthWriter.SetPermissionForNamespace(AuthStatus.Deny,
Pages.FindNamespace(CurrentResourceName), Actions.FullControl,
Users.FindUser(subject));
}
break;
case AclResources.Pages:
if(isGroup) {
done = AuthWriter.SetPermissionForPage(AuthStatus.Deny,
Pages.FindPage(CurrentResourceName), Actions.FullControl,
Users.FindUserGroup(subject));
}
else {
done = AuthWriter.SetPermissionForPage(AuthStatus.Deny,
Pages.FindPage(CurrentResourceName), Actions.FullControl,
Users.FindUser(subject));
}
break;
case AclResources.Directories:
IFilesStorageProviderV30 prov = Collectors.FilesProviderCollector.GetProvider(CurrentFilesProvider);
if(isGroup) {
done = AuthWriter.SetPermissionForDirectory(AuthStatus.Deny,
prov, CurrentResourceName, Actions.FullControl,
Users.FindUserGroup(subject));
}
else {
done = AuthWriter.SetPermissionForDirectory(AuthStatus.Deny,
prov, CurrentResourceName, Actions.FullControl,
Users.FindUser(subject));
}
break;
default:
throw new NotSupportedException();
}
if(done) {
PopulateSubjectsList();
// Select in main list and display permissions in actions matrix
foreach(ListItem item in lstSubjects.Items) {
if(item.Value == lstFoundSubjects.SelectedValue) {
item.Selected = true;
break;
}
}
DisplaySubjectPermissions(subject, isGroup ? SubjectType.Group : SubjectType.User);
txtNewSubject.Text = "";
lstFoundSubjects.Items.Clear();
btnAdd.Enabled = false;
}
else {
lblAddResult.CssClass = "resulterror";
lblAddResult.Text = Properties.Messages.CouldNotStorePermissions;
}
}