Source Code (Use browser search to find items of interest.)

Class Index

kuser'addUser (./kdeadmin/kuser/addUser.h:7)

class addUser: public propdlg {
  Q_OBJECT
public:
#ifdef _KU_QUOTA
  addUser(KUser &AUser, Quota &AQuota, QWidget *parent = 0, const char *name = 0, int isprep = false);
#else
  addUser(KUser &AUser, QWidget *parent = 0, const char *name = 0, int isprep = false);
#endif
  void setUserPrivateGroup(bool data);
  void setCreateHomeDir(bool data);
  void setCopySkel(bool data);

  bool getUserPrivateGroup();
  bool getCreateHomeDir();
  bool getCopySkel();
protected slots:
  virtual void ok();

  virtual void userPrivateGroupChecked(bool data);
  virtual void createHomeChecked(bool data);

protected:
  bool checkHome();
  bool checkMailBox();

  QCheckBox *createhome;
  QCheckBox *copyskel;
  QCheckBox *userPrivateGroup;
};

kuser'addUser::addUser() (./kdeadmin/kuser/addUser.cpp:26)

addUser::addUser(KUser &AUser, Quota &AQuota, QWidget *parent, const char *name, int isprep) :
  propdlg(AUser, AQuota, parent, name, isprep) {
#else
addUser::addUser(KUser &AUser, QWidget *parent = 0, const char *name = 0, int isprep = false) :
  propdlg(AUser, parent, name, isprep) {
#endif

  createhome = new QCheckBox(w1, "createHome");
  createhome->setText(i18n("Create home directory"));
  createhome->setGeometry(200, 70, 200, 30);
  createhome->setChecked(true);
  connect(createhome, SIGNAL(toggled(bool)), this, SLOT(createHomeChecked(bool)));

  copyskel = new QCheckBox(w1, "copySkel");
  copyskel->setText(i18n("Copy skeleton"));
  copyskel->setGeometry(200, 110, 200, 30);
  copyskel->setEnabled(FALSE);

  userPrivateGroup = new QCheckBox(w1, "usePrivateGroup");
  userPrivateGroup->setText(i18n("Use Private Group"));
  userPrivateGroup->setGeometry(200, 150, 200, 30);
  connect(userPrivateGroup, SIGNAL(toggled(bool)), this, SLOT(userPrivateGroupChecked(bool)));
}


kuser'addUser::setUserPrivateGroup() (./kdeadmin/kuser/addUser.cpp:50)

void addUser::setUserPrivateGroup(bool data) {
  userPrivateGroup->setChecked(data);
}


kuser'addUser::setCreateHomeDir() (./kdeadmin/kuser/addUser.cpp:54)

void addUser::setCreateHomeDir(bool data) {
  createhome->setChecked(data);
  copyskel->setEnabled(data);
}


kuser'addUser::setCopySkel() (./kdeadmin/kuser/addUser.cpp:59)

void addUser::setCopySkel(bool data) {
  copyskel->setChecked(data);
}


kuser'addUser::getUserPrivateGroup() (./kdeadmin/kuser/addUser.cpp:63)

bool addUser::getUserPrivateGroup() {
  return userPrivateGroup->isChecked();
}


kuser'addUser::getCreateHomeDir() (./kdeadmin/kuser/addUser.cpp:67)

bool addUser::getCreateHomeDir() {
  return createhome->isChecked();
}


kuser'addUser::getCopySkel() (./kdeadmin/kuser/addUser.cpp:71)

bool addUser::getCopySkel() {
  return copyskel->isChecked();
}


kuser'addUser::ok() (./kdeadmin/kuser/addUser.cpp:75)

void addUser::ok() {
  QString tmp;
  uint newuid;
  tmp = leid->text();
  newuid = tmp.toInt();
  
  if (kug->getUsers().lookup(newuid) != NULL) {
    err->addMsg(i18n("User with UID %1 already exists").arg(newuid));
    err->display();
    return;
  }

  check();
  
  if (createhome->isChecked())
    if ((checkHome()) && (checkMailBox())) {
      user.setCreateHome(1);
      user.setCreateMailBox(1);
    }

  if (copyskel->isChecked())
    user.setCopySkel(1);

  accept();
}


kuser'addUser::userPrivateGroupChecked() (./kdeadmin/kuser/addUser.cpp:101)

void addUser::userPrivateGroupChecked(bool data) {
  cbpgrp->setEnabled(!data);
}


kuser'addUser::createHomeChecked() (./kdeadmin/kuser/addUser.cpp:105)

void addUser::createHomeChecked(bool data) {
  copyskel->setEnabled(data);
}


kuser'addUser::checkHome() (./kdeadmin/kuser/addUser.cpp:109)

bool addUser::checkHome() {
  struct stat s;
  int r;

  r = stat(user.getHomeDir(), &s);

  if ((r == -1) && (errno = ENOENT))
    return true;

  if (r == 0)
    if (S_ISDIR(s.st_mode))
      err->addMsg(i18n("Directory %1 already exists (uid = %2, gid = %3)")
                 .arg(user.getHomeDir())
                 .arg(s.st_uid)
                 .arg(s.st_gid));
    else
      err->addMsg(i18n("%1 is not a directory").arg(user.getHomeDir()));
  else
    err->addMsg(QString("checkHome: stat: %1 ").arg(strerror(errno)));
  
  err->display();

  return false;
}


kuser'addUser::checkMailBox() (./kdeadmin/kuser/addUser.cpp:134)

bool addUser::checkMailBox() {
  QString mailboxpath;

  struct stat s;
  int r;

  mailboxpath = QString("%s/%s").arg(MAIL_SPOOL_DIR).arg(user.getFullName());
  r = stat(mailboxpath, &s);
  
  if ((r == -1) && (errno == ENOENT))
    return true;

  if (r == 0)
    if (S_ISREG(s.st_mode))
      err->addMsg(i18n("Mailbox %1 already exist (uid=%2)")
                 .arg(mailboxpath)
                 .arg(s.st_uid));
    else
      err->addMsg(i18n("%1 exists but is not a regular file")
                 .arg(mailboxpath));
  else
    err->addMsg(QString("checkMail: stat: %s ").arg(strerror(errno)));
  
  err->display();

  return false;
}