Project record not showing

Sironi
Kilo Sage

Hi,

can any one help me 

when i am create a stories for particular project that project record not showing in list

find_real_file.png

 

find_real_file.png

 

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();
//};
//--------------------------------------------------------------------------------------------------

 

1 ACCEPTED SOLUTION

sachin_namjoshi
Kilo Patron
Kilo Patron

You will see projects only which are NOT waterfall.

 

find_real_file.png

 

 

View solution in original post

11 REPLIES 11

sachin_namjoshi
Kilo Patron
Kilo Patron

You will see projects only which are NOT waterfall.

 

find_real_file.png

 

 

hi Sachin,

 

Thanks a lot.

where is the script related to this restrictions/conditions at script side. 

kindly let me know about it.

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

find_real_file.png

 

 

Thanks a lot for your Quick help. and Great finding.