Kaydet (Commit) 67e5f82e authored tarafından mertcelen's avatar mertcelen

Add Script added.

üst 02edcfae
......@@ -27,4 +27,37 @@ class HomeController extends Controller
"stats" => shell_exec("screenfetch")
]);
}
public function setLocale(){
$languages = ["tr","en"];
if(request()->has('locale') && in_array(request('locale'),$languages)){
\Session::put('locale', request('locale'));
return response('Alright',200);
}else{
return response('Language not found',404);
}
}
public function new(){
return view('permission.request');
}
public function all(){
$requests = \App\Request::where('user_id',\Auth::id())->get();
return view('permission.all',[
"requests" => $requests
]);
}
public function request(){
$req = new \App\Request();
$req->user_id = \Auth::id();
$req->email = request('email');
$req->note = request('note');
$req->type = request('type');
$req->speed = request('speed');
$req->status = 0;
$req->save();
return response('Alright',200);
}
}
......@@ -6,5 +6,21 @@ use Illuminate\Http\Request;
class PermissionController extends Controller
{
public function grant(){
// First check if user is has permission to give permission.
if($this->ability(request('type'),request('id')) == false){
abort('Not allowed!',403);
}
}
private function ability($type,$id){
if(Auth::user()->isAdmin()){
return true;
}
//TODO
// $permissions = request('permissions');
// if($permissions->__get($type) == null || in_array($id,$permissions->__get($type)) == false){
// return false;
// }
}
}
......@@ -48,8 +48,8 @@ class ScriptController extends Controller
public function create(){
$script = new Script();
$script = Script::fillValues($script,\request('language'),\request('encoding'),\request('root'),\request('name'),
\request('description'),\request('version'),\request('extensions'),\request('inputs'),\request('outputs')
$script = Script::fillValues($script,"!/usr/bin/python3","-*- coding: utf-8 -*-","1",\request('name'),
\request('description'),\request('version'),\request('extensions'),\request('inputs'),""
,\request('type'),\Auth::user()->name,\request('support_email'),\request('company'),\request('unique_code'),\request('code'));
$script->save();
return [
......
......@@ -6,19 +6,11 @@ use App\User;
class UserController extends Controller
{
public function index(){
return view('users.index',[
"users" => User::all(),
]);
}
public function setLocale(){
$languages = ["tr","en"];
if(request()->has('locale') && in_array(request('locale'),$languages)){
\Session::put('locale', request('locale'));
return response('Alright',200);
}else{
return response('Language not found',404);
}
public function one(){
$user = User::where('_id',request('user_id'))->first();
return view('users.one',[
"user" => $user
]);
}
}
<?php
namespace App;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
class Request extends Eloquent
{
protected $collection = 'requests';
protected $connection = 'mongodb';
}
......@@ -70,6 +70,20 @@ body {
padding-top: 48px; /* Space for fixed navbar */
}
#inputs span{
border:1px solid black;
border-radius: 10px;
margin:10px;
padding: 3px;
font-size: 20px;
}
.number{
background-color : blue;
}
.string{
background-color : pink;
}
/*
* Navbar
*/
......
function request(url,data,next) {
var form = new FormData(data);
// var form = new FormData(data);
var r = new XMLHttpRequest();
r.open("POST",url);
r.setRequestHeader('X-CSRF-TOKEN', csrf);
r.send(form);
r.send(data);
r.onload = function(response){
next(response);
}
......
......@@ -79,8 +79,13 @@
<a href="{{route('settings')}}">{{ __("Sistem Ayarları") }}</a>
</li>
@endp
@if(Auth::user()->isAdmin() == false)
<li>
<a onclick="navbar(true);" class="text-right"></a>
<a href="{{route('request_permission')}}">{{ __("Yetki Talebi") }}</a>
</li>
@endif
<li>
<a onclick="navbar(true);" class="text-right">Toggle</a>
</li>
</ul>
</div>
......
......@@ -11,18 +11,23 @@
<span aria-hidden="true">&times;</span>
</button>
</div>
<form onsubmit="return @isset($url)request('{{$url}}',this)@endisset" target="#">
@if(isset($onsubmit))
<form @isset($id)id="{{$id}}_form"@endisset onsubmit="return {{$onsubmit}}" target="#">
@else
<form @isset($id)id="{{$id}}_form"@endisset onsubmit="return @isset($url)request('{{$url}}',this)@endisset" target="#">
@endif
<div class="modal-body">
@if(isset($inputs) && is_array($inputs))
@foreach ($inputs as $name => $input)
<h5>{{__($name)}}</h5>
@if(is_array($input))
<select name="{{$name}}" class="form-control" required>
<h5>{{__(explode(":",$name)[0])}}</h5>
<select name="{{explode(":",$name)[1]}}" class="form-control" required>
@foreach ($input as $key => $value)
<option value="{{$value}}">{{__($key)}}</option>
@endforeach
</select>
</select><br>
@else
<h5>{{__($name)}}</h5>
<input type="{{explode(":", $input)[1]}}" name="{{explode(":", $input)[0]}}" placeholder="{{__($name)}}" class="form-control" required><br>
@endif
@endforeach
......
@extends('layouts.app')
@section('content')
@include('title',[
"title" => "Yetki Taleplerim"
])
@include('modal-button',[
"class" => "btn-success",
"target_id" => "request",
"text" => "Yetki İste"
])<br><br>
<table class="table">
<thead>
<tr>
<th scope="col">{{__("Tipi")}}</th>
<th scope="col">{{__("Notu")}}</th>
<th scope="col">{{__("Durumu")}}</th>
</tr>
</thead>
<tbody>
<?php
$list = [
"server" => "Sunucu",
"script" => "Betik",
"extension" => "Eklenti",
"other" => "Diğer"
];
?>
@foreach ($requests as $request)
<tr class="highlight">
<td>{{__($list[$request->type])}}</td>
<td>{{$request->note}}</td>
<td>
@switch($request->status)
@case(0)
{{__("Talep Alındı")}}
@break
@case(1)
{{__("İşleniyor")}}
@break
@default
{{__("Tamamlandı.")}}
@endswitch
</td>
</tr>
@endforeach
</tbody>
</table>
@include('modal',[
"id"=>"request",
"title" => "Yetki İste",
"url" => route('request_send'),
"inputs" => [
"Email" => "email:text",
"Yetki Tipi:type" => [
"Sunucu" => "server",
"Betik" => "script",
"Eklenti" => "extension",
"Diğer" => "other"
],
"Önem Derecesi:speed" => [
"Normal" => "normal",
"Acil" => "urgent"
],
"Açıklama" => "note:text"
],
"submit_text" => "Talep Aç"
])
@endsection
\ No newline at end of file
@extends('layouts.app')
@section('content')
@include('title',[
"title" => "Yetki Talebi"
])
<form onsubmit="return request('{{route('request_send')}}',this)">
<div class="form-group">
<label>{{__("İletişim Adresi")}}</label>
<input name="email" type="email" class="form-control" value="{{Auth::user()->email}}" required>
</div>
<div class="form-group">
<label>{{__("Yetki Tipi")}}</label>
<select name="type" class="form-control" required>
<option value="server">{{__("Sunucu")}}</option>
<option value="script">{{__("Betik")}}</option>
<option value="extension">{{__("Eklenti")}}</option>
<option value="other">{{__("Diğer")}}</option>
</select>
</div>
<div class="form-group">
<label>{{__("Önem Derecesi")}}</label>
<select name="speed" class="form-control" required>
<option value="normal">{{__("Normal")}}</option>
<option value="urgent">{{__("Acil")}}</option>
</select>
</div>
<div class="form-group">
<label>{{__("Açıklama")}}</label>
<textarea name="note" class="form-control" rows="3" required></textarea>
</div>
<button class="btn btn-success" type="submit">Talebi Gönder</button>
</form>
@endsection
\ No newline at end of file
......@@ -296,7 +296,6 @@
data:data
},function (data,status) {
if(data["result"] === 200){
//window.location.replace("{{route('users')}}" + "/" + data["id"]);
}else{
alert("Hata!");
}
......
@extends('layouts.app')
@section('content')
@include('title',[
"title" => "Sunucular"
])
......
......@@ -32,7 +32,7 @@
</thead>
<tbody data-toggle="modal" data-target="#new">
@foreach ($users as $user)
<tr class="highlight">
<tr class="highlight" onclick="location.href = '{{route('user',$user->_id)}}'">
<td>{{$user->name}}</td>
<td>{{$user->email}}</td>
</tr>
......
@extends('layouts.app')
@section('content')
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom">
<h2>Kullanıcılar</h2>
</div>
<button type="button" class="btn btn-success" data-toggle="modal" data-target="#userAdd">
Kullanıcı Ekle
</button><br><br>
<table id="mainTable" class="table">
<thead>
<tr>
<th scope="col">Kullanıcı Adı</th>
<th scope="col">Email</th>
<th scope="col"></th>
</tr>
</thead>
<tbody data-toggle="modal" data-target="#new">
@foreach ($users as $user)
<tr class="highlight">
<td>{{$user->name}}</td>
<td>{{$user->email}}</td>
</tr>
@endforeach
</tbody>
</table>
<div class="modal fade" id="new" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title" id="exampleModalLabel">Kullanıcı İşlemleri</h1>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<form onsubmit="add(event,'update')">
<div class="modal-body">
<td>
<div class="form-group">
<h3>Kullanıcı Adı</h3>
<input id="change_name" type="text" name="kullanici_adi" class="form-control" placeholder="Kullanıcı adı" value="" required minlength="3">
</div>
<div class="form-group">
<h3>Email Adresi</h3>
<input id="change_email" type="text" name="email" class="form-control" placeholder="Ex: example@example.com" value=""required pattern="[a-zA-Z0-9_\.\+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-\.]+">
</div>
<div class="form-group">
<h3>Parola</h3>
<input id="change_pass" placeholder="Parola" name="password" type="password" value="" class="form-control" required>
</div>
<div>
<input type="checkbox" onclick="myFunction()">Show Password
</div>
</td>
</div>
<div class="modal-footer">
<button class="btn btn-danger" id="button1" data-dismiss="modal" data-toggle="modal" data-target="#check" onclick="deletion(this)">Hesabı Kapat</button>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<button type="button" class="btn btn-secondary" data-dismiss="modal">Çıkış</button>
<button class="btn btn-primary" type="submit" value="Düzenle">Düzenle</button>
</div>
</form>
</div>
</div>
</div>
<div class="modal fade" id="check" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Kullanıcı Sil</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<h3>Kullanıcıyı silmek istediğinize emin misiniz? Bu işlem geri alınamayacaktır.</h3>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">İptal</button>
<button type="button" class="btn btn-danger" onclick="deletion(this)">Kullanıcıyı Sil</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="userAdd" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title" id="exampleModalLabel">Kullanıcı Ekle</h1>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<form onsubmit="add(event,'add')">
<div class="modal-body">
<div class="form-group">
<h3>Kullanıcı Adı</h3>
<input id="add_name" type="text" class="form-control" name="kullanici_adi" placeholder="Kullanıcı adı" required minlength="3">
</div>
<div class="form-group">
<h3>Email Adresi</h3>
<input id="add_email" type="text" class="form-control" name="email" placeholder="Email Adresi" required pattern="[a-zA-Z0-9_\.\+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-\.]+">
</div>
<div class="form-group">
<h3>Parola</h3>
<input id="add_parola" type="password" name="password" class="form-control" placeholder="Parola" required>
</div>
<div>
<input type="checkbox" onclick="myFunction()">Show Password
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">İptal</button>
<button type="button" class="btn btn-success" type="submit">Ekle</button>
</div>
</form>
</div>
</div>
</div>
<script>
function deletion(event){
$('tr.selected').removeClass('selected');
// add selected class to current row
$(this).closest('tr').addClass('selected');
$.post("" ,{
},function (data,status) {
if(data["result"] === 200){
location.reload();
}else{
alert("Hata!");
}
});
}
function add(event) {
event.preventDefault();
$("#add_dhcp").prop("checked") ? features = features + "1" : 0;
$("#add_dns").prop("checked") ? features = features + "2" : 0;
$("#add_ldap").prop("checked") ? features = features + "3" : 0;
$.post("event=='add' ? {{route('server_add')}}:{{route('server_add')}}" ,{
name : jQuery('input[name="kullanici_adi"]').val(),
email : jQuery('input[name="email"]').val(),
parola : jQuery('input[name="password"]').val(),
},function (data,status) {
if(data["result"] === 200){
location.reload();
//window.location.replace("{{route('users')}}" + "/" + data["id"]);
}else{
alert("Hata!");
}
});
}
function myFunction() {
var x = document.getElementById("change_pass");
var y=document.getElementById("add_parola");
if (x.type === "password") {
x.type = "text";
} else {
x.type = "password";
}
if (y.type === "password") {
y.type = "text";
} else {
y.type = "password";
}
}
</script>
@endsection
\ No newline at end of file
@extends('layouts.app')
@section('content')
@include('title',[
"title" => $user->name
])
@endsection
\ No newline at end of file
......@@ -2,7 +2,7 @@
Auth::routes();
Route::post('/locale','UserController@setLocale')->name('set_locale');
Route::post('/locale','HomeController@setLocale')->name('set_locale');
Route::group(['middleware' => ['auth','permissions']], function () {
......@@ -28,7 +28,7 @@ Route::group(['middleware' => ['auth','permissions']], function () {
Route::get('/anahtarlar','SshController@index')->name('keys');
Route::post('/anahtar/ekle','SshController@add')->name('key_add');
Route::get('/kullanicilar','UserController@index')->name('users');
Route::get('/kullanici/{user_id}','UserController@one')->name('user');
Route::get('/betikler', 'ScriptController@index')->name('scripts');
Route::get('/betik/ekle', 'ScriptController@add')->name('script_add');
......@@ -44,4 +44,7 @@ Route::group(['middleware' => ['auth','permissions']], function () {
Route::get('/eklentiler' , 'ExtensionController@settings')->name('extensions_settings');
Route::get('/eklentiler/{extension_id}','ExtensionController@one')->name('extension_one');
Route::get('/talep','HomeController@all')->name('request_permission');
Route::post('/talep','HomeController@request')->name('request_send');
});
\ No newline at end of file
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