Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
L
Liman MYS - Çekirdek
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
liman
Liman MYS - Çekirdek
Commits
1e37fe7a
Kaydet (Commit)
1e37fe7a
authored
Ock 07, 2019
tarafından
mertcelen
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Grant Permission of Server.
üst
5f43812a
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
184 additions
and
45 deletions
+184
-45
PermissionController.php
app/Http/Controllers/PermissionController.php
+1
-1
MainController.php
app/Http/Controllers/Server/MainController.php
+39
-0
OneController.php
app/Http/Controllers/Server/OneController.php
+12
-14
Key.php
app/Key.php
+20
-0
extension.blade.php
resources/views/permission/requests/extension.blade.php
+11
-0
other.blade.php
resources/views/permission/requests/other.blade.php
+11
-0
script.blade.php
resources/views/permission/requests/script.blade.php
+11
-0
server.blade.php
resources/views/permission/requests/server.blade.php
+11
-0
one.blade.php
resources/views/server/one.blade.php
+14
-26
one_auth.blade.php
resources/views/server/one_auth.blade.php
+22
-4
web.php
routes/web.php
+4
-0
5c3302f778229543b6287c52
storage/keys/5c3302f778229543b6287c52
+27
-0
5c3302f778229543b6287c52.pub
storage/keys/5c3302f778229543b6287c52.pub
+1
-0
No files found.
app/Http/Controllers/PermissionController.php
Dosyayı görüntüle @
1e37fe7a
...
...
@@ -32,7 +32,7 @@ class PermissionController extends Controller
public
function
one
(){
$request
=
\App\LimanRequest
::
where
(
'_id'
,
request
(
'permission_id'
))
->
first
();
$request
->
user_name
=
\App\User
::
where
(
'_id'
,
$request
->
user_id
)
->
first
()
->
name
;
return
view
(
'permission.
one'
,[
return
view
(
'permission.
requests.'
.
$request
->
type
,[
"request"
=>
$request
]);
}
...
...
app/Http/Controllers/Server/MainController.php
Dosyayı görüntüle @
1e37fe7a
...
...
@@ -6,6 +6,7 @@ use App\Key;
use
App\Permission
;
use
App\Server
;
use
App\Http\Controllers\Controller
;
use
App\User
;
use
Auth
;
use
GuzzleHttp\Client
;
use
GuzzleHttp\Psr7\Request
;
...
...
@@ -102,4 +103,42 @@ class MainController extends Controller
"id"
=>
$json
->
id
])
->
withCookie
(
cookie
(
'_xsrf'
,
$client
->
getConfig
(
'cookies'
)
->
toArray
()[
0
][
"Value"
]));
}
public
function
grant
(){
$user
=
User
::
where
(
'email'
,
request
(
'email'
))
->
first
();
if
(
$user
==
null
){
return
respond
(
"Kullanıcı bulunamadı."
,
404
);
}
// Give User a permission to use this server.
$permissions
=
Permission
::
where
(
'user_id'
,
$user
->
_id
)
->
first
();
$user_servers
=
(
Array
)
$permissions
->
server
;
array_push
(
$user_servers
,
request
(
'server'
)
->
_id
);
$permissions
->
server
=
$user_servers
;
// Lastly, save all information.
$permissions
->
save
();
// Generate key for user.
Key
::
initWithKey
(
request
(
'server'
)
->
key
->
username
,
request
(
'server'
)
->
key
->
_id
,
request
(
'server'
)
->
ip_address
,
request
(
'server'
)
->
port
,
Auth
::
id
(),
$user
->
_id
);
// Built key object for user.
$key
=
new
Key
([
"name"
=>
request
(
'server'
)
->
key
->
name
,
"username"
=>
request
(
'server'
)
->
key
->
username
,
"server_id"
=>
request
(
'server'
)
->
_id
]);
$key
->
user_id
=
$user
->
_id
;
$key
->
save
();
return
respond
(
"Yetki başarıyla verildi."
);
}
public
function
revoke
(){
}
}
app/Http/Controllers/Server/OneController.php
Dosyayı görüntüle @
1e37fe7a
...
...
@@ -13,30 +13,28 @@ class OneController extends Controller
}
public
function
authorized
(){
$server
=
\request
(
'server'
);
$available_services
=
Extension
::
all
();
$services
=
[];
foreach
(
$server
->
extensions
as
$service
){
array_push
(
$services
,
$available_services
->
where
(
'_id'
,
$service
)
->
first
());
}
return
view
(
'server.one_auth'
,
[
"stats"
=>
\request
(
'server'
)
->
run
(
"df -h"
),
"hostname"
=>
request
(
'server'
)
->
run
(
"hostname"
),
"server"
=>
\request
(
'server'
),
"
available_services"
=>
$available_services
,
"
services"
=>
$services
,
"
installed_extensions"
=>
$this
->
installedExtensions
()
,
"
available_extensions"
=>
$this
->
availableExtensions
()
,
]);
}
public
function
unauthorized
(){
$available_services
=
Extension
::
all
();
$services
=
[];
foreach
(
request
(
'server'
)
->
extensions
as
$service
){
array_push
(
$services
,
$available_services
->
where
(
'_id'
,
$service
)
->
first
());
}
return
view
(
'server.one'
,[
"services"
=>
$services
,
"installed_extensions"
=>
$this
->
installedExtensions
(),
"available_extensions"
=>
$this
->
availableExtensions
(),
"server"
=>
request
(
'server'
)
]);
}
public
function
availableExtensions
(){
return
Extension
::
whereNotIn
(
'_id'
,
request
(
'server'
)
->
extensions
)
->
get
();
}
public
function
installedExtensions
(){
return
Extension
::
whereIn
(
'_id'
,
request
(
'server'
)
->
extensions
)
->
get
();
}
}
app/Key.php
Dosyayı görüntüle @
1e37fe7a
...
...
@@ -28,4 +28,24 @@ class Key extends Eloquent
shell_exec
(
"sshpass -p '"
.
$password
.
"' ssh-copy-id -i "
.
storage_path
(
'keys'
)
.
DIRECTORY_SEPARATOR
.
$account_name
.
" "
.
$username
.
"@"
.
$server_address
.
" 2>&1 -p "
.
$server_port
);
}
public
static
function
initWithKey
(
$username
,
$key
,
$server_address
,
$server_port
,
$current_name
,
$new_name
){
//Create keys folder
if
(
!
is_dir
(
storage_path
(
'keys'
)))
{
shell_exec
(
"mkdir -p "
.
storage_path
(
'keys'
));
}
//Generate key and put it into keys folder, dont regenerate!
if
(
!
file_exists
(
storage_path
(
'keys'
)
.
DIRECTORY_SEPARATOR
.
$new_name
)){
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"
);
//Send Keys to target
shell_exec
(
'cat '
.
storage_path
(
'keys'
)
.
DIRECTORY_SEPARATOR
.
$new_name
.
".pub | ssh -i "
.
storage_path
(
'keys'
)
.
DIRECTORY_SEPARATOR
.
$current_name
.
"
$username
@
$server_address
-p
$server_port
'cat >> .ssh/authorized_keys'"
);
}
}
resources/views/permission/requests/extension.blade.php
0 → 100644
Dosyayı görüntüle @
1e37fe7a
@
extends
(
'layouts.app'
)
@
section
(
'content'
)
@
include
(
'title'
,[
"title"
=>
$request
->
user_name
.
" kullanıcısının "
.
$request
->
created_at
.
" tarihli talebi"
])
<
button
class
="
btn
btn
-
success
" onclick="
history
.
back
()
">{{__("
Geri
Dön
")}}</button><br><br>
EXTENSION
@endsection
\ No newline at end of file
resources/views/permission/requests/other.blade.php
0 → 100644
Dosyayı görüntüle @
1e37fe7a
@
extends
(
'layouts.app'
)
@
section
(
'content'
)
@
include
(
'title'
,[
"title"
=>
$request
->
user_name
.
" kullanıcısının "
.
$request
->
created_at
.
" tarihli talebi"
])
<
button
class
="
btn
btn
-
success
" onclick="
history
.
back
()
">{{__("
Geri
Dön
")}}</button><br><br>
OTHER
@endsection
\ No newline at end of file
resources/views/permission/requests/script.blade.php
0 → 100644
Dosyayı görüntüle @
1e37fe7a
@
extends
(
'layouts.app'
)
@
section
(
'content'
)
@
include
(
'title'
,[
"title"
=>
$request
->
user_name
.
" kullanıcısının "
.
$request
->
created_at
.
" tarihli talebi"
])
<
button
class
="
btn
btn
-
success
" onclick="
history
.
back
()
">{{__("
Geri
Dön
")}}</button><br><br>
SCRIPT
@endsection
\ No newline at end of file
resources/views/permission/requests/server.blade.php
0 → 100644
Dosyayı görüntüle @
1e37fe7a
@
extends
(
'layouts.app'
)
@
section
(
'content'
)
@
include
(
'title'
,[
"title"
=>
$request
->
user_name
.
" kullanıcısının "
.
$request
->
created_at
.
" tarihli talebi"
])
<
button
class
="
btn
btn
-
success
" onclick="
history
.
back
()
">{{__("
Geri
Dön
")}}</button><br><br>
SERVER
@endsection
\ No newline at end of file
resources/views/server/one.blade.php
Dosyayı görüntüle @
1e37fe7a
...
...
@@ -17,22 +17,18 @@
"
target_id
" => "
install_extension
",
"
text
" => "
Servisi
Aktifleştir
"
])<br><br>
@if(count(
$
service
s
) > 0)
@if(count(
$
installed_extension
s
) > 0)
<h4>{{__("
Servis
Durumları
")}}</h4>
@foreach(
$services
as
$service
)
<button type="
button
" class="
btn
btn
-
secondary
btn
-
lg
" style="
cursor
:
default
;
" id="
status_
{{
$service
->
service
}}
">
{
{strtoupper($service->name)}
}
@foreach(
$installed_extensions
as
$extension
)
<button type="
button
" class="
btn
btn
-
secondary
btn
-
lg
" style="
cursor
:
default
;
"
id="
status_
{{
$extension
->
service
}}
">
{
{strtoupper($extension->name)}
}
</button>
@endforeach
@else
<h4>{{__("
Yüklü
servis
yok
.
")}}</h4>
@endif
<br><br>
<pre>
@isset(
$stats
)
{
{$stats}
}
@endisset
</pre>
@include('modal-button',[
"
class
"
=>
"
btn
-
danger
",
...
...
@@ -147,29 +143,21 @@
],
"
submit_text
" => "
Düzenle
"
])
<?php
$new_extensions
= [];
foreach (
$available_extensions
as
$current
) {
$new_extensions
[
$current->name
. "
:
" .
$current->_id
] = [
$current->name
. "
:
" .
$current->_id
=> "
extension_id
:
hidden
"
];
}
?>
@include('modal',[
"
id
"=>"
install_extension
",
"
title
" => "
Servisi
Aktifleştir
",
"
url
" => route('server_extension'),
"
next
" => "
message
",
"
selects
" => [
"
DNS
:
5
c0a170f7b57f19953126e37
" => [
"
DNS
:
5
c0a170f7b57f19953126e37
" => "
extension_id
:
hidden
"
],
"
DHCP
:
5
c0a1c5f7b57f19953126e38
" => [
"
DHCP
:
5
c0a1c5f7b57f19953126e38
" => "
extension_id
:
hidden
"
],
"
Kullanıcılar
:
5
c0a1c687b57f19953126e39
" => [
"
Kullanıcılar
:
5
c0a1c687b57f19953126e39
" => "
extension_id
:
hidden
"
],
"
Gruplar
:
5
c0a1c787b57f19953126e3a
" => [
"
Gruplar
:
5
c0a1c787b57f19953126e3a
" => "
extension_id
:
hidden
"
],
"
Bilgisayarlar
:
5
c0a1c817b57f19953126e3b
" => [
"
Bilgisayarlar
:
5
c0a1c817b57f19953126e3b
" => "
extension_id
:
hidden
"
]
],
"
selects
" =>
$new_extensions
,
"
inputs
" => [
"
Sunucu
Id
:
$server
->
_id
" => "
server_id
:
hidden
"
],
...
...
resources/views/server/one_auth.blade.php
Dosyayı görüntüle @
1e37fe7a
...
...
@@ -47,10 +47,15 @@
"
class
"
=>
"
btn
-
outline
-
success
",
"
target_id
" => "
terminal
",
"
text
" => "
Terminal
"
])
@include('modal-button',[
"
class
"
=>
"
btn
-
outline
-
info
",
"
target_id
" => "
give_permission
",
"
text
" => "
Yetki
Ver
"
])<br><br>
@if(count(
$
service
s
) > 0)
@if(count(
$
installed_extension
s
) > 0)
<h4>{{__("
Servis
Durumları
")}}</h4>
@foreach(
$
service
s
as
$service
)
@foreach(
$
installed_extension
s
as
$service
)
<button type="
button
" class="
btn
btn
-
secondary
btn
-
lg
" style="
cursor
:
default
;
" id="
status_
{{
$service
->
service
}}
">
{
{strtoupper($service->name)}
}
</button>
...
...
@@ -213,6 +218,19 @@
"
submit_text
" => "
Değiştir
"
])
@include('modal',[
"
id
"=>"
give_permission
",
"
title
" => "
Kullanıcıya
Yetki
Ver
",
"
url
" => route('server_grant_permission'),
"
next
" => "
function
(){
return
false
;}
",
"
inputs
" => [
"
Kullanıcı
Emaili
" => "
email
:
text
",
"
Sunucu
Id
:
$server
->
_id
" => "
server_id
:
hidden
"
],
"
text
" => "
Güvenlik
sebebiyle
kullanıcı
listesi
sunulmamaktadır
.
",
"
submit_text
" => "
Yetkilendir
"
])
@include('modal',[
"
id
"=>"
file_upload
",
"
title
" => "
Dosya
Yükle
",
...
...
@@ -300,8 +318,8 @@
});
}
@if(count(
$
service
s
) > 0)
@foreach(
$
service
s
as
$service
)
@if(count(
$
installed_extension
s
) > 0)
@foreach(
$
installed_extension
s
as
$service
)
setInterval(function () {
checkStatus('
{
{$service->service}
}
');
}, 3000);
...
...
routes/web.php
Dosyayı görüntüle @
1e37fe7a
...
...
@@ -81,6 +81,10 @@ Route::group(['middleware' => ['auth','permissions']],function () {
// Server Download File Route
Route
::
get
(
'/sunucu/indir'
,
'Server\MainController@download'
)
->
name
(
'server_download'
)
->
middleware
(
'parameters:path'
);
// Server Permission Grant Route
Route
::
post
(
'/sunucu/yetkilendir'
,
'Server\MainController@grant'
)
->
name
(
'server_grant_permission'
)
->
middleware
(
'parameters:server_id,email'
);
});
// Remove Server Route
...
...
storage/keys/5c3302f778229543b6287c52
0 → 100644
Dosyayı görüntüle @
1e37fe7a
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA7ly3Ja8GIt6O8bds7UUZ/CpPykSTkL3902PSWF5LseMcwNwf
KtGfOu/IsUgnJaJyCgY6O5mygm5OqMfmmiNGlywTlIkwsnau0xn58ii61W+zIxsk
rpTRhGNUSkc/w6D0hPsD60zubSgWHtv6bh3syF1hZoZqZ9BI2QQkkETUd0UHbiMS
J/LsrtVEw1v1tsM9b87P0rC+P3RfxDiPv8P4Qh50yG5rjxUBcImfaj8pylGrmsYp
LbmNbtymuQ+p7ll0o+1C8eanAX/bYyEc3GkKOxNmWQ9DhFD384UXzROD38/RPqfa
AIq4H4TD+G7TpA6ha3XupDGWCvYrg9nk4vx9ZQIDAQABAoIBADdhrWABEYDqivXY
c2ORiZ8QSaeqVUrtCduits23Ywj6xsR8oHU3bTKpYcznAcl5u9teZQtSA6rQbFBE
2ex4Q79+CzKYyYq9jpMX1v4PvpE2ub1vYg96HlAPMBduBH+0lvuKwvdZ0Y/lH3ae
D8qkA07ue2Hx2ykxuKtLjh9DDsaC/Yk89UnxuGBEALz5/7WHJ9fVx6XRveUl++7g
04ZkXiykdr6zVKLnTgbpMfaQifVurullD6cBdtf2UbN26/e4h3B1s1Z/dZgzcn5R
VdgO5uFLmUoAzlLj719+NJ+MrU90na1C2qjgZHsoRN4b3RkvhvJpNkDiSpELy6MI
w5qNZkUCgYEA/bueATRC7voR90XGy9VG9en77oZqi7Ec2/3n3/sUrcroIxUgTOEK
EX6yyYpKnh3pn2KDgqHQ+MI2L9CHvAC0qA1AYhkrpqroCkhIiREyXAWnCyoyAcoi
ErvBvuhASRa2RqsV1/stxr6aai/4u3WG5tj1b4Bn/8SWrib0DG3yUusCgYEA8H3w
ibuRa8atqk+wjleGx+Jl9lY4cyrVDOXKr645slCRIeI1xSJIlsTYjWsI1ETqknsj
0O3WfkpHcoYioN3zF1G1ij5QPfX47fEapY7HId+joACUHjVHL0S/zEN5FbINKk/G
QvzsJL9e7SceZfien/WkHFDaFsx+tyHyhy52PO8CgYBnmZ6HMVaPCw4g352vBnNF
33bdSobgaL222XI+0t77oxirkmmw2kXpJMlNXyjebKpCSNAXm4ieuXW0ijmRutwI
rfh21X4sPCYoZKExThM43Zn6Bg2LC4RkD8Oo9l2hOiPMsPhnSojDWHnmF5ZAvFkL
ktSL5WsRVKyNiRwmoxHJZwKBgDJz6WOr0w1OSB7DyyGBoUgL6iIs4nje0oV7K/OB
VJ9hIaF/KJKr55ihwWChxN9red6zMMdjLi2efbC8DUW8aoRI4xIWkpT9JnUcsN9s
vcAQf+5QUMKpoL586NP8j8mKahKnW8uv7gajk1GjdFAmQXkDeqNqHubLjgXzfEL5
71pHAoGBAJPMJ/+lpwnrLm3JJ3Rh2jewNBD/900mGDMmOe9E6YvENm3G0CP4cP3w
RR89xYJxVeYq58cA8NHRHlaMs+ZaCtY2fqK6skvW1uJTL14f6E52y5Wbfb77hhVL
14lxSsR07/q9R/DWRH+cHOdVLJsY5B7EG4gb/Y2lXsdCrnksecvx
-----END RSA PRIVATE KEY-----
storage/keys/5c3302f778229543b6287c52.pub
0 → 100644
Dosyayı görüntüle @
1e37fe7a
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDuXLclrwYi3o7xt2ztRRn8Kk/KRJOQvf3TY9JYXkux4xzA3B8q0Z8678ixSCclonIKBjo7mbKCbk6ox+aaI0aXLBOUiTCydq7TGfnyKLrVb7MjGySulNGEY1RKRz/DoPSE+wPrTO5tKBYe2/puHezIXWFmhmpn0EjZBCSQRNR3RQduIxIn8uyu1UTDW/W2wz1vzs/SsL4/dF/EOI+/w/hCHnTIbmuPFQFwiZ9qPynKUauaxiktuY1u3Ka5D6nuWXSj7ULx5qcBf9tjIRzcaQo7E2ZZD0OEUPfzhRfNE4Pfz9E+p9oAirgfhMP4btOkDqFrde6kMZYK9iuD2eTi/H1l mert@pardus17011
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment