Use SharePoint 2010 workflow to add permissions to a document library - sharepoint-2010

I'm trying to create a register, in a way, so that users (who initially have read permissions) on a SharePoint site, can add themselves to a group which has contribute permissions to a document library. This is something similar to what Moodle can do, where users can enrol themselves on a course.
My thinking is that I'd setup a list that allows all users to have contribute permissions. A user would then add a very basic list item which would start a workflow. The workflow would add the said user to a group that already has contribute permissions to a document library.
If it helps, here's the reason:
We have a lot of students accessing our SharePoint site (well over 2000), and all students are under a general AD group. To use the SharePoint Learning Kit (and therefore make use of SCORM content), there has to be a SharePoint group with specific rights, and that group should, ideally, contain individual users rather than AD groups (depending on the size of the AD group). Unfortunately, there isn't a way to get our learner record system to expose a field which SharePoint could 'see' which is why all students are under a general AD group. Because there are so many students (some with similar names), it would be a hard task to get lecturers to filter through each student to add them manually to the SLK group that's needed. Which is where this idea comes in. A student could enrol themselves into the SLK group and get access to the SLK material.
And breathe.

There are a lot of possible ways to do this. For example you can create custom timer job which will run every 15 minutes and synchronize sharepoint group with list you mentioned. If you want to stick to workflow way you can create custom workflow action which will add user to sharepoint group and then create workflow which uses this activity using sharepoint designer.

Related

Is there a way to create multiple google classroom accounts in a multi tenant application?

I am looking to create a multi-tenant apps that allows individual users to create their own google classrooms through my app. Now, when looking at the existing developer reference of google classroom api, I see only ways to manage the contents of a single classroom be it courses, students, teachers or study material. What I am looking for is a way to create multiple classroom accounts for separate users. Is this possible in any way?
Through the API by creating a course you are creating a classroom that can be managed by your organization, if your approach is to create classes or courses how it is called in the documentation, by the end user, then using the courses.create should be the API needed to perform this action.
Reference:
Method: courses.create
Creates a course.
The user specified in ownerId is the owner of the created course and added as a teacher. A non-admin requesting user can only create a course with themselves as the owner. Domain admins can create courses owned by any user within their domain.
Now, with this in mind, if you want to build an app that will serve several domains and allow them to create classes on behalf of their Teachers I would suggest checking the different scenarios to analyze what would be the best for you.

How to assign activities to users inside of teams?

The issue I'm having in Dynamics CRM 2013 is the ability to assign activities or appointments to a team and have those cascade downward into individual users. The end goal here would be after assigning a lead or activity to a team, the users within that team would receive notifications, emails, etc. and those records would integrate with their 'my' sections of CRM.
The issue I see with this is that only 1 'Owner' can be set for a new record in all areas of CRM, and the 'my' sections are based off of the Owner. Therefore the users within the team won't be notified.
We are currently using a service to pull from an existing database and populate CRM, assigning new leads to a Team which contains multiple users.
Does anyone have a recommended method to do this?
Thanks for your time.
Either give the users a view of "Leads owned by Teams of which I am a member" or possibly use Queues, which are pretty much designed for the scenario you describe.
New items assigned to a Team will be added to the Team's Queue. Users can see all Queue Items not yet being worked on (from all Queues they have access to, including all Teams they are members of). A user can "work on" an item to show they are dealing with it so it no longer appears in this list of items to be worked on, and instead appears in their own list of items they are working on. A user can either complete the item or 'release' it back into the queue.
Queues can contain items of different types, eg Leads, Tasks, Cases etc.

How to create an Approval Workflow associated to a List in SharePoint 2010?

I was recently tasked with taking over the SharePoint administration for my company, but I have very limited SharePoint experience. I'm using SharePoint 2010.
I have a List with a few built-in columns (like Status, Assigned To, etc) and I'd like to perform a few actions when a new List item is created: change the Status and Assigned To columns of the List item, send out an email, and then create a task for the user's manager to approve it. However, in SharePoint Designer, I cannot figure out how to create a Reusable Approval Workflow and associate it to a List, or a List Workflow and add an Approval Task to it.
If I create a Reusable Approval Workflow, when I try to use the "Set Field in Current Item" Action, I don't have any of the List Columns available (to set the Status, Assigned To, etc).
And when I create a List Workflow, I can access the columns for the list (Status, Assigned To, etc) but I can't figure out how to make the new List item go through the Approval process.
So my question is: how do I Associate a Workflow to a List, change some of the List column properties, and create an Approval Task for the Manager when a new item is created?
Am I missing something here or am I not approaching this correctly?
The easy way is just opening your site with designer and configure the approval workflow from there. You can select the list and make all the changes. I would give you a step by step guide, but some did this awesome article, so check it out http://plexhosted.com/billing/knowledgebase/226/How-to-create-a-simple-approval-workflow-in-SharePoint-Designer.html
I discovered the answer to this question on my own. It's due to the way SharePoint handles Tasks during a workflow. I was using the "Assign a Task" or "Assign a To-Do" when I needed to use COLLECT DATA FROM USER. This will return the Id of the task, which can be used later to retrieve the user's Approval or Rejection.
Did you end up creating a custom workflow to do all tasks yourself?
I have also tried a List WorkFlow and a Reusable Workflow and started by copying the "Approval - SharePoint 2010" workflow as a model in both cases. The caveat then is the users are tied to completing both the task and workflow items that are created.
An approver wants to receive the email to Approve or Reject a request on a Calendar from the Approve/Reject View in SharePoint and let that be it. They do not want to track tasks on Approval.
A requestor only wants to receive an email that their request was Approved or Rejected and enter another for a different time if the initial request was rejected.

Corporate login solution

Imagine a situation where a large corporation wanting to give their users access to a website, without having to individually register each of their users with the target website.
EDIT: Registrations to the website are paid subscriptions, so normally users would pay and get their accounts activated via support line (or it happens automatically). Corporate would want to purchase a bulk subscription, and add/remove the users under that, subject to a maximum limit, so the individual users don't have to go through the hassle.
Users should still have their individual accounts with the website(instead of a single account used by all users) so that they can have their preferences saved, etc.
(Prefer a solution where most of the implementation happens in the website side)
Are there any accepted patterns, solutions for this kind of scenarios?
I thought of if we could use OAuth(Yes, I know it's authorization,
but may be we can use it as an authentication tool as well, right?),
or OpenID like protocol. But the corporation does not have such
mechanism exposed to the outside. Are there any "off the shelf" kind
of products which we could use to create a OAuth/OpenID
implementation against an existing user base, lets say
ActiveDirectory.

Automate Opening Multiple Calendars in Outlook

I have a situation where an office just created a couple of dozen shared meeting room calendars for all of their office meeting rooms. There are about 100 or so employees. The plan right now is to send a document around to all of them explaining how to add all of these shared calendars to their outlooks. We are running a mixed environment with some outlook 2010 and some 2007 clients and the exchange server is 2010. IS there anyway to "push" all those calendars out automatically from exchange or is there a VB script that we could run on each computer to automate the process of all 100 people adding dozens of calendars?
My recommendation is don't!
When you open your copy of Outlook, there is a pause while Outlook synchronises everything. One of the things it has to synchronise is any calendars. This can be a slooooow process particularly with busy calendars which I assume your meeting room calendars will be.
I have experienced slowdowns when utilizing more than 12 calendars in shared mode if the access is higher than reviewer. However, I have created my own workaround. Don't use direct booking. Use an auto-attendant based access.
If you want many people to be able to alter the events, then you can do so by checking out the following:
Situation: When allowing multiple people to access and send the same event, you give them access to one another's account in most cases. This is unacceptable by security standards.
The fix:
Create an equipment calendar that can be used as a Department Calendar. This is essentially the Exchange version of the corkboard calendar. Everybody can add notes and send the updates through from this calendar. How? Follow this paradigm: Everybody is a part of some grouping for security. This security grouping in AD is Universal. In Exchange you tie a Distribution list to the Security Group that's in AD. Now you can email the group. The group is the department.
The calendar you create as an equipment calendar will have some extra functions built in, right out of the box. Using a shared calendar or folder in public listing, you'd have to script it all yourself. Grant the group (not a single user) full access, and send as.
For the delegate, only the managers of the group or calendar (which could be a separate group that you set up to include a receptionist and the manager for scheduling purposes). Allow the boss to auto-book, along with the receptionist. The others do not.
Set the recurring policy and other policy settings. Let nobody book out of policy. This is not a room, it is a cork board. When people don't follow the rules, they can lose access. Grant access to the Distro group to the boss and receptionist. Then, allow them to add anybody on premises that's in the department. Now you have the calendar set up.
When they need to lock an appointment for editing, they go to the receptionist and have them book it, Sending it As their own personal ID, or go to the boss and have that person do it. If it's a team shared meeting that will be noted and continually edited by all, you have anybody book it and send as the cork-board.
Since they all have full access to the cork-board, they can edit the calendar, and since they have send as, they can send the updates to everybody. Now you just add the group as a recipient and they all get an invite. Set them up with sync, and they'll always be able to respond.
Have the responses marked read then autoredirect to the receptionist who can remove those who are busy from the attendees. Now you know who's at the meeting. Anybody can add themselves by clicking Copy to My Calendar, and they'll show up as an attendee, forwarding their response to the receptionist, who can make any other arrangements necessary. And so on.
If you make sure that the Calendar attaches the name of the booking ID to those events that are booked from outside it (receptionist and boss), they'll know which events they shouldn't delete. Want to forgo that ability? Script a change in their access to the calendar, set the Calendar itself to be able to EDIT OWN, DELETE OWN. Set all but manager and reception to Edit OWN, Delete OWN. Set Manager and reception to Owner access.
Now they can all still edit and send using the calendar, but only the manager and Receptionist can actually lock events.