Exemple #1
0
def check(switch):
    if not files.isfile("/proc/" + str(switch)):
        colors.show("/proc/" + str(switch), "ok-endswitch", "")
        colors.show("", "poweroff", "")
        sys.exit(0)
    else:
        if files.isfile("/proc/info/sp"): files.remove("/proc/info/sp")
        files.write("/proc/info/sp", str(switch))
Exemple #2
0
def shut():
    colors.show('', 'ok', 'Closing the switched process ...')
    if files.isfile("/proc/selected"): files.remove("/proc/selected")
    process.end(int(files.readall("/proc/info/sp")))

    if files.readall("/proc/info/su") == "0":
        if files.isdir("/desk/guest"):
            files.removedirs("/desk/guest")
        if files.isdir("/tmp"):
            files.removedirs("/tmp")
            files.mkdir("/tmp")
        if files.isfile("/proc/selected"): files.remove("/proc/selected")
        process.endall()
Exemple #3
0
def cut(src, dest):
    su = files.readall("/proc/info/su")
    if permissions.check(files.output(src), "r", su) and permissions.check(
            files.output(src), "w", su):
        if isfile(src):
            if permissions.check(files.output(dest), "w", su):
                if files.isdir(dest):
                    colors.show("libabr.file.cut", "fail",
                                dest + ": dest is a directory.")
                else:
                    perm = permissions.get_permissions(files.output(src))
                    control.write_record(files.output(dest), perm,
                                         "/etc/permtab")
                    files.cut(src, dest)
            else:
                colors.show("libabr.file.cut", "perm", "")
        elif isdir(src):
            if permissions.check(files.output(dest), "w", su):
                if files.isfile(dest):
                    colors.show("libabr.file.cut", "fail",
                                dest + ": dest is a file.")
                else:
                    perm = permissions.get_permissions(files.output(src))
                    control.write_record(files.output(dest), perm,
                                         "/etc/permtab")
                    files.cutdir(src, dest)
            else:
                colors.show("libabr.file.cut", "perm", "")
        else:
            colors.show("libabr.file.cut", "fail", src + ": source not found.")
    else:
        colors.show("libabr.file.cut", "perm", "")
Exemple #4
0
def new(user, code):
    colors.show('', 'ok', 'Switching a new process ...')
    if files.isfile("/proc/selected"): files.remove("/proc/selected")
    if user == "guest":
        sub.call(['./' + boot, 'user', 'guest'])
    else:
        sub.call(['./' + boot, 'user', user, code])
Exemple #5
0
def get_style ():

    if not files.isfile("/proc/id/desktop"):
        style = control.read_record("style", "/etc/color")
        return style
    else:
        return ""
Exemple #6
0
def get_bgcolor ():

    if not files.isfile("/proc/id/desktop"):
        bgcolor = control.read_record("bgcolor", "/etc/color")
        return bgcolor
    else:
        return ""
Exemple #7
0
def udel(input_username, user):
    ## Check not exists user account ##
    if input_username == user:
        colors.show("udel", "fail",
                    input_username + ": cannot remove switched user.")
    else:
        if permissions.check_root(user):
            if not files.isfile("/etc/users/" + input_username):
                colors.show("udel", "fail",
                            input_username + ": user not found.")
            else:
                if input_username == "root":
                    colors.show("udel", "fail",
                                input_username + ": is a permanet user.")
                else:
                    hashname = hashlib.sha3_256(str(input_username).encode(
                    )).hexdigest()  ## Create hashname
                    username = control.read_record(
                        "username", "/etc/users/" + input_username)

                    if not hashname == username:
                        colors.show("udel", "fail",
                                    input_username + ": user not found.")
                    else:
                        files.remove("/etc/users/" + input_username)
                        if files.isdir('/desk/' + input_username):
                            files.removedirs("/desk/" + input_username)
                        colors.show(
                            '', 'ok',
                            "Remove '" + input_username + "' user account.")
        else:
            colors.show("udel", "perm", "")
Exemple #8
0
def isfile(name):
    su = files.readall("/proc/info/su")
    if permissions.check(files.output(name), "r", su):
        return files.isfile(name)
    else:
        colors.show("libabr.file.isfile", "perm", "")
        return None
Exemple #9
0
def endall():
    if files.isfile("/proc/info/sp"): files.remove("/proc/info/sp")
    list = files.list("/proc")
    list.remove("id")
    list.remove("info")
    for i in list:
        files.remove("/proc/" + str(i))
Exemple #10
0
def endall():
    files.remove('/proc/id/desktop')
    colors.show('desktop','ok-endid','')
    colors.show('kernel',"poweroff","")
    listid = files.list ("/proc/id")
    for i in listid:
        if files.isfile('/proc/id/'+i):
            files.remove('/proc/id/'+i)
Exemple #11
0
def build(name):
    if permissions.check_root(files.readall("/proc/info/su")):
        if not files.isfile(name + "/control/manifest"):
            colors.show("libpa.build", "fail", "cannot create archive package")
            clean()
            sys.exit(0)

        if not files.isdir(name + "/data"): files.mkdir(name + "/data")
        if not files.isdir(name + "/code"): files.mkdir(name + "/code")

        ## Remove cache archives ##
        if files.isdir('/app/cache/archives/code'):
            files.removedirs('/app/cache/archives/code')
        if files.isdir('/app/cache/archives/control'):
            files.removedirs('/app/cache/archives/control')
        if files.isdir('/app/cache/archives/data'):
            files.removedirs('/app/cache/archives/data')

        ## Copy dir ##
        files.copydir(name + '/data', '/app/cache/archives/data')
        files.copydir(name + '/code', '/app/cache/archives/code')
        files.copydir(name + '/control', '/app/cache/archives/control')

        ## Compile codes ##
        if files.isfile("/app/cache/archives/control/compile"):
            listcodes = control.read_list(
                "/app/cache/archives/control/compile")
            for i in listcodes:
                i = i.split(":")
                files.compile("/app/cache/archives/code/" + i[0],
                              "/app/cache/archives/data/" + i[1])

        ## Pack archives ##
        shutil.make_archive(files.input("/app/cache/archives/build/data"),
                            "xztar", files.input('/app/cache/archives/data'))
        shutil.make_archive(files.input("/app/cache/archives/build/control"),
                            "xztar",
                            files.input('/app/cache/archives/control'))
        shutil.make_archive(files.input(name), "zip",
                            files.input("/app/cache/archives/build"))

        files.cut(name + ".zip", name + ".pa")
        ## Unlock the cache ##
    else:
        colors.show("libpa.build", "perm", "")
Exemple #12
0
def shutdown():
    colors.show('', 'ok', 'Shutdowning the clouding system ...')
    if files.isdir("/desk/guest"):
        files.removedirs("/desk/guest")
    if files.isdir("/tmp"):
        files.removedirs("/tmp")
        files.mkdir("/tmp")
    if files.isfile("/proc/selected"): files.remove("/proc/selected")
    process.endall()
Exemple #13
0
def start (id):

    ## Check exists ##
    if files.isfile ('/proc/id/'+id):
        pass

    colors.show (id,'ok-start','')

    ## Create id ##
    files.create ("/proc/id/"+id)


    ## Check desktop shortcut ##
    if files.isfile ("/usr/share/applications/"+id):
        files.copy ("/usr/share/applications/"+id+".desk","/proc/id/"+id) # Copy all informations about this GUI application

    ## Set default id ##
    files.write ("/proc/info/id",id)
Exemple #14
0
def unsel():
    select = files.readall("/proc/info/sel")
    if select == "/proc/" + files.readall("/proc/info/sp"):
        colors.show("unsel", "warning", "controller has already selected.")
    else:
        files.write("/proc/info/sel",
                    "/proc/" + files.readall("/proc/info/sp"))
        if files.isfile("/proc/selected"): files.remove("/proc/selected")
        colors.show('', 'ok', 'Select the switched process as a controller.')
Exemple #15
0
def uadd (input_username,user):
    if permissions.check_root(user):
        ## Check exists user ##
        if files.isfile("/etc/users/" + input_username) or input_username == "root":
            colors.show("uadd", "fail", input_username + ": user exists.")
        elif input_username == "guest":
            colors.show("uadd", "fail", "cannot create user account with guest username.")
        else:
            while True:
                password = getpass.getpass ('Enter a new password: '******'Confirm the new password: '******'\tEnter your first name []: ')
            last_name =         input ('\tEnter your last name []: ')
            company =           input ('\tEnter your company name []: ')
            birthday =          input ('\tEnter your birthday []: ')
            gender =            input ('\tChoose your gender [Male/Female/Other]: ')
            blood_type =        input ('\tChoose your blood type [O/A/B/AB]: ')
            phone =             input ('\tEnter your phone number []: ')
            website =           input ('\tEnter your website address []: ')
            email =             input ('\tEnter your email address []: ')

            hashname = hashlib.sha3_256(str(input_username).encode()).hexdigest()
            hashcode = hashlib.sha3_512(str(password).encode()).hexdigest()

            files.create ("/etc/users/"+input_username)
            control.write_record ("username",hashname,'/etc/users/'+input_username)
            control.write_record ("code",hashcode,'/etc/users/'+input_username)

            ## Add informations ##
            if not (first_name == None or first_name == ""):
                control.write_record("first_name", first_name, '/etc/users/' + input_username)
            if not (last_name == None or last_name == ""):
                control.write_record("last_name", last_name, '/etc/users/' + input_username)
            if not (company == None or company == ""):
                control.write_record ("company",company,'/etc/users/'+input_username)
            if not (birthday == None or birthday == ""):
                control.write_record("birthday", birthday, '/etc/users/' + input_username)
            if not (gender == None or gender == ""):
                control.write_record("gender", gender, '/etc/users/' + input_username)
            if not (blood_type == None or blood_type == ""):
                control.write_record("blood_type", blood_type, '/etc/users/' + input_username)
            if not (phone == None or phone == ""):
                control.write_record("phone", phone, '/etc/users/' + input_username)
            if not (website == None or website == ""):
                control.write_record("website", website, '/etc/users/' + input_username)
            if not (email == None or email == ""):
                control.write_record ("email",email,'/etc/users/'+input_username)

            permissions.create ("/desk/"+input_username,7,1,0,input_username) ## Create permission for another user

            colors.show('', 'ok', "Add '" + input_username + "' user account.")
    else:
        colors.show ("uadd","perm","")
Exemple #16
0
    def actions(self):
        if self.Env.objectName() == 'Login':
            username = self.leInput.text()  ## Get username

            if self.Env.guest == 'Yes' and username == 'guest':
                self.Env.setCentralWidget(
                    Desktop([self.Backend, self], username, '*'))

            elif not files.isfile('/etc/users/' + username):
                self.leInput.clear()
                self.leInput.setEnabled(False)
                message = res.get('@string/user_not_found')
                if not message == None:
                    message = message.replace("{0}", username)
                self.leInput.setPlaceholderText(message)
                QTimer.singleShot(2500, self.clean)
            else:
                ## Check user ##
                hashname = hashlib.sha3_256(
                    username.encode()).hexdigest()  ## Get hashname
                name = control.read_record('username',
                                           '/etc/users/' + username)

                if not hashname == name:
                    self.leInput.clear()
                    self.leInput.setEnabled(False)
                    message = res.get('@string/user_not_found')
                    if not message == None:
                        message = message.replace("{0}", username)
                    self.leInput.setPlaceholderText(message)
                    QTimer.singleShot(2500, self.clean)

                else:
                    ## Setting up switched user ##

                    self.Env.setCentralWidget(
                        Enter([self.Backend, self], username))  ## Switch user
        elif self.Env.objectName() == 'Enter':

            username = self.Env.username
            password = self.leInput.text()

            ## Check password ##
            hashcode = hashlib.sha3_512(
                password.encode()).hexdigest()  ## Create hashcode for password
            code = control.read_record('code', '/etc/users/' + username)

            if not code == hashcode:
                self.leInput.clear()
                self.leInput.setEnabled(False)
                message = res.get('@string/wrong_password')
                self.leInput.setPlaceholderText(message)
                QTimer.singleShot(2500, self.clean)
            else:
                self.Env.setCentralWidget(
                    Desktop([self.Backend, self], username, password))
Exemple #17
0
def help(helpfile):
    if helpfile == "":
        print(files.readall("/usr/share/helps/cmdall.txt"))
    else:
        if files.isfile("/usr/share/helps/commands/" + helpfile + ".txt"):
            print(
                files.readall("/usr/share/helps/commands/" + helpfile +
                              ".txt"))
        else:
            print(files.readall("/usr/share/helps/cmdall.txt"))
Exemple #18
0
def sel (database_name):
    if files.isfile(database_name):
        if permissions.check (files.output(database_name),"r",files.readall("/proc/info/su")):
            files.write("/proc/info/sel", database_name)
            files.create("/proc/selected")
            colors.show('', 'ok', "Select '" + database_name + "' controller.")
        else:
            colors.show ("sel","perm","")
    else:
        colors.show("sel", "fail", database_name + ": controller not found.")
Exemple #19
0
def get_hide():

    if not files.isfile("/proc/id/desktop"):
        style = control.read_record("style", "/etc/color")
        bgcolor = control.read_record("bgcolor", "/etc/color")
        fgcolor = int(control.read_record("bgcolor", "/etc/color")) + 10
        strv = "\033[" + str(style) + ";" + str(fgcolor) + ";" + str(bgcolor) + "m"
        return strv
    else:
        return ""
Exemple #20
0
def get_ok():

    if not files.isfile("/proc/id/desktop"):
        style = control.read_record("ok_style", "/etc/color")
        fgcolor = control.read_record("ok_fgcolor", "/etc/color")
        bgcolor = control.read_record("ok_bgcolor", "/etc/color")
        strv = "\033[" + str(style) + ";" + str(fgcolor) + ";" + str(bgcolor) + "m"
        return strv
    else:
        return ""
Exemple #21
0
def mv(src, dest):
    if files.isdir(src):
        if files.isfile(dest):
            colors.show("mv", "fail", dest + ": dest is a file.")
        else:
            if permissions.check(
                    files.output(src), "r",
                    files.readall("/proc/info/su")) and permissions.check(
                        files.output(src), "w",
                        files.readall("/proc/info/su")):
                if permissions.check(files.output(dest), "w",
                                     files.readall("/proc/info/su")):
                    perm = permissions.get_permissions(files.output(src))
                    control.write_record(files.output(dest), perm,
                                         "/etc/permtab")
                    files.copydir(src, dest)
                    files.removedirs(src)
                else:
                    colors.show("mv", "perm", "")
            else:
                colors.show("mv", "perm", "")
    elif files.isfile(src):
        if files.isdir(dest):
            colors.show("mv", "fail", dest + ": dest is a directory.")
        else:
            if permissions.check(
                    files.output(src), "r",
                    files.readall("/proc/info/su")) and permissions.check(
                        files.output(src), "w",
                        files.readall("/proc/info/su")):
                if permissions.check(files.output(dest), "w",
                                     files.readall("/proc/info/su")):
                    perm = permissions.get_permissions(files.output(src))
                    control.write_record(files.output(dest), perm,
                                         "/etc/permtab")
                    files.copy(src, dest)
                    files.remove(src)
                else:
                    colors.show("mv", "perm", "")
            else:
                colors.show("mv", "perm", "")
    else:
        colors.show("mv", "fail", src + ": source not found.")
Exemple #22
0
def reboot():
    colors.show('', 'ok', 'Rebooting the clouding system ...')
    if files.isfile("/proc/selected"): files.remove("/proc/selected")
    colors.show("kernel", "reboot", "")
    if files.isdir("/desk/guest"):
        files.removedirs("/desk/guest")
    if files.isdir("/tmp"):
        files.removedirs("/tmp")
        files.mkdir("/tmp")
    process.endall()
    sub.call(['./' + files.readall("/proc/info/boot")])
Exemple #23
0
def check_root(user):
    if user == "root":
        if files.isfile("/etc/users/" + user):
            hashname = hashlib.sha3_256(str(user).encode()).hexdigest()
            username = control.read_record("username", "/etc/users/" + user)
            if (hashname == username):
                return True
            else:
                return False
        else:
            return False
Exemple #24
0
def uinfo(input_username):
    enable_cli = control.read_record("enable_cli", "/etc/guest")
    if not (input_username == "guest" and enable_cli == "Yes"):
        if files.isfile("/etc/users/" + input_username):
            ## Get information from user database ##
            first_name = control.read_record("first_name",
                                             "/etc/users/" + input_username)
            last_name = control.read_record("last_name",
                                            "/etc/users/" + input_username)
            company = control.read_record("company",
                                          "/etc/users/" + input_username)
            birthday = control.read_record("birthday",
                                           "/etc/users/" + input_username)
            gender = control.read_record("gender",
                                         "/etc/users/" + input_username)
            blood_type = control.read_record("blood_type",
                                             "/etc/users/" + input_username)
            phone = control.read_record("phone",
                                        "/etc/users/" + input_username)
            website = control.read_record("website",
                                          "/etc/users/" + input_username)
            email = control.read_record("email",
                                        "/etc/users/" + input_username)

            ## Show it on screen ##
            bold = colors.color(1, colors.get_bgcolor(), colors.get_fgcolor())
            if not (first_name == None or first_name == ""):
                print("\t   First name: " + bold + first_name +
                      colors.get_colors())
            if not (last_name == None or last_name == ""):
                print("\t    Last name: " + bold + last_name +
                      colors.get_colors())
            if not (company == None or company == ""):
                print("\t      Company: " + bold + company +
                      colors.get_colors())
            if not (birthday == None or birthday == ""):
                print("\t     Birthday: " + bold + birthday +
                      colors.get_colors())
            if not (gender == None or gender == ""):
                print("\t       Gender: " + bold + gender +
                      colors.get_colors())
            if not (blood_type == None or blood_type == ""):
                print("\t    BloodType: " + bold + blood_type +
                      colors.get_colors())
            if not (phone == None or phone == ""):
                print("\t Phone number: " + bold + phone + colors.get_colors())
            if not (website == None or website == ""):
                print("\t      Website: " + bold + website +
                      colors.get_colors())
            if not (email == None or email == ""):
                print("\tEmail address: " + bold + email + colors.get_colors())
        else:
            colors.show("uinfo", "fail", input_username + ": user not found.")
Exemple #25
0
def su(input_username, user):
    if files.isfile("/proc/selected"): files.remove("/proc/selected")
    if user == input_username:
        colors.show("su", "warning", user + " has already switched.")
    elif input_username == "guest":
        enable_cli = control.read_record("enable_cli", "/etc/guest")
        if enable_cli == "Yes":
            colors.show('', 'ok',
                        "Switching '" + input_username + "' user account.")
            os.system("./" + files.readall("/proc/info/boot") + " user guest")
        else:
            colors.show(input_username, "fail", "user not found.")

    elif files.isfile("/etc/users/" + input_username):
        hashname = hashlib.sha3_256(str(input_username).encode()).hexdigest()
        username = control.read_record("username",
                                       "/etc/users/" + input_username)
        if hashname == username:
            input_password = getpass.getpass('Enter ' + input_username +
                                             '\'s password: '******'', 'ok',
                    "Switching '" + input_username + "' user account ...")
                os.system("./" + files.readall("/proc/info/boot") + " user " +
                          input_username + " " + input_password)
            else:
                colors.show("su", "fail", input_username + ": wrong password.")
        else:
            colors.show("su", "fail", input_username + " user not found.")
    else:
        colors.show("su", "fail", input_username + " user not found.")
Exemple #26
0
def check_owner(filename, user):
    owner = get_owner(filename)
    if user == "guest":
        enable_cli = control.read_record("enable_cli", "/etc/guest")
        if enable_cli == "Yes":
            if owner == user:
                return True
            else:
                return False
        else:
            return False
    elif user == "root":
        if files.isfile("/etc/users/" + user):
            hashname = hashlib.sha3_256(str(user).encode()).hexdigest()
            username = control.read_record("username", "/etc/users/" + user)
            if (hashname == username):
                return True
            else:
                return False
        else:
            return False
    else:
        if files.isfile("/etc/users/" + user):
            hashname = hashlib.sha3_256(str(user).encode()).hexdigest()
            username = control.read_record("username", "/etc/users/" + user)
            if (hashname == username):
                if owner == user:
                    return True
                elif owner == "guest":
                    return True
                else:
                    return False
            else:
                return False
        else:
            return False
Exemple #27
0
def processor():
    j = 0
    if not files.isfile("/proc/" + str(0)):
        files.create("/proc/" + str(0))
        j = j + 1
    else:
        list = files.list("/proc")
        list.remove('id')
        list.remove('info')

        for i in list:
            if files.isfile("/proc/" + i):

                files.create("/proc/" + str(int(i) + 1))
                j = j + 1
            else:
                files.create("/proc/" + i)

    if files.isfile("/proc/1"):
        files.write("/proc/info/sp", str(j))
        return j
    else:
        files.write("/proc/info/sp", str(j - 1))
        return j - 1
Exemple #28
0
def readall(name):
    su = files.readall("/proc/info/su")
    if permissions.check(files.output(name), "r", su):
        if files.isfile(name):
            file = open(files.input(name), "rb")
            check_bin = str(file.read())
            file.close()
            if check_bin.__contains__("\\x00"):
                return check_bin
            else:
                return files.readall(name)
        else:
            colors.show("libabr.file.readall", "fail",
                        name + ": file not found.")
    else:
        colors.show("libabr.file.readall", "perm", "")
Exemple #29
0
def zip (src,dest):
    su = files.readall("/proc/info/su") ## Get user data base
    if permissions.check (files.output(src),"r",su): ## Check this user permissions
        if permissions.check (files.output(dest+".zip"),"r",su): ## Check read only permission
            if files.isdir (src): ## Check source dir exists
                if files.isdir (dest+".zip"): ## Check dest dir exists
                    colors.show("libabr.archive.zip", "fail", dest+".zip" + ": dest is a directory.")
                else:
                    shutil.make_archive(files.input(dest),"zip",files.input(src)) ## Create archive
            elif files.isfile (src):
                colors.show("libabr.archive.zip", "fail",src+ ": source is a file.") ## Show error for permissions
            else:
                colors.show("libabr.archive.zip", "fail",src+ ": source not found.")
        else:
            colors.show("libabr.archive.zip", "perm", "")
    else:
        colors.show ("libabr.archive.zip","perm","")
Exemple #30
0
def gzip(src, dest):
    su = files.readall("/proc/info/su")
    if permissions.check(files.output(src), "r", su):
        if permissions.check(files.output(dest + ".gz"), "r", su):
            if files.isdir(src):
                if files.isdir(dest + ".gz"):
                    colors.show("libabr.archive.xzip", "fail", dest + ".gz" + ": dest is a directory.")
                else:
                    shutil.make_archive(files.input(dest), "gz", files.input(src))
            elif files.isfile(src):
                colors.show("libabr.archive.gzip", "fail", src + ": source is a file.")
            else:
                colors.show("libabr.archive.gzip", "fail", src + ": source not found.")
        else:
            colors.show("libabr.archive.gzip", "perm", "")
    else:
        colors.show("libabr.archive.gzip", "perm", "")