= API =

== Users and Roles ==

{{{

{
	"request": "createrole",
	"username": <role creator's username>,
	"password": <role creator's password>,
	"role" : {
		"roleName": <name>,
		"canManageRoles": (true|false),  #true if the user can create/edit/delete roles
		"canManageUsers": (true|false),  #true if the user can create/edit/delete users
		"canManageAllPlaylists": (true|false),  #true if the user can create/edit/delete playlists
		"canManageTimetable": (true|false),  #true if the user can edit/delete the beginning and ending time of scheduled slots
		"fixedSlotTime": (true|false), #true if the fixedSlotTimesList field has to be considered
		"fixedSlotTimesList": <array of fixed slot times, in minutes>, #if fixedSlotTime is true, then this is the list of the allowed length for the timeslots for this user
		"changeTimeBeforeTransmission": <number of minutes before the beginning of the transmission in which the user is permitted to change the beginning time>,
		"canCreateTestMountpoint": (true|false), #true if the user is permitted to create a testing mountpoint
	}
}


{
	"response": ("rolecreated" | "notallowed" | "servererror"),
	"responsen": (0, 1, 2),
	"description": <textual description>,
	"role" : { #the role that has been created
		"roleName": <name>,
		"canManageRoles": (true|false),  #true if the user can create/edit/delete roles
		"canManageUsers": (true|false),  #true if the user can create/edit/delete users
		"canManageAllPlaylists": (true|false),  #true if the user can create/edit/delete playlists
		"canManageTimetable": (true|false),  #true if the user can edit/delete the beginning and ending time of scheduled slots
		"fixedSlotTime": (true|false), #true if the fixedSlotTimesList field has to be considered
		"fixedSlotTimesList": <array of fixed slot times, in minutes>, #if fixedSlotTime is true, then this is the list of the allowed length for the timeslots for this user
		"changeTimeBeforeTransmission": <number of minutes before the beginning of the transmission in which the user is permitted to change the beginning time>,
		"canCreateTestMountpoint": (true|false), #true if the user is permitted to create a testing mountpoint
	}
}

}}}

{{{
{
	"request":"createuser",
	"username": <creator's username>,
	"password": <creator's password>,
	"user" : {
		"name": <name>,
		"password": <password>,
		"role": <role>
	}
}

}}}


{{{


}}}