- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-29-2020 09:07 AM
Hi,
can any one help me
when i am create a stories for particular project that project record not showing in list
Script Include: ScrumSecurityManager
var ScrumSecurityManager = Class.create();
// Constants available for the Scrum Security Manager classes. These are split into 3 categories:
// [1] Roles - these represent the Product Owner, Scrum Master and Team Member roles and combinations thereof.
// [2] Actions - these represent the the types of operations a user may need to perform on the Scrum tables.
// [3] Tables - these represent the names of the SQL tables used by the Scrum application.
ScrumSecurityManager.PRODUCT_OWNER = ["Product Owner"];
ScrumSecurityManager.SCRUM_MASTER = ["Scrum Master"];
ScrumSecurityManager.TEAM_MEMBER = ["Team Member"];
ScrumSecurityManager.SCRUM_MASTER_TEAM_MEMBER = [ "Scrum Master", "Team Member" ];
ScrumSecurityManager.PRODUCT_OWNER_SCRUM_MASTER = [ "Product Owner", "Scrum Master" ];
ScrumSecurityManager.ANY_TEAM_MEMBER = [ "Product Owner", "Scrum Master", "Team Member"];
//--------------------------------------------------------------------------------------------------
ScrumSecurityManager.CREATE = "Create";
ScrumSecurityManager.DELETE = "Delete";
ScrumSecurityManager.READ = "Read";
ScrumSecurityManager.WRITE = "Write";
//--------------------------------------------------------------------------------------------------
ScrumSecurityManager.USER_PERMISSIONS = "scrum_user_permissions";
ScrumSecurityManager.GROUP_PERMISSIONS = "scrum_group_permissions";
ScrumSecurityManager.PRODUCT_RELEASE = "m2m_product_release";
//ScrumSecurityManager.EPIC_RELEASE = "m2m_scrum_epic_release";
ScrumSecurityManager.PRODUCT = "cmdb_model";
ScrumSecurityManager.RELEASE = "rm_release_scrum";
ScrumSecurityManager.SPRINT = "rm_sprint";
ScrumSecurityManager.EPIC = "rm_epic";
ScrumSecurityManager.STORY = "rm_story";
ScrumSecurityManager.TASK = "rm_scrum_task";
ScrumSecurityManager.AGILE_TEAM = '1bff3b1493030200ea933007f67ffb6d';
// the ScrumSecurityManager implementation to be used
ScrumSecurityManager.DEFAULT_SMCLASSNAME = 'ScrumSecurityManagerDefault'; // the default
ScrumSecurityManager.SDLC_SCRUM_SMCLASSNAME = 'com.snc.sdlc.scrum.pp.smclass'; // sys_properties
ScrumSecurityManager.impl = function() {
var klass = ScrumSecurityManager._getClass(gs.getProperty(ScrumSecurityManager.SDLC_SCRUM_SMCLASSNAME, 'ScrumSecurityManagerDefault'));
var impl = new klass();
return impl;
};
//--------------------------------------------------------------------------------------------------
// can user create <x>?
//--------------------------------------------------------------------------------------------------
ScrumSecurityManager.canCreateProductRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canCreateProductRelease(glideRecord);
};
ScrumSecurityManager.canCreateEpicRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canCreateEpicRelease(glideRecord);
};
ScrumSecurityManager.canCreateGroupPermissions = function(glideRecord) {
return ScrumSecurityManager.impl().canCreateGroupPermissions(glideRecord);
};
ScrumSecurityManager.canCreateUserPermissions = function(glideRecord) {
return ScrumSecurityManager.impl().canCreateUserPermissions(glideRecord);
};
ScrumSecurityManager.canCreateProduct = function(glideRecord) {
return ScrumSecurityManager.impl().canCreateProduct(glideRecord);
};
ScrumSecurityManager.canCreateRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canCreateRelease(glideRecord);
};
ScrumSecurityManager.canCreateReleaseForProduct = function(product) {
return ScrumSecurityManager.impl().canCreateReleaseForProduct(product);
};
ScrumSecurityManager.canCreateSprint = function(glideRecord) {
return ScrumSecurityManager.impl().canCreateSprint(glideRecord);
};
ScrumSecurityManager.canCreateEpic = function(glideRecord) {
return ScrumSecurityManager.impl().canCreateEpic(glideRecord);
};
ScrumSecurityManager.canCreateStory = function(glideRecord) {
return ScrumSecurityManager.impl().canCreateStory(glideRecord);
};
ScrumSecurityManager.canCreateStoryForProduct = function(product) {
return ScrumSecurityManager.impl().canCreateStoryForProduct(product);
};
ScrumSecurityManager.canCreateTask = function(glideRecord) {
return ScrumSecurityManager.impl().canCreateTask(glideRecord);
};
//--------------------------------------------------------------------------------------------------
// can user delete <x>?
//--------------------------------------------------------------------------------------------------
ScrumSecurityManager.canDeleteProductRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canDeleteProductRelease(glideRecord);
};
ScrumSecurityManager.canDeleteProduct = function(glideRecord) {
return ScrumSecurityManager.impl().canDeleteProduct(glideRecord);
};
ScrumSecurityManager.canDeleteGroupPermissions = function(glideRecord) {
return ScrumSecurityManager.impl().canDeleteGroupPermissions(glideRecord);
};
ScrumSecurityManager.canDeleteUserPermissions = function(glideRecord) {
return ScrumSecurityManager.impl().canDeleteUserPermissions(glideRecord);
};
ScrumSecurityManager.canDeleteRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canDeleteRelease(glideRecord);
};
ScrumSecurityManager.canDeleteSprint = function(glideRecord) {
return ScrumSecurityManager.impl().canDeleteSprint(glideRecord);
};
ScrumSecurityManager.canDeleteEpic = function(glideRecord) {
return ScrumSecurityManager.impl().canDeleteEpic(glideRecord);
};
ScrumSecurityManager.canDeleteStory = function(glideRecord) {
return ScrumSecurityManager.impl().canDeleteStory(glideRecord);
};
ScrumSecurityManager.canDeleteTask = function(glideRecord) {
return ScrumSecurityManager.impl().canDeleteTask(glideRecord);
};
//--------------------------------------------------------------------------------------------------
// can user read <x>?
//--------------------------------------------------------------------------------------------------
ScrumSecurityManager.canReadProductContents = function() {
return ScrumSecurityManager.impl().canReadProductContents();
};
ScrumSecurityManager.canReadProductRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canReadProductRelease(glideRecord);
};
ScrumSecurityManager.canReadEpicRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canReadEpicRelease(glideRecord);
};
ScrumSecurityManager.canReadGroupPermissions = function(glideRecord) {
return ScrumSecurityManager.impl().canReadGroupPermissions(glideRecord);
};
ScrumSecurityManager.canReadUserPermissions = function(glideRecord) {
return ScrumSecurityManager.impl().canReadUserPermissions(glideRecord);
};
ScrumSecurityManager.canReadProduct = function(glideRecord) {
return ScrumSecurityManager.impl().canReadProduct(glideRecord);
};
ScrumSecurityManager.canReadRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canReadRelease(glideRecord);
};
ScrumSecurityManager.canReadSprint = function(glideRecord) {
return ScrumSecurityManager.impl().canReadSprint(glideRecord);
};
ScrumSecurityManager.canReadEpic = function(glideRecord) {
return ScrumSecurityManager.impl().canReadEpic(glideRecord);
};
ScrumSecurityManager.canReadStory = function(glideRecord) {
return ScrumSecurityManager.impl().canReadStory(glideRecord);
};
ScrumSecurityManager.canReadTask = function(glideRecord) {
return ScrumSecurityManager.impl().canReadTask(glideRecord);
};
//--------------------------------------------------------------------------------------------------
// can user write to <x>?
//--------------------------------------------------------------------------------------------------
ScrumSecurityManager.canWriteStoryDotProduct = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteStoryDotProduct(glideRecord);
};
ScrumSecurityManager.canWriteAnyStoryOrTaskDotState = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteAnyStoryOrTaskDotState(glideRecord);
};
ScrumSecurityManager.canWriteStoryDotRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteStoryDotRelease(glideRecord);
};
ScrumSecurityManager.canWriteStoryDotSprint = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteStoryDotSprint(glideRecord);
};
ScrumSecurityManager.canWriteProductRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteProductRelease(glideRecord);
};
ScrumSecurityManager.canWriteEpicRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteEpicRelease(glideRecord);
};
ScrumSecurityManager.canWriteGroupPermissions = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteGroupPermissions(glideRecord);
};
ScrumSecurityManager.canWriteUserPermissions = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteUserPermissions(glideRecord);
};
ScrumSecurityManager.canWriteProduct = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteProduct(glideRecord);
};
ScrumSecurityManager.canWriteRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteRelease(glideRecord);
};
ScrumSecurityManager.canWriteSprint = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteSprint(glideRecord);
};
ScrumSecurityManager.canWriteEpic = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteEpic(glideRecord);
};
ScrumSecurityManager.canWriteStory = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteStory(glideRecord);
};
ScrumSecurityManager.canWriteTask = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteTask(glideRecord);
};
//--------------------------------------------------------------------------------------------------
// methods that return a list of <x> that the user can access
//--------------------------------------------------------------------------------------------------
ScrumSecurityManager.getEpicReleases = function() {
return ScrumSecurityManager.impl().getEpicReleases();
};
ScrumSecurityManager.getGroupPermissions = function() {
return ScrumSecurityManager.impl().getGroupPermissions();
};
ScrumSecurityManager.getUserPermissions = function() {
return ScrumSecurityManager.impl().getUserPermissions();
};
ScrumSecurityManager.getProducts = function() {
return ScrumSecurityManager.impl().getProducts();
};
ScrumSecurityManager.getReleases = function(funcFilter) {
return ScrumSecurityManager.impl().getReleases(funcFilter);
};
ScrumSecurityManager.getReleasesForProduct = function(productId) {
return ScrumSecurityManager.impl().getReleasesForProduct(productId);
};
ScrumSecurityManager.getEpicsForProduct = function(productId, funcFilter) {
return ScrumSecurityManager.impl().getEpicsForProduct(productId, funcFilter);
};
ScrumSecurityManager.getProductsForUser = function() {
return ScrumSecurityManager.impl().getProductsForUser();
};
ScrumSecurityManager.getSprints = function() {
return ScrumSecurityManager.impl().getSprints();
};
ScrumSecurityManager.getSprintsForRelease = function(releaseId) {
return ScrumSecurityManager.impl().getSprintsForRelease(releaseId);
};
ScrumSecurityManager.getSprintsForUser = function() {
return ScrumSecurityManager.impl().getSprintsForUser();
};
ScrumSecurityManager.getEpics = function() {
return ScrumSecurityManager.impl().getEpics();
};
ScrumSecurityManager.getStories = function() {
return ScrumSecurityManager.impl().getStories();
};
ScrumSecurityManager.getTasks = function() {
return ScrumSecurityManager.impl().getTasks();
};
ScrumSecurityManager.getEncodedQuery = function(array) {
return 'sys_idIN' + array.join(',');
};
ScrumSecurityManager.getScrumUserIds = function () {
return ScrumSecurityManager.impl().getScrumUserIds();
};
//========================================================================
ScrumSecurityManager.getReleaseDotDefaultTeam = function (recRmReleaseScrum) {
return ScrumSecurityManager.impl().getReleaseDotDefaultTeam (recRmReleaseScrum);
};
ScrumSecurityManager.getStoryDotAssignedTo = function (recRmStory) {
return ScrumSecurityManager.impl().getStoryDotAssignedTo (recRmStory);
};
ScrumSecurityManager.getScrumTaskDotAssignedTo = function (recRmScrumTask) {
return ScrumSecurityManager.impl().getScrumTaskDotAssignedTo (recRmScrumTask);
};
ScrumSecurityManager.getScrumReleaseTeamMemberDotName = function (recScrumReleaseTeamMember) {
return ScrumSecurityManager.impl().getScrumReleaseTeamMemberDotName(recScrumReleaseTeamMember);
};
ScrumSecurityManager.getScrumSprintTeamMemberDotName = function (recScrumSprintTeamMember) {
return ScrumSecurityManager.impl().getScrumSprintTeamMemberDotName(recScrumSprintTeamMember);
};
ScrumSecurityManager.getScrumSprintTeamDotSprint = function (recScrumSprintTeam) {
return ScrumSecurityManager.impl().getScrumSprintTeamDotSprint(recScrumSprintTeam);
};
ScrumSecurityManager.getScrumReleaseTeamDotPoints = function (recScrumReleaseTeam) {
return ScrumSecurityManager.impl().getScrumReleaseTeamDotPoints(recScrumReleaseTeam);
};
ScrumSecurityManager.getScrumSprintTeamDotPoints = function (recScrumSprintTeam) {
return ScrumSecurityManager.impl().getScrumSprintTeamDotPoints(recScrumSprintTeam);
};
ScrumSecurityManager.getSprintDotTeam = function (recSprint) {
return ScrumSecurityManager.impl().getSprintDotTeam(recSprint);
};
ScrumSecurityManager.getSprintDotReleaseTeam = function (recSprint) {
return ScrumSecurityManager.impl().getSprintDotReleaseTeam(recSprint);
};
ScrumSecurityManager.getSprintDotStoryPoints = function (recSprint) {
return ScrumSecurityManager.impl().getSprintDotStoryPoints(recSprint);
};
ScrumSecurityManager.getSprintDotTeamPoints = function (recSprint) {
return ScrumSecurityManager.impl().getSprintDotTeamPoints(recSprint);
};
ScrumSecurityManager.validateSprintFields = function (sprintRecord) {
return ScrumSecurityManager.impl().validateSprintFields(sprintRecord);
};
ScrumSecurityManager.getEpicDotParentEpic = function (recEpic) {
return ScrumSecurityManager.impl().getEpicDotParentEpic(recEpic);
};
ScrumSecurityManager.getStoryDotEpic = function (recEpic) {
return ScrumSecurityManager.impl().getStoryDotEpic(recEpic);
};
ScrumSecurityManager.getSprintDotRelease = function (recSprint) {
return ScrumSecurityManager.impl().getSprintDotRelease(recSprint);
};
ScrumSecurityManager.getStoryDotProduct = function (recStory) {
return ScrumSecurityManager.impl().getStoryDotProduct(recStory);
};
ScrumSecurityManager.getStoryDotRelease = function (recStory) {
return ScrumSecurityManager.impl().getStoryDotRelease(recStory);
};
ScrumSecurityManager.getStoryDotSprint = function (recStory) {
return ScrumSecurityManager.impl().getStoryDotSprint(recStory);
};
ScrumSecurityManager.getStoryDotTheme = function (recStory) {
return ScrumSecurityManager.impl().getStoryDotTheme(recStory);
};
ScrumSecurityManager.getPhaseDotGroup = function (recPhase,column_name) {
return ScrumSecurityManager.impl().getPhaseDotGroup(recPhase, column_name);
};
ScrumSecurityManager.getEpicDotTheme = function (recEpic) {
return ScrumSecurityManager.impl().getEpicDotTheme(recEpic);
};
ScrumSecurityManager.getEpicDotProduct = function (recEpic) {
return ScrumSecurityManager.impl().getEpicDotProduct(recEpic);
};
ScrumSecurityManager.getThemeDotProduct = function (recScrumTheme) {
return ScrumSecurityManager.impl().getThemeDotProduct(recScrumTheme);
};
ScrumSecurityManager.getTeamMemberDotName = function (teamMember) {
return ScrumSecurityManager.impl().getTeamMemberDotName(teamMember);
};
ScrumSecurityManager.getStoryDotTeam = function (recStory) {
return ScrumSecurityManager.impl().getStoryDotTeam(recStory);
};
ScrumSecurityManager.getStoryDotGroup = function (recStory) {
return ScrumSecurityManager.impl().getStoryDotGroup(recStory);
};
ScrumSecurityManager.getStoryDotPhases = function(recStory){
return ScrumSecurityManager.impl().getStoryDotPhases(recStory);
};
ScrumSecurityManager.getReleaseGroupAssignmentDotSprints = function(recReleaseGroupAssignment){
return ScrumSecurityManager.impl().getReleaseGroupAssignmentDotSprints(recReleaseGroupAssignment);
};
ScrumSecurityManager.getStoryDotProject = function(recStory){
return ScrumSecurityManager.impl().getStoryDotProject(recStory);
};
ScrumSecurityManager.isAgileGroup = function(recGroup){
return ScrumSecurityManager.impl().isAgileGroup(recGroup);
};
//========================================================================
ScrumSecurityManager._getClass = function(securityManagerClassName) {
var _outerScope = JSUtil.getGlobal();
var securityManagerClass = _outerScope[securityManagerClassName];
// check that securityManagerClassName is defined, and looks valid as a ScrumSecurityManager Class
if (!ScrumSecurityManager._isValidSMClass(securityManagerClass)) {
securityManagerClass = _outerScope[ScrumSecurityManager.DEFAULT_SMCLASSNAME];
securityManagerClassName = ScrumSecurityManager.DEFAULT_SMCLASSNAME;
}
return securityManagerClass;
};
ScrumSecurityManager._isValidSMClass = function(klass) {
if (typeof klass == 'undefined') {
return false;
}
// a sample of the necessary methods
var smClassMethods = [ 'canCreateProductRelease', 'canDeleteEpic', 'canReadTask', 'canWriteSprint', 'getReleases' ];
for (var i = 0; i < smClassMethods.length; i++) {
if (typeof klass.prototype[smClassMethods[i]] == 'undefined') {
return false;
}
}
return true;
};
ScrumSecurityManager.prototype = {
initialize: function() {
},
type: 'ScrumSecurityManager'
};
//--------------------------------------------------------------------------------------------------
//ScrumSecurityManager.THEME_RELEASE = "m2m_scrum_theme_release";
//ScrumSecurityManager.THEME = "scrum_theme";
//--------------------------------------------------------------------------------------------------
//ScrumSecurityManager.canCreateThemeRelease = function(glideRecord) {
// return ScrumSecurityManager.impl().canCreateThemeRelease(glideRecord);
//};
//ScrumSecurityManager.canCreateTheme = function(glideRecord) {
// return ScrumSecurityManager.impl().canCreateTheme(glideRecord);
//};
//ScrumSecurityManager.canCreateReleaseForTheme = function(theme) {
// return ScrumSecurityManager.impl().canCreateReleaseForTheme(theme);
//};
//ScrumSecurityManager.canCreateStoryForTheme = function(theme) {
// return ScrumSecurityManager.impl().canCreateStoryForTheme(theme);
//};
//ScrumSecurityManager.canDeleteThemeRelease = function(glideRecord) {
// return ScrumSecurityManager.impl().canDeleteThemeRelease(glideRecord);
//};
//ScrumSecurityManager.canDeleteTheme = function(glideRecord) {
// return ScrumSecurityManager.impl().canDeleteTheme(glideRecord);
//};
//ScrumSecurityManager.canReadThemeContents = function() {
// return ScrumSecurityManager.impl().canReadThemeContents();
//};
//ScrumSecurityManager.canReadThemeRelease = function(glideRecord) {
// return ScrumSecurityManager.impl().canReadThemeRelease(glideRecord);
//};
//ScrumSecurityManager.canReadTheme = function(glideRecord) {
// return ScrumSecurityManager.impl().canReadTheme(glideRecord);
//};
//ScrumSecurityManager.canWriteStoryDotTheme = function(glideRecord) {
// return ScrumSecurityManager.impl().canWriteStoryDotTheme(glideRecord);
//};
//ScrumSecurityManager.canWriteThemeRelease = function(glideRecord) {
// return ScrumSecurityManager.impl().canWriteThemeRelease(glideRecord);
//};
//ScrumSecurityManager.canWriteTheme = function(glideRecord) {
// return ScrumSecurityManager.impl().canWriteTheme(glideRecord);
//};
//ScrumSecurityManager.getThemes = function() {
// return ScrumSecurityManager.impl().getThemes();
//};
//ScrumSecurityManager.getReleasesForTheme = function(themeId) {
// return ScrumSecurityManager.impl().getReleasesForTheme(themeId);
//};
//ScrumSecurityManager.getEpicsForTheme = function(themeId, funcFilter) {
// return ScrumSecurityManager.impl().getEpicsForTheme(themeId, funcFilter);
//};
//ScrumSecurityManager.getThemesForUser = function() {
// return ScrumSecurityManager.impl().getThemesForUser();
//};
//--------------------------------------------------------------------------------------------------
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-29-2020 09:29 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-29-2020 09:29 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-29-2020 09:30 AM
hi Sachin,
Thanks a lot.
where is the script related to this restrictions/conditions at script side.
kindly let me know about it.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-29-2020 09:45 AM
This is implemented in script include Agile2SecurityManager in function getStoryDotProject() like below
update code like below for getStoryDotProject() function to see all projects
getStoryDotProject: function(story){
var projectId;
var qualifier = 'sys_class_nameIN'+PPMRoleClassMapper.getClasses('project', gs.getUser());
if(JSUtil.notNil(story.demand)){
projectId = story.demand.project + '';
qualifier = 'sys_idIN'+projectId;
}
qualifier += '^execution_typeANYTHING';
return qualifier;
},
But, i do not suggest modifying OOB objects which may cause issues during your future upgrade.
Why do you need to NON waterfall projects in stories? Story is part of AGILE, SAFe framework which needs agile, hybrid projects
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-29-2020 09:48 AM