00001 <?php
00002 abstract class authDB {
00006 public static function getDBI() {
00007 return AuthModelBase::getDBI();
00008 }
00009
00015 public static function invalidLoginAttempt($username) {
00016 $invalid = new AuthInvalidLoginAttempt;
00017 $invalid->username = $username;
00018 $invalid->commit();
00019 }
00020
00027 public static function setPassword($user, $password) {
00028 $user->salt = SRandom::binary(3);
00029 $user->password = SHash::password($password, $user->salt);
00030
00031 $hashType = AuthHashType::retrieve(array('name' => 'password'));
00032 $user->hashTypeId = $hashType->id;
00033 }
00034
00041 public static function removeProjectUser($user, $projectName) {
00042
00043 $project = AuthProject::retrieve(array('name' => $projectName));
00044 if(!$project) return;
00045
00046
00047 $associations = AuthUserToProject::getList(array('projectId' => $project->id, 'userId' => $user->id));
00048
00049
00050 foreach($associations as $association) {
00051 $association->markForDeletion();
00052 $association->commit();
00053 }
00054 }
00055
00064 public static function addProjectUser($user, $projectName) {
00065
00066 $project = AuthProject::retrieve(array('name' => $projectName));
00067 if(!$project) {
00068
00069 $project = new AuthProject;
00070 $project->name = $projectName;
00071 $project->commit();
00072
00073 $exists = false;
00074 } else {
00075
00076 $exists = AuthUserToProject::getList(array('projectId' => $project->id, 'userId' => $user->id), array(), array(), true);
00077 }
00078
00079 if(!$exists) {
00080 $association = new AuthUserToProject;
00081 $association->userId = $user->id;
00082 $association->projectId = $project->id;
00083 $association->commit();
00084 }
00085 }
00086
00094 public static function groupExists($groupName) {
00095 return AuthGenGroup::exists(array('name' => $groupName));
00096 }
00097
00105 public static function userExists($username) {
00106 return AuthUser::exists(array('username' => $username));
00107 }
00108
00117 public static function addGroup($groupName, $ldapGroupId = null) {
00118 $group = new AuthGenGroup;
00119 $group->name = $groupName;
00120 if($ldapGroupId !== null) {
00121 $group->ldapGroupId = $ldapGroupId;
00122 }
00123 $group->commit();
00124 return $group;
00125 }
00126
00133 public static function removeGroupUser($user, $groupName) {
00134
00135 $group = AuthGenGroup::retrieve(array('name' => $groupName));
00136 if(!$group) return;
00137
00138
00139 $associations = AuthUserToGenGroup::getList(array('genGroupId' => $group->id, 'userId' => $user->id));
00140
00141
00142 foreach($associations as $association) {
00143 $association->markForDeletion();
00144 $association->commit();
00145 }
00146 }
00147
00156 public static function addGroupUser($user, $groupName) {
00157
00158 $group = AuthGenGroup::retrieve(array('name' => $groupName), array(), array(), true);
00159 if(!$group) {
00160 $group = self::addGroup($groupName);
00161
00162 $exists = false;
00163 } else {
00164
00165 $exists = AuthUserToGenGroup::exists(array('genGroupId' => $group->id, 'userId' => $user->id));
00166 }
00167
00168 if(!$exists) {
00169 $association = new AuthUserToGenGroup;
00170 $association->userId = $user->id;
00171 $association->genGroupId = $group->id;
00172 $association->commit();
00173 }
00174 }
00175 }
00176 ?>