示例#1
0
        public static void ChangeParentCategory(int categoryId, int newParentCategoryId)
        {
            string query =
                $"UPDATE categories SET parent_category_id = {newParentCategoryId} WHERE category_id = {categoryId}";

            DbManager.InsertUpdateDelete(query);
        }
示例#2
0
        public static void DeletePermissionGroup(int groupId)
        {
            PermissionManager.RevokeAllPermissionsFromGroup(groupId);
            RemoveAllUsersFromGroup(groupId);

            string query = $"DELETE FROM permission_groups WHERE permission_group_id = {groupId}";

            DbManager.InsertUpdateDelete(query);
        }
示例#3
0
        public static void RecreateUserTable()
        {
            string query = "DROP TABLE IF EXISTS users";

            _dbManagerAuth.InsertUpdateDelete(query);

            query = "CREATE TABLE `users` ( " +
                    "`id` INT(11) NOT NULL AUTO_INCREMENT, " +
                    "`username` VARCHAR(64) NOT NULL, " +
                    "PRIMARY KEY(`id`) " +
                    ") ENGINE = InnoDB";
            _dbManagerAuth.InsertUpdateDelete(query);

            Console.WriteLine("Usertable recreated!");
        }
示例#4
0
        public static int CreateUser(string username, string password, int minUsernameLength, int maxUsernameLength)
        {
            if (GetUser(username) != null)
            {
                throw new UserAlreadyExitsException();
            }

            if (username.Length < minUsernameLength)
            {
                throw new UsernameTooShortException();
            }

            if (username.Length > maxUsernameLength)
            {
                throw new UsernameTooLongException();
            }

            string salt         = HashManager.GenerateSecureRandomToken();
            string passwordHash = HashManager.HashSha256(password + salt);

            string query = "INSERT INTO users (username, password) VALUES " +
                           "(@username, @password)";

            DbManager.PrepareQuery(query);
            DbManager.BindValue("@username", username.ToLower());
            DbManager.BindValue("@password", passwordHash);
            DbManager.ExecutePreparedInsertUpdateDelete();

            int userId = DbManager.GetLastId();

            query = "INSERT INTO user_salt (userID, salt) VALUES " +
                    $"({userId}, '{salt}')";
            DbManager.InsertUpdateDelete(query);

            return(userId);
        }
示例#5
0
 public static void AssignPermissionToUser(int userId, int permissionId)
 {
     try
     {
         string query =
             $"INSERT INTO user_permission_relation (user_id, permission_id) VALUES ({userId}, {permissionId})";
         DbManager.InsertUpdateDelete(query);
     }
     catch (SqlQueryFailedException)
     {
         //Seems that the group aleady have this permission
     }
 }
示例#6
0
        public static void ChangeTopicCategory(int topicId, int newCategoryId)
        {
            string query = $"UPDATE topics SET category_id = {newCategoryId} WHERE topic_id = {topicId}";

            DbManager.InsertUpdateDelete(query);
        }
示例#7
0
        public static void DeletePost(int postId)
        {
            string query = $"DELETE FROM posts WHERE post_id = {postId}";

            DbManager.InsertUpdateDelete(query);
        }