Kaydet (Commit) 816e4faf authored tarafından ertansoftware's avatar ertansoftware

Merge branch 'master' of https://github.com/mertcelen/liman

......@@ -32,6 +32,9 @@ class MainController extends Controller
"city" => $cities[0]
]));
}
if($cities == null){
return respond('Bu özelliği kullanabileceğiniz hiçbir sunucunuz yok.');
}
return view('feature.index', [
"cities" => implode(',',$cities)
]);
......
......@@ -16,7 +16,6 @@ class OneController extends Controller
// First, check requested server has key.
$server = \request('server');
if($server->key == null){
// Redirect user if requested server is not serverless.
......@@ -95,4 +94,18 @@ class OneController extends Controller
}
}
public function runFunction(){
$extension = Extension::where('_id',request()->route('extension_id'))->first();
require(base_path('resources/views/extensions/' . strtolower($extension->name) . '/functions.php'));
if(function_exists(request('function_name'))){
if(call_user_func(request('function_name'),request('server'),"SambaPardus01","cn=admin,dc=ldap,dc=lab")){
return respond("Kullanıcı başarıyla eklendi",200);
}else{
return respond("Kullanıcı eklenemedi, lütfen yöneticinizle iletişime geçiniz",201);
}
}else{
return respond("İşlev bulunamadı, lütfen yöneticinizle iletişime geçiniz.",404);
}
}
}
......@@ -38,4 +38,7 @@ Route::post('/eklentiler/betikler/ekle', 'Extension\SettingsController@addScript
// Extension View Script Remove
Route::post('/eklentiler/betikler/sil', 'Extension\SettingsController@removeScriptFromView')->name('extension_page_script_remove');
\ No newline at end of file
Route::post('/eklentiler/betikler/sil', 'Extension\SettingsController@removeScriptFromView')->name('extension_page_script_remove');
// Extension Function Api
Route::post('/eklenti/{extension_id}/{function_name}','Extension\OneController@runFunction')->name('extension_function_api')->middleware('server');
\ No newline at end of file
......@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Server;
use App\Extension;
use App\Http\Controllers\Controller;
use App\Http\Middleware\Server;
use App\Jobs\RunScript;
use App\Key;
use App\Notification;
......@@ -16,11 +17,6 @@ use GuzzleHttp\Exception\GuzzleException;
class OneController extends Controller
{
public function __construct()
{
$this->middleware('server');
}
public function one(){
return (request('server')->type == "linux_ssh" || request('server')->type == "windows_powershell")
? $this->authorized() : $this->unauthorized();
......@@ -231,7 +227,7 @@ class OneController extends Controller
__(":old isimli sunucu adı :new olarak değiştirildi.",["old"=>request('server')->name,"new"=>request('name')])
);
$output = request('server')->update([
$output = Server::where('_id',request('server_id'))->update([
"name" => request('name'),
"control_port" => request('control_port'),
"city" => request('city')
......
......@@ -13,50 +13,56 @@ Route::post('/sunucu/ekle', 'Server\AddController@main')->name('server_add')->mi
Route::post('/server/kontrol', 'Server\MainController@isAlive')->middleware('parameters:ip,port');
// Single Server Details Route
Route::get('/sunucular/{server_id}', 'Server\OneController@one')->name('server_one');
// Server Update Route
Route::post('/sunucu/guncelle', 'Server\OneController@update')->name('server_update')->middleware('parameters:server_id,name,control_port,city');
// Server' Service Status Route
Route::post('/sunucu/kontrol', 'Server\OneController@serviceCheck')->name('server_check')->middleware('parameters:service,server_id');
Route::group(['middleware' => ['auth', 'permissions']], function () {
// Single Server Details Route
Route::get('/sunucular/{server_id}', 'Server\OneController@one')->name('server_one');
// Server' Service Status Route
Route::post('/sunucu/kontrol', 'Server\OneController@serviceCheck')->name('server_check')->middleware('parameters:service,server_id');
// Server Network Update
Route::post('/sunucu/network', 'Server\OneController@network')->name('server_network')->middleware('parameters:ip,cidr,gateway,interface,password');
Route::post('/sunucu/network', 'Server\OneController@network')->name('server_network')->middleware('parameters:ip,cidr,gateway,interface,password');
// Server Hostname Update
Route::post('/sunucu/hostname', 'Server\OneController@hostname')->name('server_hostname')->middleware('parameters:hostname');
Route::post('/sunucu/hostname', 'Server\OneController@hostname')->name('server_hostname')->middleware('parameters:hostname');
// Server Service Run,Stop,Enable,Disable Route
Route::post('/sunucu/servis', 'Server\OneController@service')->name('server_service')->middleware('parameters:extension_id,action');
Route::post('/sunucu/servis', 'Server\OneController@service')->name('server_service')->middleware('parameters:extension_id,action');
// Server Extension Installation Route
Route::post('/sunucu/eklenti', 'Server\OneController@enableExtension')->name('server_extension');
Route::post('/sunucu/eklenti', 'Server\OneController@enableExtension')->name('server_extension');
// Server File Upload Route
Route::post('/sunucu/yukle','Server\OneController@upload')->name('server_upload')->middleware('parameters:file,path');
Route::post('/sunucu/yukle', 'Server\OneController@upload')->name('server_upload')->middleware('parameters:file,path');
// Server Terminal Route
Route::get('/sunucu/terminal', 'Server\OneController@terminal')->name('server_terminal');
Route::get('/sunucu/terminal', 'Server\OneController@terminal')->name('server_terminal');
// Server Download File Route
Route::get('/sunucu/indir', 'Server\OneController@download')->name('server_download')->middleware('parameters:path');
Route::get('/sunucu/indir', 'Server\OneController@download')->name('server_download')->middleware('parameters:path');
// Server Permission Grant Route
Route::post('/sunucu/yetkilendir', 'Server\OneController@grant')->name('server_grant_permission')->middleware('parameters:server_id,email');
Route::post('/sunucu/yetkilendir', 'Server\OneController@grant')->name('server_grant_permission')->middleware('parameters:server_id,email');
// Remove Server Route
Route::post('/sunucu/sil', 'Server\OneController@remove')->name('server_remove')->middleware('parameters:server_id');
\ No newline at end of file
Route::post('/sunucu/sil', 'Server\OneController@remove')->name('server_remove')->middleware('parameters:server_id');
});
\ No newline at end of file
......@@ -29,7 +29,7 @@ class PermissionManager
// Loop through every validations
foreach(PermissionManager::$verify as $target){
if(!$this->check($target)){
return respond('Liman: Bu işlem için yetkiniz bulunmamaktadır.',403);
return respond('Bu işlem için yetkiniz bulunmamaktadır.',403);
}
}
// Process request if everything is ok.
......@@ -52,7 +52,6 @@ class PermissionManager
if($value == null){
return true;
}
echo $value;
if(!in_array($value, request('permissions')->__get($target))){
return false;
}
......
......@@ -21,16 +21,24 @@ class Server
if ($server == null) {
return respond("Sunucu bulunamadı.",404);
}
//Now that everything is checked, add server variable to request to easy access and prevent more database queries.
$request->request->add(['server' => $server]);
//Check if ssh port is active on server.
if (!$server->isAlive()) {
return respond("Sunucuyla bağlantı kurulamadı.",503);
}
// Check if server is serverless, which means no validation required.
if($server->serverless){
return $next($request);
}
//Check if SSH key is valid or even exist for user.
if (!$server->integrity()) {
return respond("SSH: Sunucuya erişmek için izniniz yok.",403);
}
//Now that everything is checked, add server variable to request to easy access and prevent more database queries.
$request->request->add(['server' => $server]);
} else {
return respond("Server bilgisi verilmedi.",404);
}
......
......@@ -21,8 +21,11 @@ class Key extends Eloquent
shell_exec("ssh-keygen -t rsa -f " . storage_path('keys') . DIRECTORY_SEPARATOR . $account_name ." -q -P ''");
}
//Trust target server
shell_exec("ssh-keyscan -p " . $server_port . " -H ". $server_address . " >> ~/.ssh/known_hosts");
//Check if server is already trusted or not.
if(shell_exec("ssh-keygen -F " . $server_address . " 2>/dev/null") == null){
// Trust Target Server
shell_exec("ssh-keyscan -p " . $server_port . " -H ". $server_address . " >> ~/.ssh/known_hosts");
}
//Send Keys to target
shell_exec("sshpass -p '" . $password . "' ssh-copy-id -i " . storage_path('keys') . DIRECTORY_SEPARATOR . $account_name ." " . $username
......@@ -40,8 +43,11 @@ class Key extends Eloquent
shell_exec("ssh-keygen -t rsa -f " . storage_path('keys') . DIRECTORY_SEPARATOR . $new_name ." -q -P ''");
}
//Trust target server
shell_exec("ssh-keyscan -p " . $server_port . " -H ". $server_address . " >> ~/.ssh/known_hosts");
//Check if server is already trusted or not.
if(shell_exec("ssh-keygen -F " . $server_address . " 2>/dev/null") == null){
// Trust Target Server
shell_exec("ssh-keyscan -p " . $server_port . " -H ". $server_address . " >> ~/.ssh/known_hosts");
}
//Send Keys to target
shell_exec('cat ' . storage_path('keys') . DIRECTORY_SEPARATOR . $new_name . ".pub | ssh -i " .
......
......@@ -120,8 +120,11 @@ class Server extends Eloquent
if ($key == null) {
return false;
}
// Trust server again just in case.
shell_exec("ssh-keyscan -p " . $this->port . " -H " . $this->ip_address . " >> ~/.ssh/known_hosts");
//Check if server is already trusted or not.
if(shell_exec("ssh-keygen -F " . $this->ip_address . " 2>/dev/null") == null){
// Trust Target Server
shell_exec("ssh-keyscan -p " . $this->port . " -H ". $this->ip_address . " >> ~/.ssh/known_hosts");
}
// Fix key file permissions again, just in case.
$query = "chmod 400 " . storage_path('keys') . DIRECTORY_SEPARATOR . Auth::id();
......
......@@ -47,6 +47,6 @@ class User extends Authenticatable
if($this->permissions->__get($target) == null){
return $this->isAdmin();
}
return array_search($id, $this->permissions->__get($target));
return in_array($id, $this->permissions->__get($target));
}
}
@foreach($files as $key => $file)
@if(is_array($file))
{ name: '{{$key}}', children: [@include('__system__.folder',["files" => $file])] },
{ "text" : "{{$key}}", "children" : [@include('__system__.folder',["files" => $file])]},
@else
{ name: '{{$file}}', children: [] },
{ "text" : "{{$file}}" },
@endif
@endforeach
\ No newline at end of file
......@@ -9,19 +9,46 @@
</select><br>
@else
@if(explode(":", $input)[1] == "hidden")
<input type="{{explode(":", $input)[1]}}" name="{{explode(":", $input)[0]}}" placeholder="{{__($name)}}"
class="form-control @if(isset($random,$id)){{$random}} {{$id}}@endif" required value="{{explode(":",$name)[1]}}">@if(explode(":", $input)[1] != "hidden")<br>@endif
@if(explode(":", $input)[1] == "checkbox")
<div class="form-check">
<input class="form-check-input" type="checkbox" name="{{explode(":", $input)[0]}}">
<label class="form-check-label h5">
{{$name}}
</label>
</div><br>
@else
<input type="{{explode(":", $input)[1]}}" name="{{explode(":", $input)[0]}}" placeholder="{{__($name)}}"
class="form-control @if(isset($random,$id)){{$random}} {{$id}}@endif" required value="{{explode(":",$name)[1]}}">@if(explode(":", $input)[1] != "hidden")<br>@endif
@endif
@elseif(isset($disabled))
<h5 class="@if(isset($random,$id)){{$random}} {{$id}}@endif" style="padding-top: 15px;">{{__(explode(":",$name)[0])}}</h5>
<input type="{{explode(":", $input)[1]}}" name="{{explode(":", $input)[0]}}" placeholder="{{__($name)}}"
class="form-control @if(isset($random,$id)){{$random}} {{$id}}@endif" required disabled hidden style="margin-top:15px">
@if(explode(":", $input)[1] == "checkbox")
<div class="form-check">
<input class="form-check-input" type="checkbox" name="{{explode(":", $input)[0]}}">
<label class="form-check-label h5">
{{$name}}
</label>
</div><br>
@else
<h5 class="@if(isset($random,$id)){{$random}} {{$id}}@endif" style="padding-top: 15px;">{{__(explode(":",$name)[0])}}</h5>
<input type="{{explode(":", $input)[1]}}" name="{{explode(":", $input)[0]}}" placeholder="{{__($name)}}"
class="form-control @if(isset($random,$id)){{$random}} {{$id}}@endif" required disabled hidden style="margin-top:15px">
@endif
@elseif(explode(":", $input)[1] == "textarea")
<textarea name="{{explode(":", $input)[0]}}"
class="form-control" required></textarea><br>
@else
<h5>{{__($name)}}</h5>
<input type="{{explode(":", $input)[1]}}" name="{{explode(":", $input)[0]}}" placeholder="{{__($name)}}"
class="form-control @if(isset($random,$id)){{$random}} {{$id}}@endif" required>@if(explode(":", $input)[1] != "hidden")<br>@endif
@if(explode(":", $input)[1] == "checkbox")
<div class="form-check">
<input class="form-check-input" type="checkbox" name="{{explode(":", $input)[0]}}">
<label class="form-check-label h5">
{{$name}}
</label>
</div><br>
@else
<h5>{{__($name)}}</h5>
<input type="{{explode(":", $input)[1]}}" name="{{explode(":", $input)[0]}}" placeholder="{{__($name)}}"
class="form-control @if(isset($random,$id)){{$random}} {{$id}}@endif" required>@if(explode(":", $input)[1] != "hidden")<br>@endif
@endif
@endif
@endif
@endforeach
......
<?php
function hello_world(){
echo "hello world";
function _init($ip, $port, $password, $rdn){
$ldap_connection = ldap_connect($ip, $port);
ldap_set_option($ldap_connection, LDAP_OPT_PROTOCOL_VERSION, 3);
try{
ldap_bind($ldap_connection,$rdn,$password);
}catch (Exception $e){
echo $e->getMessage();
}
return $ldap_connection;
}
function _search($connection, $dn ,$filter, $extra){
$search = ldap_search($connection, $dn, $filter, $extra);
$results = ldap_get_entries($connection, $search);
$mert = [];
for($i = 0 ; $i < $results["count"] ; $i++){
$user = $results[$i]["dn"];
$arr = explode(",", $user);
$arr = array_reverse($arr);
$res = array();
$t = &$res;
foreach ($arr as $k) {
if (empty($t[$k])) {
if(!starts_with($k,"cn")){
$t[$k] = array();
}else{
$t[$k] = $k;
}
$t = &$t[$k];
}
}
unset($t);
$mert = array_merge_recursive($mert,$res);
}
return $mert;
}
function addUser($server,$password,$rdn){
$user["firstname"] = request("firstname");
$user["surname"] = request("surname");
$user["fullname"] = request("fullname");
$user["username"] = request("username");
$user["password"] = request("password");
$user["forcechangepass"] = (request()->exists('forcechangepass')) ? "true" : "false";
$user["neverexpired"] = (request()->exists('neverexpired')) ? "true" : "false";
$user["lockaccount"] = (request()->exists('lockaccount')) ? "true" : "false";
$user["objectclass"] = "posixAccount";
$user["cantchangepass"] = (request()->exists('cantchangepass')) ? "true" : "false";
$ldap_connection = _init($server->ip_address,$server->port, $password, $rdn);
ldap_add($ldap_connection,request('tree_path'),$user);
}
\ No newline at end of file
<?php
$ldap_connection = ldap_connect($server->ip_address);
ldap_set_option($ldap_connection, LDAP_OPT_PROTOCOL_VERSION, 3);
$conn = _init($server->ip_address, $server->port, "SambaPardus01", "cn=admin,dc=ldap,dc=lab");
$pass = "SambaPardus01";
try{
$result = ldap_bind($ldap_connection,"cn=admin,dc=ldap,dc=lab",$pass);
}catch (Exception $e){
echo $e->getMessage();
}
$search = ldap_search($ldap_connection, "dc=ldap,dc=lab" , "(objectclass=posixAccount)", ["dn"]);
$users = ldap_get_entries($ldap_connection, $search);
$mert = [];
$user_details = [];
for($i = 0 ; $i < $users["count"] ; $i++){
$user = $users[$i]["dn"];
$arr = explode(",", $user);
$arr = array_reverse($arr);
$current = [];
$tail = null;
$res = array();
$t = &$res;
foreach ($arr as $k) {
if (empty($t[$k])) {
if(!starts_with($k,"cn")){
$t[$k] = array();
}else{
$t[$k] = $k;
$search = ldap_search($ldap_connection, "dc=ldap,dc=lab", $k);
$attributes = ldap_get_entries($ldap_connection, $search)[0];
$user_details["cn=" . $attributes["cn"][0]]["uid"] = $attributes["uid"][0];
$user_details["cn=" . $attributes["cn"][0]]["uidnumber"] = $attributes["uidnumber"][0];
$user_details["cn=" . $attributes["cn"][0]]["homedirectory"] = $attributes["homedirectory"][0];
$user_details["cn=" . $attributes["cn"][0]]["gidnumber"] = $attributes["gidnumber"][0];
$user_details["cn=" . $attributes["cn"][0]]["cn"] = $attributes["cn"][0];
}
$t = &$t[$k];
}
}
unset($t);
$mert = array_merge_recursive($mert,$res);
}
hello_world();
$results = _search($conn, "dc=ldap,dc=lab" , "(objectclass=posixAccount)", ["dn"]);
?>
<script src="{{asset('/js/treeview.min.js')}}"></script>
<link rel="stylesheet" href="{{asset('/css/tree.css')}}">
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/jstree/3.3.7/themes/default/style.min.css" />
<script src="//cdnjs.cloudflare.com/ajax/libs/jstree/3.3.7/jstree.min.js"></script>
@include('modal-button',[
"class" => "btn-primary",
"target_id" => "add_user",
"text" => "Kullanıcı Ekle"
])<br><br>
<div class="container">
<div class="row">
<div class="col">
<div id="tree"></div>
<input type="search" onchange="search()" id="q" /><br><br>
<div id="ldap_tree"></div>
</div>
<div class="col pt-3">
<table class="table">
......@@ -79,16 +50,66 @@
</div>
<script>
let tree = new TreeView([
@include("__system__.folder",["files" => $mert])
], 'tree');
tree.on('select',function(e){
let cn = e.data.name;
document.getElementById("uid").innerText = user_details[cn]["uid"];
document.getElementById("uidnumber").innerText = user_details[cn]["uidnumber"];
document.getElementById("homedirectory").innerText = user_details[cn]["homedirectory"];
document.getElementById("gidnumber").innerText = user_details[cn]["gidnumber"];
document.getElementById("cn").innerText = user_details[cn]["cn"];
});
let user_details = <?php echo json_encode($user_details) ?>;
</script>
\ No newline at end of file
function asd(){
$('#ldap_tree').jstree({
"plugins" : [
"contextmenu",
"search"
],
'core' : {
'data' : [
@include("__system__.folder",["files" => $results])
]
},
'contextmenu' : {
"items" : items = {
addUser: {
label: "{{__("Kullanıcı Ekle")}}",
action: function(obj) {
console.log(obj);
},
icon: "fa fa-cog"
},
deleteUser: {
label: "{{__("Kullanıcıyı Sil")}}",
action: function(obj) {
console.log(obj);
},
icon: "fa fa-trash"
}
}
}
});
}
asd();
</script>
<script>
function search(){
$("#ldap_tree").jstree(true).search($("#q").val());
}
</script>
@include('modal',[
"id"=>"add_user",
"title" => "Kullanıcı Ekle",
"url" => route('extension_function_api',[
"extension_id" => $extension->_id,
"function_name" => "addUser"
]),
"next" => "reload",
"inputs" => [
"İsim" => "firstname:text",
"Soyisim" => "surname:text",
"Tüm İsim" => "fullname:text",
"Kullanıcı Adı" => "username:text",
"Parola" => "password:password",
"İlk oturum açılışında değişime zorla" => "forcechangepass:checkbox",
"Parola süresi asla bitmesin" => "neverexpired:checkbox",
"Hesabı kilitle" => "lockaccount:checkbox",
"Kullanıcı parolasını değiştiremez" => "cantchangepass:checkbox",
"LDAP PATH" => "tree_path:text",
"Sunucu Id:$server->_id" => "server_id:hidden"
],
"submit_text" => "Yetkilendir"
])
\ No newline at end of file
<?php
$ldap_connection = ldap_connect($server->ip_address);
ldap_set_option($ldap_connection, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap_connection, LDAP_OPT_REFERRALS, 0);
$query = "openssl s_client -connect " . $server->ip_address . ":" . $server->control_port .
" 2>/dev/null </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'";
$cert = shell_exec($query);
ldap_set_option($ldap_connection, LDAP_OPT_X_TLS_CACERTFILE,$cert);
ldap_set_option($ldap_connection, LDAP_OPT_X_TLS_REQUIRE_CERT, LDAP_OPT_X_TLS_HARD);
$pass = "SambaPardus01";
try{
$result = ldap_bind($ldap_connection,"administrator@win.lab",$pass);
$result = ldap_bind($ldap_connection,"cn=administrator,cn=Users,dc=win,dc=lab",$pass);
}catch (Exception $e){
dd($e->getMessage());
}
$search = ldap_search($ldap_connection, "dc=win,dc=lab" , "(objectclass=person)");
$users = ldap_get_entries($ldap_connection, $search);
$mert = [];
......@@ -46,15 +52,15 @@ for($i = 0 ; $i < $users["count"] ; $i++){
}
$user_details[$k]["cn"] = $attributes[0]["cn"][0];
$user_details[$k]["name"] = $attributes[0]["name"][0];
$user_details[$k]["sn"] = $attributes[0]["sn"][0];
$user_details[$k]["givenName"] = $attributes[0]["givenName"][0];
$user_details[$k]["samaccountname"] = $attributes[0]["samaccountname"][0];
$user_details[$k]["whenCreated"] = $attributes[0]["whenCreated"][0];
$user_details[$k]["whenChanged"] = $attributes[0]["whenChanged"][0];
$user_details[$k]["pwdLastSet"] = $attributes[0]["pwdLastSet"][0];
$user_details[$k]["lastLogon"] = $attributes[0]["lastLogon"][0];
$user_details[$k]["lastLogoff"] = $attributes[0]["lastLogoff"][0];
$user_details[$k]["accountExpires"] = $attributes[0]["accountExpires"][0];
// $user_details[$k]["sn"] = $attributes[0]["sn"][0];
// $user_details[$k]["givenName"] = $attributes[0]["givenName"][0];
// $user_details[$k]["samaccountname"] = $attributes[0]["samaccountname"][0];
// $user_details[$k]["whenCreated"] = $attributes[0]["whenCreated"][0];
// $user_details[$k]["whenChanged"] = $attributes[0]["whenChanged"][0];
// $user_details[$k]["pwdLastSet"] = $attributes[0]["pwdLastSet"][0];
// $user_details[$k]["lastLogon"] = $attributes[0]["lastLogon"][0];
// $user_details[$k]["lastLogoff"] = $attributes[0]["lastLogoff"][0];
// $user_details[$k]["accountExpires"] = $attributes[0]["accountExpires"][0];
}
$t = &$t[$k];
......@@ -131,16 +137,16 @@ for($i = 0 ; $i < $users["count"] ; $i++){
tree.on('select',function(e){
let cn = e.data.name;
document.getElementById("cn").innerText = user_details[cn]["cn"];
document.getElementById("whencreated").innerText = user_details[cn]["whencreated"];
document.getElementById("whenchanged").innerText = user_details[cn]["whenchanged"];
// document.getElementById("whencreated").innerText = user_details[cn]["whencreated"];
// document.getElementById("whenchanged").innerText = user_details[cn]["whenchanged"];
document.getElementById("name").innerText = user_details[cn]["name"];
document.getElementById("sn").innerText = user_details[cn]["sn"];
document.getElementById("givenName").innerText = user_details[cn]["givenName"];
document.getElementById("samaccountname").innerText = user_details[cn]["samaccountname"];
document.getElementById("pwdLastSet").innerText = user_details[cn]["pwdLastSet"];
document.getElementById("lastLogon").innerText = user_details[cn]["lastLogon"];
document.getElementById("lastLogoff").innerText = user_details[cn]["lastLogoff"];
document.getElementById("accountExpires").innerText = user_details[cn]["accountExpires"];
// document.getElementById("sn").innerText = user_details[cn]["sn"];
// document.getElementById("givenName").innerText = user_details[cn]["givenName"];
// document.getElementById("samaccountname").innerText = user_details[cn]["samaccountname"];
// document.getElementById("pwdLastSet").innerText = user_details[cn]["pwdLastSet"];
// document.getElementById("lastLogon").innerText = user_details[cn]["lastLogon"];
// document.getElementById("lastLogoff").innerText = user_details[cn]["lastLogoff"];
// document.getElementById("accountExpires").innerText = user_details[cn]["accountExpires"];
});
let user_details = <?php echo json_encode($user_details) ?>;
</script>
\ No newline at end of file
......@@ -4,9 +4,9 @@
@include('title',[
"title" => "Betikler"
])
<button type="button" class="btn btn-success" onclick="window.location.href = '{{route('script_add')}}'">
{{ __("Betik Oluştur") }}
</button>
{{--<button type="button" class="btn btn-success" onclick="window.location.href = '{{route('script_add')}}'">--}}
{{--{{ __("Betik Oluştur") }}--}}
{{--</button>--}}
@include('modal-button',[
"class" => "btn-primary",
......@@ -32,7 +32,8 @@
</thead>
<tbody>
@foreach ($scripts as $script)
<tr class="highlight" onclick="window.location.href = '{{route('script_one',$script->_id)}}'">
{{--<tr class="highlight" onclick="window.location.href = '{{route('script_one',$script->_id)}}'">--}}
<tr class="">
<td>{{$script->name}}</td>
</tr>
@endforeach
......
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAzpQSCBvij2klRGeKYZP50nv8ySK8SjNmXPwhfAMC7hE030Gh
WJGbEPvOYKffmNso3Tnk9md8ykgUVrA+1f0LasZGORhFQlqS2FNfENK7/eugAuDz
EeDUEz9caa/+5xiDxWwdpq2i5AuEFmFcSZ+oh8zQedh79UrD+S1oUr4yM5v+vAq8
ksFCHk5Np1O7dbtcBkgjmBxv03SuRxldN8OQSHlPycaRQlb9P0x+LW0WC+HFSnox
EkqaFM5oyGHCfq6jdz+gObW/crjLeji3s9DXWxNDK67QIFkloiYVBNu3QVrbTuGT
o0b8ExZGH0Vfn5m4s3g6UCQL7LGCbHTvOR8r+wIDAQABAoIBACuEid/nb+ziK5Wj
ckVoFOLAd9ovVRcUiOXhv3QOdlmMimTVwJWV5uLHCQzXkIT09kDUZ2V5G5LJaG9y
pWoS6orNxhFVCZIW3oRv28EBg9TUBFtW5B3KDSMY3/DrwHkScv/t7LkmLwB3ZJYK
YJSp66jf/rMMZeCgpXQimq2Dn7O7Mh34faHCU/dFLT8SC3UUoMQzRWQC0CtdbMVW
ECFImL5nvPPhJvs8F37CaNX70YuqswqYVMNvNxvIccG06FIE57bVtQYgkOoc1imR
6r+KCgyD1dEV5lTQZycUxrbY06H1ti4Dw4JeMxyE01RufYwJQ87X+ib6Wmb2OXcj
tQH9O7ECgYEA61v+vJ1/7Vu2wAePxInr7OHJmtpPlnO7AD1CSEgw0qx5FZrCB3UG
kIMWz3UjKKNyarD/L4WskQfxNJ86mOZ+cbGhhoS8XUTRg3C2MMhPW5yo0lY9OaHU
Hd7vamyRsxfGbHTxj7+3N6/4IRaPiZlgUtX3v3EGGBi1g4AxLvGk9PcCgYEA4LHr
hTzxHuHx66r6eF15qJwFA1vapDoz1h0SbZ50QYpW3tl/PNfAmCV1qYVIyVVeWw7B
hGQCYNANbFeby5pkAe/LWN3GjqtLJabJih6OxH60kXOnq0ktZfgGPJtWsMevzKUq
i27vAwxNW2o2ANkdB9CZpHas5Arb6Lh4x8as9B0CgYEAkxYqC7wuX6sqebYADibX
r3Gn6cO3a2ImIs8l5kBfarno7iyKR9jF4nhaQAqHj3UeIzk8MXnLz9Nz1ZwRJc8e
hHUragL4KR3CBe/hnHkCx1EPXGwS1TqicoyJeSwinhckpVEsSdbZbM7nNd6Ak9Cr
lvkrXJQI5/RBM85gbmML4R8CgYEAgUd9FgTxSm5/rbOLNvO5Sryx2bPgwXrHVlsV
vkJb61W4E7IaFhygsCllYGrSbRyUFFoSF6UfBSrPflWNywCCp+abHf9D/dQqgXhM
Hw7j38RzCfj8MH4DA9dHZ1mM8FuEF3+0UdM664sJex5KAgTpQhTQQaMSaIai7mws
+eyimDUCgYEAltA3eL6p4OEAn2/hxYfKKFuIGyXeqjLfukDLS2G2W1K64He24ZKO
fzqISFjmAcX0zNh9pGWppm/k/DnjrFRvM1wDcsjqMXvYoOsY7okaRiQole8bSpOo
S3Azbaq/FEkxgL616FpBZWx3YA0BnEGAzVzUxJXY5dZLt/jSU0nZXVw=
-----END RSA PRIVATE KEY-----
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOlBIIG+KPaSVEZ4phk/nSe/zJIrxKM2Zc/CF8AwLuETTfQaFYkZsQ+85gp9+Y2yjdOeT2Z3zKSBRWsD7V/QtqxkY5GEVCWpLYU18Q0rv966AC4PMR4NQTP1xpr/7nGIPFbB2mraLkC4QWYVxJn6iHzNB52Hv1SsP5LWhSvjIzm/68CrySwUIeTk2nU7t1u1wGSCOYHG/TdK5HGV03w5BIeU/JxpFCVv0/TH4tbRYL4cVKejESSpoUzmjIYcJ+rqN3P6A5tb9yuMt6OLez0NdbE0MrrtAgWSWiJhUE27dBWttO4ZOjRvwTFkYfRV+fmbizeDpQJAvssYJsdO85Hyv7 mert@pardus17011
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment