int main(int argc, char **argv) { _check_args(argc, argv); char *user = argv[1]; char *group = _split_group_from_user(user); if (0 != setgid(_gid(group))) { perror("resu"); exit(1); } if (0 != setuid(_uid(user))) { perror("resu"); exit(1); } execvp(argv[3], argv+3); /* Unreachable, except on error */ perror("resu"); return 1; }
QByteArray QNearFieldTagMifareSymbian::uid() const { return _uid(); }
QByteArray QNearFieldTagType3Symbian::uid() const { return _uid(); }
y::ldap::account & y::ldap::account::uid(const UID& value) { _uid(value); return *this; }
const UID & y::ldap::account::uid() const { return _uid(); }
bool y::ldap::account::save() { // remove user if needed if(flaggedForRemoval() && !dn().get().empty()) { if(isStudent()) { y::Smartschool().unregisterStudent(*this); } else { y::Smartschool().deleteUser(*this); } y::samba::delUser(*this); if(isStudent()) return true; } // accounts without DN are not valid if(dn().get().empty()) { flagForRemoval(); return false; } // else apply changes dataset values(server); // on first save, some new entries have to be added if(!_hasKrbName) { // add kerberos objectClass data & d = values.New(ADD); d.add("type", "objectClass"); d.add("values", "kerberosSecurityObject"); // add kerberos name (for short mail) string krbName(_uid().get()); krbName += "@"; krbName += utils::Config().getDomain(); data & d1 = values.New(ADD); d1.add("type", "krbName"); d1.add("values", krbName); _hasKrbName = true; } if(!_hasSchoolPersonClass) { data & d = values.New(ADD); d.add("type", "objectClass"); d.add("values", "schoolPerson"); _hasSchoolPersonClass = true; } _cn.saveToLdap(values); _sn.saveToLdap(values); _fullName.saveToLdap(values); _homeDir.saveToLdap(values); _wisaID.saveToLdap(values); _wisaName.saveToLdap(values); _mail.saveToLdap(values); _mailAlias.saveToLdap(values); _birthDay.saveToLdap(values); _role.saveToLdap(values); _groupID.saveToLdap(values); _schoolClass.saveToLdap(values); _classChange.saveToLdap(values); _birthPlace.saveToLdap(values); _gender.saveToLdap(values); _adminGroup.saveToLdap(values); _registerID.saveToLdap(values); _nationality.saveToLdap(values); _stemID.saveToLdap(values); _schoolID.saveToLdap(values); _houseNumber.saveToLdap(values); _houseNumberAdd.saveToLdap(values); _city.saveToLdap(values); _postalCode.saveToLdap(values); _street.saveToLdap(values); _country.saveToLdap(values); if(_password.changed()) { _password.saveToLdap(values); #ifndef DEBUG samba::changePassword(_uid().get(), _passwordClearText); #endif } if(values.elms()) { bool roleChanged = _role.changed(); bool classChanged = _schoolClass.changed(); server->modify(_dn(), values); if(isStaff() || isStudent()) { y::Smartschool().saveUser(*this); string message("Updating smartschool for user "); message += _fullName().get(); y::utils::Log().add(message); // add user to group if(isStudent() && classChanged) { // this is a student y::Smartschool().moveUserToClass(*this, _schoolClass().get()); } else if(roleChanged && _role().get() == ROLE::DIRECTOR) { y::Smartschool().addUserToGroup(*this, "Directie", false); } else if (roleChanged && _role().get() == ROLE::SUPPORT) { y::Smartschool().addUserToGroup(*this, "Secretariaat", false); } else if (roleChanged && isStaff()) { y::Smartschool().addUserToGroup(*this, "Leerkrachten", true); } } return true; } if(!_ssPassword.empty()) { y::Smartschool().savePassword(*this); return true; } return false; }