зеркало из https://github.com/Azure/AzureGraph.git
basic device object
This commit is contained in:
Родитель
e69154ee96
Коммит
e65b786bc9
|
@ -1,6 +1,7 @@
|
||||||
# Generated by roxygen2: do not edit by hand
|
# Generated by roxygen2: do not edit by hand
|
||||||
|
|
||||||
export(az_app)
|
export(az_app)
|
||||||
|
export(az_device)
|
||||||
export(az_group)
|
export(az_group)
|
||||||
export(az_object)
|
export(az_object)
|
||||||
export(az_service_principal)
|
export(az_service_principal)
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
#' Device in Azure Active Directory
|
||||||
|
#'
|
||||||
|
#' Base class representing a registered device.
|
||||||
|
#'
|
||||||
|
#' @docType class
|
||||||
|
#' @section Fields:
|
||||||
|
#' - `token`: The token used to authenticate with the Graph host.
|
||||||
|
#' - `tenant`: The Azure Active Directory tenant for this group.
|
||||||
|
#' - `type`: always "device" for a device object.
|
||||||
|
#' - `properties`: The device properties.
|
||||||
|
#' @section Methods:
|
||||||
|
#' - `new(...)`: Initialize a new device object. Do not call this directly; see 'Initialization' below.
|
||||||
|
#' - `delete(confirm=TRUE)`: Delete a device. By default, ask for confirmation first.
|
||||||
|
#' - `update(...)`: Update the device information in Azure Active Directory.
|
||||||
|
#' - `do_operation(...)`: Carry out an arbitrary operation on the device.
|
||||||
|
#' - `sync_fields()`: Synchronise the R object with the app data in Azure Active Directory.
|
||||||
|
#' - `list_group_memberships()`: Return the IDs of all groups this device is a member of.
|
||||||
|
#' - `list_object_memberships()`: Return the IDs of all groups, administrative units and directory roles this device is a member of.
|
||||||
|
#'
|
||||||
|
#' @section Initialization:
|
||||||
|
#' Create objects of this class via the `list_registered_devices()` and `list_owned_devices()` methods of the `az_user` class.
|
||||||
|
#'
|
||||||
|
#' @seealso
|
||||||
|
#' [ms_graph], [az_user], [az_object]
|
||||||
|
#'
|
||||||
|
#' [Microsoft Graph overview](https://docs.microsoft.com/en-us/graph/overview),
|
||||||
|
#' [REST API reference](https://docs.microsoft.com/en-us/graph/api/overview?view=graph-rest-beta)
|
||||||
|
#'
|
||||||
|
#' @format An R6 object of class `az_device`, inheriting from `az_object`.
|
||||||
|
#' @export
|
||||||
|
az_device <- R6::R6Class("az_device", inherit=az_object,
|
||||||
|
|
||||||
|
public=list(
|
||||||
|
|
||||||
|
initialize=function(token, tenant=NULL, properties=NULL)
|
||||||
|
{
|
||||||
|
self$type <- "device"
|
||||||
|
super$initialize(token, tenant, properties)
|
||||||
|
},
|
||||||
|
|
||||||
|
print=function(...)
|
||||||
|
{
|
||||||
|
cat("<Graph device '", self$properties$displayName, "'>\n", sep="")
|
||||||
|
cat(" directory id:", self$properties$id, "\n")
|
||||||
|
cat(" device id:", self$properties$deviceId, "\n")
|
||||||
|
invisible(self)
|
||||||
|
}
|
||||||
|
))
|
|
@ -117,7 +117,7 @@ private=list(
|
||||||
res
|
res
|
||||||
},
|
},
|
||||||
|
|
||||||
filter_list=function(lst, type)
|
filter_list=function(lst, type=c("user", "group", "application", "servicePrincipal", "device"))
|
||||||
{
|
{
|
||||||
type <- paste0("#microsoft.graph.", type)
|
type <- paste0("#microsoft.graph.", type)
|
||||||
keep <- sapply(lst, function(obj) obj$`@odata.type` %in% type)
|
keep <- sapply(lst, function(obj) obj$`@odata.type` %in% type)
|
||||||
|
@ -128,19 +128,22 @@ private=list(
|
||||||
{
|
{
|
||||||
lapply(lst, function(obj)
|
lapply(lst, function(obj)
|
||||||
{
|
{
|
||||||
if(obj$`@odata.type` == "#microsoft.graph.user")
|
switch(obj$`@odata.type`,
|
||||||
az_user$new(self$token, self$tenant, obj)
|
"#microsoft.graph.user"=
|
||||||
else if(obj$`@odata.type` == "#microsoft.graph.group")
|
az_user$new(self$token, self$tenant, obj),
|
||||||
az_group$new(self$token, self$tenant, obj)
|
"#microsoft.graph.group"=
|
||||||
else if(obj$`@odata.type` == "#microsoft.graph.application")
|
az_group$new(self$token, self$tenant, obj),
|
||||||
az_app$new(self$token, self$tenant, obj)
|
"#microsoft.graph.application"=
|
||||||
else if(obj$`@odata.type` == "#microsoft.graph.servicePrincipal")
|
az_app$new(self$token, self$tenant, obj),
|
||||||
az_service_principal$new(self$token, self$tenant, obj)
|
"#microsoft.graph.servicePrincipal"=
|
||||||
else
|
az_service_principal$new(self$token, self$tenant, obj),
|
||||||
{
|
"#microsoft.graph.device"=
|
||||||
warning("Unknown directory object type ", obj$`@odata.type`)
|
az_device$new(self$token, self$tenant, obj),
|
||||||
obj
|
{
|
||||||
}
|
warning("Unknown directory object type ", obj$`@odata.type`)
|
||||||
|
obj
|
||||||
|
}
|
||||||
|
)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
10
R/az_user.R
10
R/az_user.R
|
@ -19,13 +19,15 @@
|
||||||
#' - `list_direct_memberships(id_only=TRUE)`: List the groups this user is a direct member of. Set `id_only=TRUE` to return only a vector of group IDs (the default), or `id_only=FALSE` to return a list of group objects.
|
#' - `list_direct_memberships(id_only=TRUE)`: List the groups this user is a direct member of. Set `id_only=TRUE` to return only a vector of group IDs (the default), or `id_only=FALSE` to return a list of group objects.
|
||||||
#' - `list_owned_objects(type=c("user", "group", "application", "servicePrincipal"))`: List directory objects (groups/apps/service principals) owned by this user. Specify the `type` argument to filter the result for specific object type(s).
|
#' - `list_owned_objects(type=c("user", "group", "application", "servicePrincipal"))`: List directory objects (groups/apps/service principals) owned by this user. Specify the `type` argument to filter the result for specific object type(s).
|
||||||
#' - `list_created_objects(type=c("user", "group", "application", "servicePrincipal"))`: List directory objects (groups/apps/service principals) created by this user. Specify the `type` argument to filter the result for specific object type(s).
|
#' - `list_created_objects(type=c("user", "group", "application", "servicePrincipal"))`: List directory objects (groups/apps/service principals) created by this user. Specify the `type` argument to filter the result for specific object type(s).
|
||||||
|
#' - `list_owned_devices()`: List the devices owned by this user.
|
||||||
|
#' - `list_registered_devices()`: List the devices registered by this user.
|
||||||
#' - `reset_password(password=NULL, force_password_change=TRUE): Resets a user password. By default the new password will be randomly generated, and must be changed at next login.
|
#' - `reset_password(password=NULL, force_password_change=TRUE): Resets a user password. By default the new password will be randomly generated, and must be changed at next login.
|
||||||
#'
|
#'
|
||||||
#' @section Initialization:
|
#' @section Initialization:
|
||||||
#' Creating new objects of this class should be done via the `create_user` and `get_user` methods of the [ms_graph] and [az_app] classes. Calling the `new()` method for this class only constructs the R object; it does not call the Microsoft Graph API to create the actual user account.
|
#' Creating new objects of this class should be done via the `create_user` and `get_user` methods of the [ms_graph] and [az_app] classes. Calling the `new()` method for this class only constructs the R object; it does not call the Microsoft Graph API to create the actual user account.
|
||||||
#'
|
#'
|
||||||
#' @seealso
|
#' @seealso
|
||||||
#' [ms_graph], [az_app], [az_group], [az_object]
|
#' [ms_graph], [az_app], [az_group], [az_device], [az_object]
|
||||||
#'
|
#'
|
||||||
#' [Microsoft Graph overview](https://docs.microsoft.com/en-us/graph/overview),
|
#' [Microsoft Graph overview](https://docs.microsoft.com/en-us/graph/overview),
|
||||||
#' [REST API reference](https://docs.microsoft.com/en-us/graph/api/overview?view=graph-rest-beta)
|
#' [REST API reference](https://docs.microsoft.com/en-us/graph/api/overview?view=graph-rest-beta)
|
||||||
|
@ -97,6 +99,12 @@ public=list(
|
||||||
private$init_list_objects(private$filter_list(res, type))
|
private$init_list_objects(private$filter_list(res, type))
|
||||||
},
|
},
|
||||||
|
|
||||||
|
list_owned_devices=function()
|
||||||
|
{
|
||||||
|
res <- private$get_paged_list(self$do_operation("ownedDevices"))
|
||||||
|
private$init_list_objects(private$filter_list(res))
|
||||||
|
},
|
||||||
|
|
||||||
list_direct_memberships=function(id_only=TRUE)
|
list_direct_memberships=function(id_only=TRUE)
|
||||||
{
|
{
|
||||||
res <- private$get_paged_list(self$do_operation("memberOf"))
|
res <- private$get_paged_list(self$do_operation("memberOf"))
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
% Generated by roxygen2: do not edit by hand
|
||||||
|
% Please edit documentation in R/az_device.R
|
||||||
|
\docType{class}
|
||||||
|
\name{az_device}
|
||||||
|
\alias{az_device}
|
||||||
|
\title{Device in Azure Active Directory}
|
||||||
|
\format{An R6 object of class \code{az_device}, inheriting from \code{az_object}.}
|
||||||
|
\usage{
|
||||||
|
az_device
|
||||||
|
}
|
||||||
|
\description{
|
||||||
|
Base class representing a registered device.
|
||||||
|
}
|
||||||
|
\section{Fields}{
|
||||||
|
|
||||||
|
\itemize{
|
||||||
|
\item \code{token}: The token used to authenticate with the Graph host.
|
||||||
|
\item \code{tenant}: The Azure Active Directory tenant for this group.
|
||||||
|
\item \code{type}: always "device" for a device object.
|
||||||
|
\item \code{properties}: The device properties.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
\section{Methods}{
|
||||||
|
|
||||||
|
\itemize{
|
||||||
|
\item \code{new(...)}: Initialize a new device object. Do not call this directly; see 'Initialization' below.
|
||||||
|
\item \code{delete(confirm=TRUE)}: Delete a device. By default, ask for confirmation first.
|
||||||
|
\item \code{update(...)}: Update the device information in Azure Active Directory.
|
||||||
|
\item \code{do_operation(...)}: Carry out an arbitrary operation on the device.
|
||||||
|
\item \code{sync_fields()}: Synchronise the R object with the app data in Azure Active Directory.
|
||||||
|
\item \code{list_group_memberships()}: Return the IDs of all groups this device is a member of.
|
||||||
|
\item \code{list_object_memberships()}: Return the IDs of all groups, administrative units and directory roles this device is a member of.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
\section{Initialization}{
|
||||||
|
|
||||||
|
Create objects of this class via the \code{list_registered_devices()} and \code{list_owned_devices()} methods of the \code{az_user} class.
|
||||||
|
}
|
||||||
|
|
||||||
|
\seealso{
|
||||||
|
\link{ms_graph}, \link{az_user}, \link{az_object}
|
||||||
|
|
||||||
|
\href{https://docs.microsoft.com/en-us/graph/overview}{Microsoft Graph overview},
|
||||||
|
\href{https://docs.microsoft.com/en-us/graph/api/overview?view=graph-rest-beta}{REST API reference}
|
||||||
|
}
|
||||||
|
\keyword{datasets}
|
|
@ -34,6 +34,8 @@ Base class representing an AAD user account.
|
||||||
\item \code{list_direct_memberships(id_only=TRUE)}: List the groups this user is a direct member of. Set \code{id_only=TRUE} to return only a vector of group IDs (the default), or \code{id_only=FALSE} to return a list of group objects.
|
\item \code{list_direct_memberships(id_only=TRUE)}: List the groups this user is a direct member of. Set \code{id_only=TRUE} to return only a vector of group IDs (the default), or \code{id_only=FALSE} to return a list of group objects.
|
||||||
\item \code{list_owned_objects(type=c("user", "group", "application", "servicePrincipal"))}: List directory objects (groups/apps/service principals) owned by this user. Specify the \code{type} argument to filter the result for specific object type(s).
|
\item \code{list_owned_objects(type=c("user", "group", "application", "servicePrincipal"))}: List directory objects (groups/apps/service principals) owned by this user. Specify the \code{type} argument to filter the result for specific object type(s).
|
||||||
\item \code{list_created_objects(type=c("user", "group", "application", "servicePrincipal"))}: List directory objects (groups/apps/service principals) created by this user. Specify the \code{type} argument to filter the result for specific object type(s).
|
\item \code{list_created_objects(type=c("user", "group", "application", "servicePrincipal"))}: List directory objects (groups/apps/service principals) created by this user. Specify the \code{type} argument to filter the result for specific object type(s).
|
||||||
|
\item \code{list_owned_devices()}: List the devices owned by this user.
|
||||||
|
\item \code{list_registered_devices()}: List the devices registered by this user.
|
||||||
\item `reset_password(password=NULL, force_password_change=TRUE): Resets a user password. By default the new password will be randomly generated, and must be changed at next login.
|
\item `reset_password(password=NULL, force_password_change=TRUE): Resets a user password. By default the new password will be randomly generated, and must be changed at next login.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -66,7 +68,7 @@ usr$list_owned_objects(type=c("application", "servicePrincipal"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
\seealso{
|
\seealso{
|
||||||
\link{ms_graph}, \link{az_app}, \link{az_group}, \link{az_object}
|
\link{ms_graph}, \link{az_app}, \link{az_group}, \link{az_device}, \link{az_object}
|
||||||
|
|
||||||
\href{https://docs.microsoft.com/en-us/graph/overview}{Microsoft Graph overview},
|
\href{https://docs.microsoft.com/en-us/graph/overview}{Microsoft Graph overview},
|
||||||
\href{https://docs.microsoft.com/en-us/graph/api/overview?view=graph-rest-beta}{REST API reference}
|
\href{https://docs.microsoft.com/en-us/graph/api/overview?view=graph-rest-beta}{REST API reference}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче