]> git.mxchange.org Git - friendica.git/commitdiff
Allow setting user avatar in the console at creation
authorMatthew Exon <git.mexon@spamgourmet.com>
Sun, 14 Jan 2024 15:19:20 +0000 (16:19 +0100)
committerMatthew Exon <git.mexon@spamgourmet.com>
Sun, 14 Jan 2024 15:19:20 +0000 (16:19 +0100)
src/Console/User.php
src/Model/User.php

index 0c2f17eb3c1fc9cd17be1eb8a2d9e550ae5fb55c..e175c54477afaf34a73f74f9826345e53e6be343 100644 (file)
@@ -58,7 +58,7 @@ class User extends \Asika\SimpleConsole\Console
 console user - Modify user settings per console commands.
 Usage
        bin/console user password <nickname> [<password>] [-h|--help|-?] [-v]
-       bin/console user add [<name> [<nickname> [<email> [<language>]]]] [-h|--help|-?] [-v]
+       bin/console user add [<name> [<nickname> [<email> [<language> [<avatar_url>]]]]] [-h|--help|-?] [-v]
        bin/console user delete [<nickname>] [-y] [-h|--help|-?] [-v]
        bin/console user allow [<nickname>] [-h|--help|-?] [-v]
        bin/console user deny [<nickname>] [-h|--help|-?] [-v]
@@ -228,10 +228,11 @@ HELP;
         */
        private function addUser()
        {
-               $name  = $this->getArgument(1);
-               $nick  = $this->getArgument(2);
-               $email = $this->getArgument(3);
-               $lang  = $this->getArgument(4);
+               $name   = $this->getArgument(1);
+               $nick   = $this->getArgument(2);
+               $email  = $this->getArgument(3);
+               $lang   = $this->getArgument(4);
+               $avatar = $this->getArgument(5);
 
                if (empty($name)) {
                        $this->out($this->l10n->t('Enter user name: '));
@@ -262,10 +263,15 @@ HELP;
                        $lang = CliPrompt::prompt();
                }
 
+               if (empty($avatar)) {
+                       $this->out($this->l10n->t('Enter URL of an image to use as avatar (optional): '));
+                       $avatar = CliPrompt::prompt();
+               }
+
                if (empty($lang)) {
                        return UserModel::createMinimal($name, $email, $nick);
                } else {
-                       return UserModel::createMinimal($name, $email, $nick, $lang);
+                       return UserModel::createMinimal($name, $email, $nick, $lang, $avatar);
                }
        }
 
index 2a8ce5330d43b2e3ca6ea3153d634d608eb38c79..9ae434e0b5216486ca25338b341bc350eedd1e2e 100644 (file)
@@ -1553,16 +1553,17 @@ class User
        /**
         * Creates a new user based on a minimal set and sends an email to this user
         *
-        * @param string $name  The user's name
-        * @param string $email The user's email address
-        * @param string $nick  The user's nick name
-        * @param string $lang  The user's language (default is english)
+        * @param string $name   The user's name
+        * @param string $email  The user's email address
+        * @param string $nick   The user's nick name
+        * @param string $lang   The user's language (default is english)
+        * @param string $avatar URL to an image to use as avatar (default is to prompt user at first login)
         * @return bool True, if the user was created successfully
         * @throws HTTPException\InternalServerErrorException
         * @throws ErrorException
         * @throws ImagickException
         */
-       public static function createMinimal(string $name, string $email, string $nick, string $lang = L10n::DEFAULT): bool
+       public static function createMinimal(string $name, string $email, string $nick, string $lang = L10n::DEFAULT, string $avatar = ''): bool
        {
                if (empty($name) ||
                    empty($email) ||
@@ -1575,7 +1576,8 @@ class User
                        'email' => $email,
                        'nickname' => $nick,
                        'verified' => 1,
-                       'language' => $lang
+                       'language' => $lang,
+                       'photo' => $avatar
                ]);
 
                $user = $result['user'];