We use Office365 and am looking to create a number of equipment inspection checklists where a user would go to a One-Drive link, open a checklist template, use the checklist during equipment inspection and make comments, then upon completion save the document with a machine generated name (apparatus and date-based) to a folder on One-Drive. In addition, if an item(s) on the checklist is out of spec, a separate email will be sent to a specified email address with info about the defect.
I have looked at MS Forms and it seems very clunky for this application as there are many items on the checklist. I could create it as an macro-automated Word document, but that seems a bit old-fashioned.
What is the right way to do this? Are there any examples of this that I could learn from? Thank you.
You should build this as a standard custom list in a SharePoint site. Each of your checklist items becomes a separate field in the list, and thus every New entry in the list is one complete checklist. I know this seems a little sideways since your checklist items are columns -- but the New Item form and Edit form present the fields for that item in a vertical fashion making it appear more like a check list that the user can interact with. This then gives you a table listing of everyone's checklist that you could filter and sort and even fire Power Automate Flows based on statuses. Once complete, you can use a Flow to generate a Word document or PDF document and save it in a library or OneDrive.
You can provide users with a hyperlink directly to that list's entry form (e.g. https://yourtenant.sharepoint.com/sites/checklistsite/lists/checklist/NewForm.aspx). If the default entry form does not meet your needs, you can always customize the list form with PowerApps.
Related
In Lotus Notes/Domino, we have the functionality of Readers fields, which I know all about. These say who CAN see a document. I would like to know if there is some way (may be undocumented) where you can have that type of thing that says specifically who CANNOT see a certain document.
We have an application for HR, and some of the documents in there reflect negatively about certain people (complaints, for example) and everyone who has access to the database currently can see every document. I would like to hide this type of document from that specific person. I have not enacted any Readers fields on any documents in question.
It would be really nice to have a way to keep that current setup, but insert a factor of who to HIDE the document from like Readers fields do.
I know there are undocumented features people have learned about over the years, and wondered if anyone knows of such a thing that I can use.
Create a role called [ReadAll].
Create a Group called HR Readers and one called HR Restricted.
Add the people who can't read documents to the HR Restricted group. Add all others to HR Readers.
Add these two groups to the ACL and give the HR Readers group the [ReadAll] role.
Add a readers field that is computed to "[ReadAll]" on the documents you want to prevent the people in the "HR Restricted" group to not see.
No, there is no feature that does what you want. Not on a user-by-user basis. You can play with groups and roles, as suggested by Rob Mason, but those groups and roles have to be pre-determined. We asked for Non-Readers fields (at least) 20 years ago so that we could do what you want, but Iris, Lotus, IBM, and HCL never did it. I presume that either (a) it's hard, or (b) there isn't enough demand. Or both.
To hide content from specific people, you can use hide-when formulas within a form. I.e., the hide-when formula on one or more sensitive fields would be set to
#isMember(#UserName; RestrictedUsers)
where RestrictedUsers is a field that contains the list of people who cannot see the data in the fields.
But this is not real security. A user can see the document in views, and can see the hidden fields by bringing up the document properties dialog, or with a tool like NotesPeek. If you're talking about a Domino web app, and users don't have Notes clients and you have strictly-managed desktops so you are sure that is the case+, then it kind of sort of works. Admins and developers, though, would probably have the clients and would be able to see fields in documents that they're not supposed to.
I believe if I simply compute a Readers field to say something like:
whoToHideFrom:="John Smith/org";
#Name([ABBREVIATE];#Username) != whoToHideFrom
I will try this and mark this as successful or not successful after I test it
Is it possible to restrict part of a smart to only a certain user group and if the user trying to edit the smart form content is not of that group, then the user cannot change that portion of the content?
Example:
Let's say I have an Employee smart form with fields for EmployeeBio, EmployeeHireDate, and EmployeeDept. Would it be possible to allow the general author user group to be able to edit the EmployeeBio field, but restrict the EmployeeDept and EmployeeHireDate fields to only an HRAdmin user group?
If it helps, I am using Ektron 9.00 SP3.
As far as I know, you either can edit a content block or you can't; there isn't a way to subdivide permissions on a per-smartform-field basis.
What you can do, is group the "restricted" fields into their own smartform, and then reference that via a content resource selector field.
So your Employee smart form might look like this:
/root/txtName (not in your example, I know...)
/root/rtfBio
/root/cresHRID
Side note: I'm using hungarian notation on my field names here. txt indicates a plain text field, rtf indicates a rich text (html) field, and cres indicates a content resource selector.
Then you could have a second smart form... let's call it "EmployeeHR", and it would have the following structure:
/root/hireDate
/root/txtDepartment
That would, in theory, work. However, I must say that I really don't like splitting up this particular type of data in this way. First, department feels like it would function better as a taxonomy to which you could add the content block. Second, it feels like this type of data would be better served by housing it outside of ektron and then using a DxH (Digital Experience Hub) connector to bring the data into Ektron. This way the external system could handle permissions at a more granular level, and you would still have access to the data within Ektron for use elsewhere within the site.
UPDATE
As I ponder this question some more, another option comes to mind. You could write an ASPX page or UserControl that checks to make sure you're logged in and a member of a particular group before presenting you with a custom edit screen. The following code will check if the current user is a member of the admin group; you can swap out a different group id to fit your needs:
// Not sure off hand which of these using statements provides access to EkConstants...
using Ektron.Cms;
using Ektron.Cms.Common;
using Ektron.Cms.Content;
var userGroupApi = new Ektron.Cms.Framework.User.UserGroupManager();
var isInGroup = userGroupApi.IsUserInGroup(currentUserId, EkConstants.g_AdminGroup);
This could be implemented as an ASPX page on your site, or it could be implemented as a widget and placed on the user's Smart Desktop tab of the workarea. Either way, you have a lot of options for getting what you want, just nothing "out of the box".
Before I ask my question, i like to make clear what I am trying to achieve.
I have two modules i created in Sitefinity "Jobs" and "CareHomes". The CareHomes module contains fields such as "Address" , "Location" and several other information that identifies the CareHome while the Jobs module is meant to allow the client post jobs for CareHomes.
I also have a classification field/taxonomy which is also called carehomes this taxonomy is just a list of all the CareHomes operated by the client. This taxonomy field is available in both the CareHomes module and Jobs module
Now this is my problem: I want the to display information from the CareHomes module such as "Address" "Location" in the Jobs widget. That is I want a situation where when the client fills the Jobs module form and selects for example "Carehome1" in the carehomes taxonomy,I want to be able to retrieve the "address" information from the CareHomes that also has the same "Carehome1" taxonomy selected.
I know this is a forum with many professionals and my question may come across to some as silly, however I would appreciate if you are nice in answering my question or pointing me to a helpful resource because I am a newbie to Sitefinity and have only just started using it for about a few weeks.
You have a couple options, if you're stuck on 6.3 you might want to look at a dynamic items field control for the Jobs module that allows you to associate a Job to a CareHome. You can create the field using Sitefinity's Visual Studio plugin called Thunder and add it to your Jobs module. More info here. You would then have to use the api to find the associated CareHome information in your Jobs widget. There is boilerplate code to look this stuff up in module builder under Administration -> Module Builder -> {You Module} -> Code Reference, but it can be a pain.
The other option that I haven't used yet but saw in Sitefinity's last webinar is only available in Sitefintiy 7 and its the new Related Data field that is available to all custom content items and most built in content types. So you'd have to do an upgrade but the the api for getting related items appears to be much easier to work with, information on that is here and the webinar that shows the new features of Sitefinity 7 is here
I'm implementing a document management site on SharePoint 2010. Each document that is stored on the site, is tagged with one or more geographical locations indicating what the content of the document is about. I have implemented this using a Managed Metadata field that is bound to a term set in the term store containing all possible locations. The locations are organized hierarchically, so let’s say first by country, then by region, city etc.
I want to be able to quickly locate documents in a document library for a given location. SharePoint 2010 offers 3 out-of-the-box ways to accomplish this: (1) filtering on the column header, (2) using metadata navigation, and (3) using key filters.
So far, so good. Now this is where things are getting tricky. Each location in the term store is identified by a number of different labels. So each location has a default label and an average of 3 or 4 additional labels (synonyms). For example: a location could be referred to as “Amsterdam”, “S-123” and “W-456”.
I want to be able to:
Filter the document library by using any of the labels including the
synonyms
Include all locations that are below the location that he/she
specifies, in short: to recursively set the filter
Going back to the 3 out-of-the-box options:
Filtering on the column header; does NOT support use of synonyms and
does NOT support recursive filtering
Using metadata navigation; does NOT support use of synonyms but does
support recursive filtering
Using key filters; does support use of synonyms but does NOT support
recursive filtering
Can you think of a creative solution that meets my requirements using the out-of-the-box controls? And if not, what options do I have for full customization (custom filter web part, extending out-of-the-box web parts etc.)?
Hope to hear from you!
Regards,
Erik
I think I might have an answer. This works in our System - SharePoint 2010.
In you SharePoint instance, create your View of the list, but don't define any Filters. Save the View.
Open SharePoint Designer 2010 and navigate to the list and view.
In Design view, you then need to select the "WebPartPages:XsltListViewWebPart" (you may need to click one on the column headings to get the grey page elements to appear).
At the top of the screen, select the Options Ribbon tab, a green List View Tools upper-tab appears.
On this ribbon, far left, select Filter.
Define you filters.
It is tricky and not a smooth UI. Note the Group button allowing you to create groups of AND and OR elements. (I'd post an image here of the UI, but I no not have the experience points yet.)
Good Luck.
I am trying to hide a column in SharePoint 2010 list based on Users.
When user submit a request the status column should be hidden and the value set as pending.
When Admin logged in he/she should able to edit the status.
Is there any way I can achieve this without writing CUSTOM CODE.
Any help would be appreciated.
There are several ways to archive this without programming. The easiest is to Create a new view for the list or use webpart to view the content for the other users.
If you don’t mind, you can try the third-part tools, such as BoostSolutions Column/View Permission, Infowise Smart List Pro.
They are all good tools and can hide columns based on the conditions.