how to select "Sprint record" from sprint field in Story

Sironi
Kilo Sage

Hi,

how to select sprint in sprint field in Story. sprint field referring script include.

I just impersonated the project manager. He is able to select sprint records but his team is unable to select a "Sprint" from the sprint field and as a  ha is the only one that can.

is it Role access issue ?

 

i didn't understand what is the logic here, how to get,access to select spring on Story.

find_real_file.png

find_real_file.png

 

 

OOB script include:

 

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;
};

//========================================================================

ScrumSecurityManager.getStoryDotSprint = function (recStory) {
   return ScrumSecurityManager.impl().getStoryDotSprint(recStory);
};



//========================================================================

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'
};

1 ACCEPTED SOLUTION

No need give scrum_admin role instead you can give 'scrum_sprint_planner' role. Normally 'scrum_master' will add stories to the sprint while sprint planning. 

Highlighted script in above post is using 'ScrumSecurityManagerDefault' script include.

'ScrumSecurityManagerDefault' script include is the default implementation for the ScrumSecurityManager class.

In this 'getStoryDotSprint' function defined to get the list of all sprints associated with story's release/product.

find_real_file.png

Hope this helps!

If I have answered your question, please mark my response as correct and/or helpful.

Thanks,

Suseela P.

View solution in original post

18 REPLIES 18

Onkar Pandav
Tera Guru

Hi,

Try selecting assignment group. You may find sprints belonging to that group.

Yes, we already selected Assignment group, still unable to select sprint.

any suggestions

already selected assignment group.