Exemplo n.º 1
0
        public ClassCreateDatabase ManageCreateDatabase(string pQuery)
        {
            string name = "";
            Match  matchcreatedatabase2 = Regex.Match(pQuery, Constants.regExpCreateDatabase);

            if (matchcreatedatabase2.Success)
            {
                name = matchcreatedatabase2.Groups[1].Value;
            }
            ClassCreateDatabase query = new ClassCreateDatabase(name);

            return(query);
        }
Exemplo n.º 2
0
        public static String init(string name, string pUser, string pPassword)
        {
            string res;

            if (!Directory.Exists("..//..//..//data//" + name))
            {
                if (pUser.Equals("admin") && pPassword.Equals("admin"))
                {
                    res = Constants.CreateDatabaseSuccess;
                    ClassCreateDatabase dbc = new ClassCreateDatabase(name);
                    dbc.Run(name);


                    return(res);
                }
                else
                {
                    res = Constants.SecurityNotSufficientPrivileges + "Not Admin";
                    return(res);
                }
            }
            if (pUser == "admin" && pPassword == "admin")
            {
                privileges = new String[4] {
                    "DELETE", "INSERT", "SELECT", "UPDATE"
                };
                res = Constants.OpenDatabaseSuccess;
                return(res);
            }
            else
            {
                DirectoryInfo di    = new DirectoryInfo(@"..//..//..//data//" + dbname + "//profiles");
                FileInfo[]    files = di.GetFiles();

                foreach (var file in files)
                {
                    string line;
                    string tempf = file.Name;
                    using (StreamReader sr = new StreamReader(@"..//..//..//data//" + dbname + "//profiles//" + tempf))
                    {
                        while ((line = sr.ReadLine()) != null)
                        {
                            string[] parts = line.Split(',');
                            if (parts[0].Equals(pUser) && parts[1].Equals(pPassword))
                            {
                                res     = Constants.OpenDatabaseSuccess;
                                profile = tempf;
                                //We identify all the user's privileges

                                string[] dirs = Directory.GetFiles(@"..//..//..//data//" + dbname);
                                int      size = dirs.Length;
                                userprivileges = new List <TablePrivileges>();
                                foreach (string filesec in dirs)
                                {
                                    if (filesec.Contains(".sec"))
                                    {
                                        string[] temppriv = File.ReadAllLines(filesec);
                                        foreach (string prfsec in temppriv)
                                        {
                                            string[] splittedprof = prfsec.Split(',');
                                            if (splittedprof[0] + ".pf" == profile)
                                            {
                                                string[] privilegesprf = splittedprof[1].Split('/');
                                                Match    a             = Regex.Match(filesec, Constants.getTable);
                                                userprivileges.Add(new TablePrivileges(a.Groups[1].Value, privilegesprf));
                                            }
                                        }
                                    }
                                }
                                return(res);
                            }
                        }
                    }
                }
                res = Constants.SecurityIncorrectLogin;
                return(res);
            }
        }