Example #1
0
 public static function addMerchant($name, $password, $stores, $privs)
 {
     $type = self::MERCHANT;
     $user = new self();
     $transaction = \Bootstrap::getApp()->getDi()->getTransactions()->get();
     $user->setTransaction($transaction);
     $user->name = $name;
     $user->password = \Plugins\Common::generatePassword($password);
     $user->type = $type;
     if (!$user->save()) {
         foreach ($user->getMessages() as $message) {
             $transaction->rollback($message->getMessage());
         }
         return false;
     }
     $result = $user->addMerchantStore($stores);
     $role = new \Model\Admin\Role();
     $role->setTransaction($transaction);
     $role->name = $name;
     if (!$role->save()) {
         foreach ($user->getMessages() as $message) {
             $transaction->rollback($message->getMessage());
         }
         return false;
     }
     $result = $role->setRolePermission($privs);
     if (!$result['result']) {
         $transaction->rollback();
         return false;
     }
     $user->role_id = $role->id;
     if (!$user->save()) {
         foreach ($user->getMessages() as $message) {
             $transaction->rollback($message->getMessage());
         }
         return false;
     }
     $transaction->commit();
     return true;
 }