Rol ve İzin İşlemleri
Baz Metodlar
Core.roles Core.role_permissionsTüm Metodlar
Metod | Açıklama |
---|---|
Core.roles.combo | Rol isimlerini özet liste olarak döner(ComboBox'larda kullanmak için). |
Core.roles | Rolleri tam liste olarak döner(Tablolarda kullanmak için). |
Core.roles.edit | Var olan rol kaydını güncelleme içindir. |
Core.roles.create | Yeni rol eklemek içindir. |
Core.roles.remove | Rolü silmek içindir. |
Core.role_permissions.combo | Rol içindeki izinleri döner(ComboBox'larda kullanmak için). |
Core.role_permissions | Rol içindeki izinleri liste olarak döner(Tablolarda kullanmak için). |
Core.role_permissions.edit | Var olan izin kaydını güncelleme içindir. |
Core.role_permissions.remove | Rolden izin kaydını silmek içindir. |
İzin için önce rol tanımlanır ve sonrasında da bu rol içine izin kayıtları ekenir. Bunun için izinler ile
ilgili API çağrılarında rol ID'sini role_id
de belirtmek gereklidir.
Core.roles.combo
JSON
olarak şu şekilde bilgiler gönderilir:
{
"jsonrpc":"2.0",
"id":"fe012e8c-2d2f-47da-b7bb-9d90ee611eb4",
"method":"Core.roles.combo",
"params":{
"token_":[TOKEN],
"user_id": Soruglama için kullanıcı kodu
}
}
Yukarıdaki JSON Verisini(string olarak) aşağıdaki şekilde gönderebilirsiniz:
curl -s -k -i -X POST -F data=JSON VERİSİ 'https://DOMAIN/api/v1'
import json
import requests
r = requests.post('https://DOMAIN/api/v1',
data={'data': JSON VERİSİ}, verify=False)
print r.status_code, r.text
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => "https://DOMAIN/api/v1",
CURLOPT_HEADER => true,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => array( "data" => JSON VERİSİ )) ), CURLOPT_RETURNTRANSFER => true ));
$result = curl_exec($ch);
curl_close($ch);
echo $result;
private async void Button_Click(object sender, RoutedEventArgs e)
{
HttpStringContent stringContent = new HttpStringContent( JSON VERİSİ,
UnicodeEncoding.Utf8, "application/json");
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.PostAsync( "https://DOMAIN/api/v1", stringContent);
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine (responseBody);
}
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.util.EntityUtils;
import java.io.File;
import org.apache.http.conn.ssl.*;
import org.apache.http.impl.client.*;
import java.security.cert.X509Certificate;
import java.security.cert.CertificateException;
import org.apache.http.conn.scheme.*;
import org.apache.http.impl.conn.tsccm.*;
import org.apache.http.conn.*;
//export CLASSPATH=./httpcomponents-client-4.5.1/lib/*:.
public class ApiSendFax {
public static void main(String[] args) throws Exception {
/* Patch ssl hostname validation */
SSLSocketFactory sf = new SSLSocketFactory(new TrustStrategy(){
@Override
public boolean isTrusted(X509Certificate[] chain,
String authType) throws CertificateException {
return true;
}
}, new AllowAllHostnameVerifier());
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("https",8444, sf));
ClientConnectionManager ccm = new ThreadSafeClientConnManager(registry);
/* end of patch */
CloseableHttpClient httpclient = new DefaultHttpClient(ccm);
try {
HttpPost httppost = new HttpPost("https://DOMAIN/api/v1");
httppost.setEntity(new StringEntity(JSON VERİSİ, ContentType.create("application/json")));
CloseableHttpResponse response = httpclient.execute(httppost);
try {
System.out.println(response.getStatusLine());
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
System.out.println("Response content length: " + resEntity.getContentLength());
}
EntityUtils.consume(resEntity);
} finally {
response.close();
}
} finally {
httpclient.close();
}
}
}
$.ajax({
async: true,
type: 'POST',
dataType: 'json',
url: "https://DOMAIN/api/v1",
data: JSON VERİSİ,
cache: false,
success: function(data, textStatus, jqXHR){
console.log(data.result);
},
// JSON-RPC Server could return non-200 on error
error: function(jqXHR, textStatus, errorThrown){
}
});
func main() {
var jsonStr = []byte(JSON VERİSİ)
req, err := http.NewRequest("POST", "https://DOMAIN/api/v1", bytes.NewBuffer(jsonStr))
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("response Status:", resp.Status)
fmt.Println("response Headers:", resp.Header)
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println("response Body:", string(body))
}
JSON params içeriği |
||
---|---|---|
Parametre | Zorunlu? | Açıklama |
token* | Evet** | Giriş için kullanılacak TOKEN bilgisi * TOKEN yerine username ve password bilgileri gönderilebilir.** Eğer username ve password belirtilmemiş ise TOKEN mutlaka belirtilmelidir. |
Core.roles
JSON params içeriği |
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametre | Zorunlu? | Açıklama | ||||||||||||||
token* | Evet** | Giriş için kullanılacak TOKEN bilgisi * TOKEN yerine username ve password bilgileri gönderilebilir.** Eğer username ve password belirtilmemiş ise TOKEN mutlaka belirtilmelidir. |
||||||||||||||
page_length | Evet | Dönülecek kayıt sayısı(sayfa uzunluğu) | ||||||||||||||
start | Evet | Kaçıncı satırdan itibaren kayıtlar gelsin? | ||||||||||||||
order_by | Evet | Sıralama hangi sütuna göre yapılsın? | ||||||||||||||
order_dir | Evet | Sondan başa (DESC ) mı, yoksa baştan sona doğru(ASC ) mu olsun? |
||||||||||||||
search | Evet | name sütunu içinde geçen bir değeri aramak için kullanılabilir. Eğer arama yapılmayacaksa boş string gönderilmeli |
||||||||||||||
flt | Evet | assigned_on sütunu için filtreleme amaçlı olarak kullanılabilir. Örnek filtreleme verisi:
Kullanılabilecek operatörler:
|
Core.roles.edit
JSON params içeriği |
||
---|---|---|
Parametre | Zorunlu? | Açıklama |
token* | Evet** | Giriş için kullanılacak TOKEN bilgisi * TOKEN yerine username ve password bilgileri gönderilebilir.** Eğer username ve password belirtilmemiş ise TOKEN mutlaka belirtilmelidir. |
id | Evet | Güncellenecek kaydın ID'si. |
name | Evet | Rol ismi. |
is_sub_role | Hayır | Rol hesap yöneticisin kendi ekranında kullanıcılara atanabilsin mi? Evet ise true , Hayır ise false olmalıdır |
Core.roles.create
JSON params içeriği |
||
---|---|---|
Parametre | Zorunlu? | Açıklama |
token* | Evet** | Giriş için kullanılacak TOKEN bilgisi * TOKEN yerine username ve password bilgileri gönderilebilir.** Eğer username ve password belirtilmemiş ise TOKEN mutlaka belirtilmelidir. |
name | Evet | Rol ismi |
is_sub_role | Hayır | Rol hesap yöneticisin kendi ekranında kullanıcılara atanabilsin mi? Evet ise true , Hayır ise false olmalıdır |
Core.roles.remove
JSON params içeriği |
||
---|---|---|
Parametre | Zorunlu? | Açıklama |
token* | Evet** | Giriş için kullanılacak TOKEN bilgisi * TOKEN yerine username ve password bilgileri gönderilebilir.** Eğer username ve password belirtilmemiş ise TOKEN mutlaka belirtilmelidir. |
id | Evet | Silinecek kaydın ID'si. Array olarak birden fazla ID belirtilebilir. |
Core.role_permissions.combo
JSON
olarak şu şekilde bilgiler gönderilir:
{
"jsonrpc":"2.0",
"id":"fe012e8c-2d2f-47da-b7bb-9d90ee611eb4",
"method":"Core.role_permissions.combo",
"params":{
"token_":[TOKEN],
"user_id": Soruglama için kullanıcı kodu
}
}
Yukarıdaki JSON Verisini(string olarak) aşağıdaki şekilde gönderebilirsiniz:
curl -s -k -i -X POST -F data=JSON VERİSİ 'https://DOMAIN/api/v1'
import json
import requests
r = requests.post('https://DOMAIN/api/v1',
data={'data': JSON VERİSİ}, verify=False)
print r.status_code, r.text
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => "https://DOMAIN/api/v1",
CURLOPT_HEADER => true,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => array( "data" => JSON VERİSİ )) ), CURLOPT_RETURNTRANSFER => true ));
$result = curl_exec($ch);
curl_close($ch);
echo $result;
private async void Button_Click(object sender, RoutedEventArgs e)
{
HttpStringContent stringContent = new HttpStringContent( JSON VERİSİ,
UnicodeEncoding.Utf8, "application/json");
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.PostAsync( "https://DOMAIN/api/v1", stringContent);
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine (responseBody);
}
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.util.EntityUtils;
import java.io.File;
import org.apache.http.conn.ssl.*;
import org.apache.http.impl.client.*;
import java.security.cert.X509Certificate;
import java.security.cert.CertificateException;
import org.apache.http.conn.scheme.*;
import org.apache.http.impl.conn.tsccm.*;
import org.apache.http.conn.*;
//export CLASSPATH=./httpcomponents-client-4.5.1/lib/*:.
public class ApiSendFax {
public static void main(String[] args) throws Exception {
/* Patch ssl hostname validation */
SSLSocketFactory sf = new SSLSocketFactory(new TrustStrategy(){
@Override
public boolean isTrusted(X509Certificate[] chain,
String authType) throws CertificateException {
return true;
}
}, new AllowAllHostnameVerifier());
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("https",8444, sf));
ClientConnectionManager ccm = new ThreadSafeClientConnManager(registry);
/* end of patch */
CloseableHttpClient httpclient = new DefaultHttpClient(ccm);
try {
HttpPost httppost = new HttpPost("https://DOMAIN/api/v1");
httppost.setEntity(new StringEntity(JSON VERİSİ, ContentType.create("application/json")));
CloseableHttpResponse response = httpclient.execute(httppost);
try {
System.out.println(response.getStatusLine());
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
System.out.println("Response content length: " + resEntity.getContentLength());
}
EntityUtils.consume(resEntity);
} finally {
response.close();
}
} finally {
httpclient.close();
}
}
}
$.ajax({
async: true,
type: 'POST',
dataType: 'json',
url: "https://DOMAIN/api/v1",
data: JSON VERİSİ,
cache: false,
success: function(data, textStatus, jqXHR){
console.log(data.result);
},
// JSON-RPC Server could return non-200 on error
error: function(jqXHR, textStatus, errorThrown){
}
});
func main() {
var jsonStr = []byte(JSON VERİSİ)
req, err := http.NewRequest("POST", "https://DOMAIN/api/v1", bytes.NewBuffer(jsonStr))
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("response Status:", resp.Status)
fmt.Println("response Headers:", resp.Header)
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println("response Body:", string(body))
}
JSON params içeriği |
||
---|---|---|
Parametre | Zorunlu? | Açıklama |
token* | Evet** | Giriş için kullanılacak TOKEN bilgisi * TOKEN yerine username ve password bilgileri gönderilebilir.** Eğer username ve password belirtilmemiş ise TOKEN mutlaka belirtilmelidir. |
role_id | Evet | Rol ID'si |
Core.role_permissions
JSON params içeriği |
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametre | Zorunlu? | Açıklama | ||||||||||||||
token* | Evet** | Giriş için kullanılacak TOKEN bilgisi * TOKEN yerine username ve password bilgileri gönderilebilir.** Eğer username ve password belirtilmemiş ise TOKEN mutlaka belirtilmelidir. |
||||||||||||||
role_id | Ever | Rol ID'si | ||||||||||||||
page_length | Evet | Dönülecek kayıt sayısı(sayfa uzunluğu) | ||||||||||||||
start | Evet | Kaçıncı satırdan itibaren kayıtlar gelsin? | ||||||||||||||
order_by | Evet | Sıralama hangi sütuna göre yapılsın? | ||||||||||||||
order_dir | Evet | Sondan başa (DESC ) mı, yoksa baştan sona doğru(ASC ) mu olsun? |
||||||||||||||
search | Evet | permission sütunu içinde geçen bir değeri aramak için kullanılabilir. Eğer arama yapılmayacaksa boş string gönderilmeli |
||||||||||||||
flt | Evet | assigned_on sütunu için filtreleme amaçlı olarak kullanılabilir. Örnek filtreleme verisi:
Kullanılabilecek operatörler:
|
Core.role_permissions.edit
JSON params içeriği |
||
---|---|---|
Parametre | Zorunlu? | Açıklama |
token* | Evet** | Giriş için kullanılacak TOKEN bilgisi * TOKEN yerine username ve password bilgileri gönderilebilir.** Eğer username ve password belirtilmemiş ise TOKEN mutlaka belirtilmelidir. |
role_id | Evet | RolID'si |
id | Evet | Güncellenecek kaydın ID'si. |
permission | Evet | İzin ismi. |
can_view | Evet | Kayıt görüntülenebilsin mi? Evet:true , Hayır:false |
can_edit | Evet | Kayıt güncellenebilsin mi? Evet:true , Hayır:false |
can_add | Evet | Kayıt eklenebilsin mi? Evet:true , Hayır:false |
can_delete | Evet | Kayıt silinebilsin mi? Evet:true , Hayır:false |
Core.role_permissions.remove
JSON params içeriği |
||
---|---|---|
Parametre | Zorunlu? | Açıklama |
token* | Evet** | Giriş için kullanılacak TOKEN bilgisi * TOKEN yerine username ve password bilgileri gönderilebilir.** Eğer username ve password belirtilmemiş ise TOKEN mutlaka belirtilmelidir. |
role_id | Evet | Hangi rol için işlem yapılacaksa onun ID'si. |
id | Evet | Silinecek kaydın ID'si. Array olarak birden fazla ID belirtilebilir. |