Azure DevOps Services permission for work item templates - tfs-workitem

We are using multiple project teams in a project with seperated boards and templates. Until last week this construct works fine for us. Now a bunch of users would like to create workitems based on a template in another projectteams board. (users aren't members of the team). They can't see the templates, but the creation of a base workitem works as expected. Is there a seperated permission for read/edit templates of a projectteam?
I nearly checked every team based permission section including the area based permissions. Even the microsoft documentation didn't deliver the wished infomation...
So maybe someone out here can help us ;)
Thanks in advance

In order for your team members to have access to apply the templates you've created for them, they'll need to be both:
A contributor within the project that you've created the templates within.
A member of the team in which you created the work items.
This is nestled within Microsoft's Work Item Template Documentation under "Prerequisites". You can find it here:
https://learn.microsoft.com/en-us/azure/devops/pipelines/process/phases?view=azure-devops&tabs=yaml&viewFallbackFrom=vsts#timeouts

Related

Controlling custom code usage in camunda modeller

I intend to use Camunda for my product. While all camunda abilities match with my needs, i have a concern about camunda modeler controlled usage. Following are my needs in modeller
Is it possible to create custom domain specific tasks which i can simply drag-drop during modeling. It should be possible to define custom properties needed by this custom state
Can I somehow control/prevent use of custom java code/scripts by person modeling process. I want to restrict use of only my custom tasks, so that we don't end up with lot of scattered code across processes.
Can experts share views to achieve these targets?
Recently Camunda Modeler (I am using release 1.4.0, published on October 2016) has been extended to allow json template installation, which can meets all of your needs (if I understand them correctly), or at least the most of them.
You may find documentation for templates build here. The documentation is in progress, but what is already published I think it is quite clear. Briefly you have to
list all the elements you want to customise (user tasks, general tasks, service tasks, listeners, links and so on)
find out the json representation (explained in the short documentation) of each element
insert all the jsoned elements in a file (for example: myElements.json)
put the file in a specific modeler folder (see below)
close and restart the modeler
For example if you have installed the modeler in C:\Tools\camunda-modeler\, the folder to publish the file into will be C:\Tools\camunda-modeler\resources\element-templates (note that resources will be already present, but element-templates will not; it will have to be created).
If all will be right the modeler will start without any error and you will find a new dropdown list selector on the right panel (as stated in the documentation) for all the elements for which a template has been defined. Generally you have to classify each templates as either a user task, or a service task, or generic task and so on, so that when you want to use it you have to start from the generic element. For example, if you prepare in the json file 2 templates of kind of user task, say userTask1 and userTask2, if you want to insert in your new process userTask1 you have to
pick up an empty userTask
and choose from the element template selector on the right the voice userTask1, so that the empty user task becomes quickly the userTask1 (with all my custom properties with my default values)
that's it
To sum up, you may build templates with custom id and name (editable), with custom properties (editable or not, or even hidden), with eventual input/output parameters. So you may have default values properties and also tasks with simplified selections or without any selections at all.
You may find good starting examples to build your own templates at this GIT repository.
Hope that is enough to understand.

Sitecore publishing restrictions by language

In Sitecore, the publishing restrictions access via the dialog are stored under the inherited Publish base template - for example, the Item-level Publishable checkbox is stored under __Never publish.
I had expected to be able to restrict publishing by language, but the fields above are shared between languages so apply to all.
Obviously I could unshare the fields, but I'm not sure what other implications there may be. Has anyone tried this or implemented another solution?
You can restrict the publishing of an item by language, but it is also by version. These are stored in the Lifetime field section, rather than the Publishing section.
This will allow you to mark a specific version in a specific language as unpublishable, however it won't affect all versions in that language.
Other than that, an option would be to add a new field to a base template that is Unversioned, perhaps "Publishable In Language". You could then look into adding a new step into the publishItem pipeline that takes this into account when determining whether a version is to be published - this would possibly take place just after the DetermineAction step, where Sitecore uses its own logic to determine if an item is to be published. Unfortunately that class isn't easily overridable and uses private methods, so it's not a great candidate for extension itself.

Replacing the design of a Lotus Notes template with that of a database (or making the database a template)

Short version:
In Lotus Notes, is it possible to replace the design of a template with the design of a regular database? I tried to make the database a template, so it would show up in the Replace design dialog, but it does not.
Long version:
Let's say I have a template called NewsTemplate.ntf on my dev. server which replicates to staging and prod. servers on demand. I do all development work in a database DevNews.nsf on the dev. server, which enables me to easily test the application in the web browser during development. When I want to deploy changes, this starts with manually copy-pasting changes from DevNews.nsf to NewsTemplate.ntf. (Yuck...) I can use the comparison tool in Domino Designer to compare the two and copy changes file by file, but this feels overly cumbersome. What I want to do is simply to replace the design of NewsTemplate.ntf with that of DevNews.nsf.
In the Replace design dialog only templates are listed, so it seems I have to make DevNews.nsf a template to do this. I checked the Database file is a master template checkbox in Application properties and entered the template name "DevNewsTemplate". However, it still does not show up in the list of templates in the Replace design dialog. I notice the database still has the file extension nsf. Is this the problem? Is there some other approach I should rather be taking to copy design changes from News.nsf to NewsTemplate.ntf
Bonus question 1: Can a template contain documents and work just like a database, only it is also a template which is used to distribute design to other templates/databases?
Bonus question 2: This site mentions templates and master templates, but it does not really explain what the difference between them is. What is the difference between a template and a master template? How do I make a template? How do I make a master template?
Edit:
Let's say instead of the single News.nsf database on the dev. server, there are two development databases called News1.nsf and News2.nsf, because there are two developers who need their own database to work in. Each developer has his News*.nsf (which resides on the dev. server) synchronized with an on-disk-project on his own PC, which is under source control with Git. The two developers' git repos keep in synch by pushing to/pulling from a central Git repo, so News1.nsf and News2.nsf are indirectly synchronized via this Git repo.
Each developer needs to be able to copy changes from his News*.nsf to NewsTemplate.ntf. The solution suggested by Panu Haaramo (using Refresh design) requires me to set NewsTemplate.ntf to inherit design from "DevNewsTemplate", which is the master template name I set for News1.nsf. Obviously I cannot use the same master template name for News2.nsf, since it resides on the same dev. server as News1.nsf. How can I interchangeably copy design from either News1.nsf or News2.nsf to NewsTemplate.ntf?
This figure should help with clarification:
The "Replace design" dialog filters by extension. It only shows "Templates".
Templates are defined as databases with the extension "ntf". They do NOT have to have template name assigned. Master Templates DO have a template name (properties of the database) and mostly are ntf files but they can also be nsf- files (as you already realized).
That is the difference between templates and master templates.
In Addition "Templates" appear with a blue database- icon at the top of the list in the replace design- dialog, "Master Templates" have a green template- icon and appear below the list of "Templates".
Therefor the list is divided in two separately sorted parts.
Databases created from templates loose their connection to the template after design replace, a "design refresh" afterwards is not possible anymore, for databases created from Master Templates you can choose whether to "Link" it to the template or not...
If you manually enter the Template- Name of your database (nsf or ntf), then you can refresh design (via menu or using a load design -f yourfile.nsf on the server console).
SO the answer to your main question is (as you already found out): Yes, a template can inherit its design from a database.
Now to Bonus 1: ntf- files are exactly the same as nsf- files (structurewise).. You can use them to store documents, profiles, whatever you want.
You can not:
Open an ntf in a browser
See an ntf in the "Open Database"- Dialog in the Notes- Client
(Admin relevant only) Compact an ntf using placeholders without using -* as Parameter...
That is the only difference.
Having documents in a template can be a bonus:
Every database you create from a template, contains all documents that have been in the template at that time.
Like that you can "populate" some default configurations etc. for every new database you create. This copy only occurs ONCE when creating new databases, it does not occur with design replace / design refresh.
Response to your Edit:
Just use "replace design" and give both nsfs a different template name. If you don't select "Inherit Future design changes" in the dialog, then the "Inherit design from master template - Template name" property of the ntf will not be set, it will not be "linked" to any of the development databases..
In fact: this is wrong, as I myself wrote above... NSFs will never appear in the "Replace Design"- Window... So the right solution for you will be:
News1.nsf has the Template name "News 1 Template"
News2.nsf has the Template name "News 2 Template"
If Designer 1 now needs to update the template then he does the following steps:
Enter "News 1 Template" in the "Inherit Design From Master Template" field of newstemplate.ntf
Use "File -> Application -> Refresh Design
Remove TemplateName from newstemplate.ntf
With Refresh Design you can replace design from nsf to ntf.
Bonus 1: Not really because you cannot access ntf with a browser.
Bonus 2: The db property is called "Master template". In the Admin help you linked using a "template" means refreshing the design manually and "master template" means using the Designer server task to refresh the design.
To your edit: I think you need to have the master template field empty for both dev databases and set it when you want to refresh the design.

Creating a custom Source for Sitecore Template

I am very new to Sitecore, and have to customize a Template for a MultiLine Entry to have different source (List of Items) depending on the Role of the Logged-In Admin. For example the site can have multiple different Admins and each one can add/remove data for a of the page section, so
The content for MultiList of Website-1 (Edited by Admin-1) will be different from Website-2(Edited by Admin-2). So the data for Admin-1 and Admin-2 is at the following locations:
Admin-1: sitecore/content/Data/Features/Admin-1
Admin-2: sitecore/content/Data/Features/Admin-2
Now for the Source part of the Template, I can enter the path for the data: ex-/sitecore/content/Data/Features/ and that will include all of the Items in that folder including both subfolders of "Admin-1" and "Admin-2", but what I really want is when the Admin-1 logs I want the list to be populated only with "Admin-1" content, and vice versa. Is that even possible? I am not sure what to do about that.
Ok, your question was a little ambiguous hence the reason I asked the question.
your data structure is currently a little incorrect in my opinion. I would set it up as follows:
-sitecore
--content
---common (shared between both sites)
---site-1
----home
----settings
----data
---site-2
----home
----settings
----data
Now in your template set the datasource as:
query:./ancestor-or-self::*[##templatename='Site']/data/features/*
This will restrict the options for your multilist to only items in the data folder of the current site. Obviously change ##templatename to whatever yours is.
As for the permissions, you should create 2 roles, Admin-1 and Admin-2. For both roles break the inheritance on /sitecore/content node and then give Admin-1 read/write/create/delete access on /sitecore/content/site-1 and Admin-2 the same on Site-2. Make sure you do this for roles. Then add the necessary users to those roles. If a specific user needs access to both sites then add them to both roles. Use /Security Tools/Security Editor.
I would not call the roles "admin" since that can lead to confusion between the Sitecore Admin setting. Instead, I would call it "Site1ContentEditer" and "Site2ContentEditer". If you introduce workflow this gives you the opportunity to follow the naming convention, e.g. Site1ContentApprover, Site1ContentPublisher etc.
I'm a little rushed right now, but let me know if you need more info.
EDIT: This should give you more info on multisite implementation: Building multisite solutions in Sitecore

Dynamic Dashlet in Alfresco Share

As a user experience requirement, I need to create a dynamic dashlet.
According to what I need, a dynamic dashlet would be a special dashlet that can load inside "almost every content". I say almost every content because of course this kind of dashlet would have its own limits of course. At the same time, it would be nice that the dynamic dashlet has the ability of being maximized, what in fact would show the real content (for example, an Alfresco page).
Perhaps my question is ambiguous, but the intention to give the user the chance of check execute common functionality inside that special dashlet, this way the user doesn't have to leave the dashboard improving the user experience as a consequence.
Did anybody have had such requirement or similar before? Would that be possible to do?
I would like to know some tips and suggestions in order to find out the right approach.
Thanks in advance.
You could try re-using the webview Dashlet which can also show another page.
The only problem is that not every part which is visible in Share can be accessed via url. Sure the template gets build up by regions of *.ftl's but that doesn't mean you can 'just' view the *.ftl.
The only 'dynamic' thing I see is making a custom page template which shows one or couple of regions which are dynamically build by the url.
e.g. pointing to share/page/customPage?region1=documentlibrary should insert the documentlibrary template within that page and thus it can be shown within the iFrame of the webview Dashlet.
Actually the documentlibrary is a bad example, because there is already a portletMode available for Liferay. But hopefully you'll get my point.