Skip to content

Commit 75374e2

Browse files
committed
API backend for Web File Manager
1 parent edcd549 commit 75374e2

11 files changed

+431
-42
lines changed

bin/v-add-fs-directory

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/bin/bash
2+
# info: add directory
3+
# options: USER DIRECTORY
4+
#
5+
# The function creates new directory on the file system
6+
7+
user=$1
8+
dst_dir=$2
9+
10+
# Checking arguments
11+
if [ -z "$dst_dir" ]; then
12+
echo "Usage: USER DIRECTORY"
13+
exit 1
14+
fi
15+
16+
# Checking vesta user
17+
if [ ! -e "$VESTA/data/users/$user" ]; then
18+
exit 1
19+
fi
20+
21+
# Checking user homedir
22+
homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
23+
if [ -z $homedir ]; then
24+
exit 1
25+
fi
26+
27+
# Checking destination path
28+
rpath=$(readlink -f "$dst_dir")
29+
if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then
30+
exit 1
31+
fi
32+
33+
# Adding directory
34+
sudo -u $user mkdir -p $dst_dir >/dev/null 2>&1
35+
36+
# Extiging
37+
exit $?

bin/v-add-fs-file

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/bin/bash
2+
# info: add file
3+
# options: USER FILE
4+
#
5+
# The function creates new files on file system
6+
7+
user=$1
8+
dst_file=$2
9+
10+
# Checking arguments
11+
if [ -z "$dst_file" ]; then
12+
echo "Usage: USER FILE"
13+
exit 1
14+
fi
15+
16+
# Checking vesta user
17+
if [ ! -e "$VESTA/data/users/$user" ]; then
18+
exit 1
19+
fi
20+
21+
# Checking user homedir
22+
homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
23+
if [ -z $homedir ]; then
24+
exit 1
25+
fi
26+
27+
# Checking destination path
28+
rpath=$(readlink -f "$dst_file")
29+
if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then
30+
exit 1
31+
fi
32+
33+
# Creating file
34+
sudo -u $user touch $dst_file >/dev/null 2>&1
35+
36+
# Exiting
37+
exit $?

bin/v-change-fs-file-permission

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#!/bin/bash
2+
# info: change file permission
3+
# options: USER FILE PERMISSIONS
4+
#
5+
# The function changes file access permissions on the file system
6+
7+
user=$1
8+
src_file=$2
9+
permissions=$3
10+
11+
# Checking arguments
12+
if [ -z "$permissions" ]; then
13+
echo "Usage: USER FILE PERMISSIONS"
14+
exit 1
15+
fi
16+
17+
# Checking vesta user
18+
if [ ! -e "$VESTA/data/users/$user" ]; then
19+
exit 1
20+
fi
21+
22+
# Checking user homedir
23+
homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
24+
if [ -z $homedir ]; then
25+
exit 1
26+
fi
27+
28+
# Checking source file
29+
if [ ! -f "$src_file" ]; then
30+
exit 1
31+
fi
32+
33+
# Checking source path
34+
rpath=$(readlink -f "$src_file")
35+
if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then
36+
exit 1
37+
fi
38+
39+
# Changing file permissions
40+
sudo -u $user chmod $permisions $src_file >/dev/null 2>&1
41+
42+
# Exiting
43+
exit $?

bin/v-copy-fs-directory

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#!/bin/bash
2+
# info: copy directory
3+
# options: USER SRC_DIRECTORY DST_DIRECTORY
4+
#
5+
# The function copies directory on the file system
6+
7+
user=$1
8+
src_dir=$2
9+
dst_dir=$3
10+
11+
# Checking arguments
12+
if [ -z "$dst_dir" ]; then
13+
echo "Usage: USER SRC_DIRECTORY DST_DIRECTORY"
14+
exit 1
15+
fi
16+
17+
# Checking vesta user
18+
if [ ! -e "$VESTA/data/users/$user" ]; then
19+
exit 1
20+
fi
21+
22+
# Checking user homedir
23+
homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
24+
if [ -z $homedir ]; then
25+
exit 1
26+
fi
27+
28+
# Checking source dir
29+
if [ ! -e "$src_dir" ]; then
30+
exit 1
31+
fi
32+
33+
# Checking source path
34+
rpath=$(readlink -f "$src_dir")
35+
if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then
36+
exit 1
37+
fi
38+
39+
# Checking destination path
40+
rpath=$(readlink -f "$dst_dir")
41+
if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then
42+
exit 1
43+
fi
44+
45+
# Copying directory
46+
sudo -u $user cp -r $src_dir $dst_dir >/dev/null 2>&1
47+
48+
# Exiting
49+
exit $?

bin/v-copy-fs-file

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,49 @@
11
#!/bin/bash
2-
# File copier
2+
# info: copy file
3+
# options: USER SRC_FILE DST_FLE
4+
#
5+
# The function copies file on the file system
36

47
user=$1
5-
file_src=$2
6-
file_dst=$3
8+
src_file=$2
9+
dst_file=$3
710

811
# Checking arguments
9-
if [ -z "$file_dst" ]; then
12+
if [ -z "$dst_file" ]; then
1013
echo "Usage: USER SRC_FILE DST_FILE"
1114
exit 1
1215
fi
1316

14-
# Checking users
17+
# Checking vesta user
1518
if [ ! -e "$VESTA/data/users/$user" ]; then
1619
exit 1
1720
fi
1821

19-
# Checking homedir
22+
# Checking user homedir
2023
homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
2124
if [ -z $homedir ]; then
2225
exit 1
2326
fi
2427

2528
# Checking source file
26-
if [ ! -e "$file_src" ]; then
29+
if [ ! -f "$src_file" ]; then
2730
exit 1
2831
fi
2932

3033
# Checking source path
31-
rpath=$(readlink -f "$file_src")
32-
if [ -z "$(echo $rpath |grep ^/tmp)" ]; then
34+
rpath=$(readlink -f "$src_file")
35+
if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then
3336
exit 1
3437
fi
3538

3639
# Checking destination path
37-
rpath=$(readlink -f "$file_dst")
38-
if [ -z "$(echo $rpath |grep ^$homedir)" ]; then
40+
rpath=$(readlink -f "$dst_file")
41+
if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then
3942
exit 1
4043
fi
4144

42-
# Checking dst file permission
43-
if [ -e "$file_dst" ]; then
44-
perms=$(stat --format '%a' $file_dst)
45-
fi
46-
4745
# Copying file
48-
cp $file_src $file_dst
49-
50-
# Changing ownership
51-
chown $user:$user $file_dst
52-
53-
# Changin permissions
54-
if [ ! -z "$perms" ]; then
55-
chmod $perms $file_dst
56-
fi
46+
sudo -u $user cp $src_file $dst_file >/dev/null 2>&1
5747

58-
exit
48+
# Exiting
49+
exit $?

bin/v-delete-fs-dir

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#!/bin/bash
2+
# info: delete directory
3+
# options: USER DIRECTORY
4+
#
5+
# The function deletes directory on the file system
6+
7+
8+
user=$1
9+
dst_dir=$2
10+
11+
# Checking arguments
12+
if [ -z "$dst_dir" ]; then
13+
echo "Usage: USER DIRECTORY"
14+
exit 1
15+
fi
16+
17+
# Checking vesta user
18+
if [ ! -e "$VESTA/data/users/$user" ]; then
19+
exit 1
20+
fi
21+
22+
# Checking user homedir
23+
homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
24+
if [ -z $homedir ]; then
25+
exit 1
26+
fi
27+
28+
# Checking destination path
29+
rpath=$(readlink -f "$dst_dir")
30+
if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then
31+
exit 1
32+
fi
33+
34+
# Deleting directory
35+
sudo -u $user rm -rf $dst_dir >/dev/null 2>&1
36+
37+
# Exiting
38+
exit $?

bin/v-delete-fs-file

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#!/bin/bash
2+
# info: delete file
3+
# options: USER FILE
4+
#
5+
# The function deletes file on the file system
6+
7+
8+
user=$1
9+
dst_file=$2
10+
11+
# Checking arguments
12+
if [ -z "$dst_file" ]; then
13+
echo "Usage: USER FILE"
14+
exit 1
15+
fi
16+
17+
# Checking vesta user
18+
if [ ! -e "$VESTA/data/users/$user" ]; then
19+
exit 1
20+
fi
21+
22+
# Checking user homedir
23+
homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
24+
if [ -z $homedir ]; then
25+
exit 1
26+
fi
27+
28+
# Checking destination path
29+
rpath=$(readlink -f "$dst_file")
30+
if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then
31+
exit 1
32+
fi
33+
34+
# Deleting file
35+
sudo -u $user rm -f $dst_file >/dev/null 2>&1
36+
37+
# Exiting
38+
exit $?

0 commit comments

Comments
 (0)