From 561736e68c8cd727d5b66a8e60d089209f655da0 Mon Sep 17 00:00:00 2001 From: Mathieu Loiseau <loizbek@lezinter.net> Date: Mon, 12 Mar 2018 20:35:57 +0100 Subject: [PATCH] login qui marche (en mode non secure) ? --- DESCRIPTION | 1 + R/class.R | 42 ++++++++++++++++++++++++++++++++++-------- 2 files changed, 35 insertions(+), 8 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 925fa1f..c5bb2bf 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -9,3 +9,4 @@ License: MIT Encoding: UTF-8 LazyData: true RoxygenNote: 6.0.1 +Imports: RCurl diff --git a/R/class.R b/R/class.R index b8c5e92..9cec4ff 100644 --- a/R/class.R +++ b/R/class.R @@ -5,12 +5,38 @@ setClass("Mediawikir", representation(url = "character", user_name = "character", auth_token = "character")) setGeneric("connect", function(.Object, pass){}) -#'Connects to mediawiki instance and gets token (to be called by constructor) -#' -setMethod("connect", "Mediawikir", function(.Object, pass){ - library("RCurl") - paste("connecting : ", .Object@user_name, "/", pass) -}) + #'Connects to mediawiki instance and gets token (to be called by constructor) + setMethod("connect", "Mediawikir", function(.Object, pass){ + #get login token + query <- httr::POST(.Object@url, + body = list(action="query", + meta="tokens", + type="login", + lgname = .Object@user_name, + format= "json")) + httr::stop_for_status(query) + response <- httr::content(query, "parsed", "application/json") + print("query 1")#debug + token <- response$query$tokens$logintoken + print(token)#debug + query <- httr::POST(.Object@url, + body = list(action="clientlogin", + username = .Object@user_name, + password = pass, + logintoken = token, + loginreturnurl="http://wiki.lezinter.net", + format= "json")) + httr::stop_for_status(query) + response <- httr::content(query, "parsed", "application/json") + print("query 2")#debug + print(response)#debug + if(response$clientlogin$status=="PASS"){ + return(token) + } + else{ + return("0") + } + }) #'Creates a new Mediawikir object instance #' @@ -20,8 +46,8 @@ setMethod("connect", "Mediawikir", function(.Object, pass){ #'@examples #' new("Mediawikir", "http://wiki.example.com", "admin", "theadmin'spassword") setMethod("initialize", "Mediawikir", function (.Object, instance_url, user, pass){ - .Object@url <- instance_url + .Object@url <- paste(instance_url,"/","api.php",sep="") .Object@user_name <- user - .Object@auth_token <- connect(.Object, pass) + .Object@auth_token=connect(.Object, pass) return(.Object) }) -- GitLab