// 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(DataSourcePermission dsp, Role r) { DataSourcePermission newPerm = dsp.Clone(); newPerm.ID = NewId(newPerm); newPerm.RoleID = r.ID; newPerm.Name = newPerm.ID; //dsp.Name + " - Copy"; dsp.Parent.DataSourcePermissions.Add(newPerm); }