// this routine clones the permissions for the various major permission types private void ClonePermissions(MajorObject mo, Role r) { DimensionPermission dimPerm = mo as DimensionPermission; CubePermission cubePerm = mo as CubePermission; DatabasePermission dbPerm = mo as DatabasePermission; DataSourcePermission dsPerm = mo as DataSourcePermission; if (dimPerm != null) { ClonePermissions(dimPerm, r); } else if (cubePerm != null) { ClonePermissions(cubePerm, r); } else if (dbPerm != null) { ClonePermissions(dbPerm, r); } else if (dsPerm != null) { ClonePermissions(dsPerm, r); } else { throw new System.Exception("BIDSHelper: unhandled permission type"); } }
private void ClonePermissions(DimensionPermission dimp, Role r) { DimensionPermission newPerm = dimp.Clone(); newPerm.ID = NewId(newPerm); newPerm.Name = newPerm.ID; // dimp.Name + " - Copy"; newPerm.RoleID = r.ID; dimp.Parent.DimensionPermissions.Add(newPerm); }