#FIXME: not used, delete

def initPerms(request):
	ClientPermissions.objects.update_or_create(action="importEdgeList", iown=True, permitted=True)
	ClientPermissions.objects.update_or_create(action="importEdgeList", iown=False, permitted=False)

	ClientPermissions.objects.update_or_create(action="importAdjacencyList", iown=True, permitted=True)
	ClientPermissions.objects.update_or_create(action="importAdjacencyList", iown=False, permitted=False)

	ClientPermissions.objects.update_or_create(action="importGXL", iown=True, permitted=True)
	ClientPermissions.objects.update_or_create(action="importGXL", iown=False, permitted=False)

	ClientPermissions.objects.update_or_create(action="exportPDF", iown=True, permitted=True)
	ClientPermissions.objects.update_or_create(action="exportPDF", iown=False, permitted=False)

	ClientPermissions.objects.update_or_create(action="exportGXL", iown=True, permitted=True)
	ClientPermissions.objects.update_or_create(action="exportGXL", iown=False, permitted=False)

	ClientPermissions.objects.update_or_create(action="inviteToCollaborate", iown=True, permitted=True)
	ClientPermissions.objects.update_or_create(action="inviteToCollaborate", iown=False, permitted=True)

	# NOTE: in order for layout permissions to be consistent, both mapLayout and setMapAttribute must agree.
	# That's because the first is for the request for server layout, the second for client echoing back of the layout.
	ClientPermissions.objects.update_or_create(action="mapLayout", iown=True, permitted=True)
	ClientPermissions.objects.update_or_create(action="mapLayout", iown=False, permitted=True)

	ClientPermissions.objects.update_or_create(action="setMapAttribute", iown=True, permitted=True)
	ClientPermissions.objects.update_or_create(action="setMapAttribute", iown=False, permitted=True)

	ClientPermissions.objects.update_or_create(action="putNodeInCluster", iown=True, permitted=True)
	ClientPermissions.objects.update_or_create(action="putNodeInCluster", iown=False, permitted=True)

	ClientPermissions.objects.update_or_create(action="createNode", iown=True, permitted=True)
	# IMPORTANT: Since at this point the node is a provisional, not owned by anyone, it's always 'iDontOwn'.  
	ClientPermissions.objects.update_or_create(action="createNode", iown=False, permitted=True)

	ClientPermissions.objects.update_or_create(action="getNodeIdByLabel", iown=True, permitted=True)
	# iOwn here should refer to map
	ClientPermissions.objects.update_or_create(action="getNodeIdByLabel", iown=False, permitted=False)

	ClientPermissions.objects.update_or_create(action="removeNode", iown=True, permitted=True)
	ClientPermissions.objects.update_or_create(action="removeNode", iown=False, permitted=False)

	# NOTE: if removeNode is allowed for a given user, removeEdge must be, too.  FIXME: write a constraint for this.
	ClientPermissions.objects.update_or_create(action="removeEdge", iown=True, permitted=True)
	ClientPermissions.objects.update_or_create(action="removeEdge", iown=False, permitted=False)


	ClientPermissions.objects.update_or_create(action="setNodeAttribute", iown=True, permitted=True)
	ClientPermissions.objects.update_or_create(action="setNodeAttribute", iown=False, permitted=True)

	# IMPORTANT: Since at this point the edge is a provisional, not owned by anyone, 'iOwn' is never accessed.  
	ClientPermissions.objects.update_or_create(action="createEdge", iown=True, permitted=True)
	ClientPermissions.objects.update_or_create(action="createEdge", iown=False, permitted=True)

	ClientPermissions.objects.update_or_create(action="setEdgeAttribute", iown=True, permitted=True)
	ClientPermissions.objects.update_or_create(action="setEdgeAttribute", iown=False, permitted=True)

	ClientPermissions.objects.update_or_create(action="setEdgeEndpoint", iown=True, permitted=True)
	ClientPermissions.objects.update_or_create(action="setEdgeEndpoint", iown=False, permitted=False)

	ClientPermissions.objects.update_or_create(action="listAllEdges", iown=True, permitted=True)
	ClientPermissions.objects.update_or_create(action="listAllEdges", iown=False, permitted=False)

	ClientPermissions.objects.update_or_create(action="removeMap", iown=True, permitted=True)
	ClientPermissions.objects.update_or_create(action="removeMap", iown=False, permitted=False)

	return HttpResponse(status=200)






