public function buildGroup($groupName, $categoryId, $introduction, $creatorId, $picture = '') { $group = new Group(); $group->setDefaults(); $group->name = $groupName; $group->categoryId = $categoryId; $group->intro = $introduction; $group->creator = $creatorId; $group->picture = $picture; $group->save(); $groupUser = new GroupUser(); $groupUser->groupId = $group->id; $groupUser->userId = $group->creator; $groupUser->joinTime = date('Y-m-d H:i:s'); $groupUser->status = 1; $groupUser->save(); return $group; }
/** * Create the application document registry * * @param array $aData * @return string */ public function create($aData) { $oConnection = Propel::getConnection(GroupUserPeer::DATABASE_NAME); try { $oGroupUser = new GroupUser(); $oGroupUser->fromArray($aData, BasePeer::TYPE_FIELDNAME); if ($oGroupUser->validate()) { $oConnection->begin(); $iResult = $oGroupUser->save(); $oConnection->commit(); return $iResult; } else { $sMessage = ''; $aValidationFailures = $oGroupUser->getValidationFailures(); foreach ($aValidationFailures as $oValidationFailure) { $sMessage .= $oValidationFailure->getMessage() . '<br />'; } throw new Exception('The registry cannot be created!<br />' . $sMessage); } } catch (Exception $oError) { $oConnection->rollback(); throw $oError; } }
/** * Edit group * * @param void * @return null */ function edit_group() { $this->setTemplate('add_group'); if (!can_manage_security(logged_user())) { flash_error(lang('no access permissions')); ajx_current("empty"); return; } // if $group = Groups::findById(get_id()); if (!$group instanceof Group) { flash_error(lang('group dnx')); $this->redirectTo('administration', 'groups'); } // if if (logged_user()->isAdministrator()) { $projects = Projects::getAll(); } else { $projects = null; } $permissions = ProjectUsers::getNameTextArray(); $group_data = array_var($_POST, 'group'); if (!is_array($group_data)) { $group_data = array('name' => $group->getName(), 'can_edit_company_data' => $group->getCanEditCompanyData(), 'can_manage_security' => $group->getCanManageSecurity(), 'can_manage_workspaces' => $group->getCanManageWorkspaces(), 'can_manage_configuration' => $group->getCanManageConfiguration(), 'can_manage_contacts' => $group->getCanManageContacts(), 'can_manage_templates' => $group->getCanManageTemplates(), 'can_manage_reports' => $group->getCanManageReports(), 'can_manage_time' => $group->getCanManageTime(), 'can_add_mail_accounts' => $group->getCanAddMailAccounts()); // array } // if $users = GroupUsers::getUsersByGroup($group->getId()); if ($users) { foreach ($users as $usr) { $group_data['user[' . $usr->getId() . ']'] = true; } } tpl_assign('group', $group); tpl_assign('group_data', $group_data); tpl_assign('permissions', $permissions); tpl_assign('projects', $projects); if (is_array(array_var($_POST, 'group'))) { $group->setFromAttributes($group_data); if (array_var($group_data, "can_edit_company_data") != 'checked') { $group->setCanEditCompanyData(false); } if (array_var($group_data, "can_manage_security") != 'checked') { $group->setCanManageSecurity(false); } if (array_var($group_data, "can_manage_configuration") != 'checked') { $group->setCanManageConfiguration(false); } if (array_var($group_data, "can_manage_workspaces") != 'checked') { $group->setCanManageWorkspaces(false); } if (array_var($group_data, "can_manage_contacts") != 'checked') { $group->setCanManageContacts(false); } if (array_var($group_data, "can_manage_templates") != 'checked') { $group->setCanManageTemplates(false); } if (array_var($group_data, "can_manage_reports") != 'checked') { $group->setCanManageReports(false); } if (array_var($group_data, "can_manage_time") != 'checked') { $group->setCanManageTime(false); } if (array_var($group_data, "can_add_mail_accounts") != 'checked') { $group->setCanAddMailAccounts(false); } try { DB::beginWork(); //set permissions $permissionsString = array_var($_POST, 'permissions'); if ($permissionsString && $permissionsString != '') { $permissions = json_decode($permissionsString); } if (is_array($permissions) && count($permissions) > 0) { //Clear old modified permissions $ids = array(); foreach ($permissions as $perm) { $ids[] = $perm->wsid; } ProjectUsers::clearByUser($group, implode(',', $ids)); //Add new permissions //TODO - Make batch update of these permissions foreach ($permissions as $perm) { if (ProjectUser::hasAnyPermissions($perm->pr, $perm->pc)) { $relation = new ProjectUser(); $relation->setProjectId($perm->wsid); $relation->setUserId($group->getId()); $relation->setCheckboxPermissions($perm->pc); $relation->setRadioPermissions($perm->pr); $relation->save(); } //endif //else if the user has no permissions at all, he is not a project_user. ProjectUser is not created } //end foreach } // if $group->save(); GroupUsers::clearByGroup($group); if (array_var($_POST, 'user')) { foreach (array_var($_POST, 'user') as $user_id => $val) { if ($val == 'checked' && is_numeric($user_id) && Users::findById($user_id) instanceof User) { $gu = new GroupUser(); $gu->setGroupId($group->getId()); $gu->setUserId($user_id); $gu->save(); } } } ApplicationLogs::createLog($group, null, ApplicationLogs::ACTION_EDIT); DB::commit(); flash_success(lang('success edit group', $group->getName())); ajx_current("back"); } catch (Exception $e) { DB::rollback(); tpl_assign('error', $e); } // try } // if }
public function apiSignUp() { $message = ""; $returnArray = array(); $securimage = new Securimage(); $input = Input::all(); if (!isset($input['securitycode'])) { $input['securitycode'] = ""; } if ($securimage->check($input['securitycode']) == false) { $message = "Incorrect answer"; } else { $rules = array('username' => 'required|unique:users', 'password' => 'required', 'screenhandle' => 'required', 'email' => 'required|unique:users|email', 'firstname' => 'required|alpha', 'lastname' => 'required', 'city' => 'required', 'country' => 'required'); $messages = array('screenhandle.required' => 'The Roller name can not be blank'); //$validator = Validator::make($input, $rules, $messages); $username = DB::table('users')->where('username', Input::get('username'))->get(); $user = DB::table('users')->where('email', Input::get('email'))->get(); $group = DB::table('groups')->where('keycode', Input::get('keycode'))->get(); //print_r($user); //print_r(count($group)); // error check if (!Input::get('password')) { $message = "Password can not be blank"; } if (!Input::get('lastname')) { $message = "Lastname can not be blank"; } if (!Input::get('firstname')) { $message = "Firstname can not be blank "; } if (!Input::get('securitycode')) { $message = "Security code can't be blank !"; } if (!Input::get('tos')) { $message = "You need to agree with EULA"; } if (count($group) == 0) { $message = "Your keycode is invalid"; } if (filter_var(Input::get('email'), FILTER_VALIDATE_EMAIL) === false) { $message = "Please enter a valid email address !"; } if (count($user) > 0) { $message = "This emailalready exists !"; } if (count($username) > 0) { $message = "This username already exists !"; } // end error check //echo $message; // get incremental number $rollername = "Roller " . rand(1, 999); // generate roller name //print_r($input['securitycode']); if (!$message) { // begin the sigh - up proccess $user = new User(); $user->username = Input::get('email'); //$user->password = Hash::make(Input::get('password')); $user->password = Hash::make(Input::get('password')); $user->screenhandle = $rollername; $user->firstname = Input::get('firstname'); $user->lastname = Input::get('lastname'); $user->email = Input::get('email'); //$user->picture = "L3VwbG9hZHMvcGl4L3VzZXIvam9obi5sZS5wbmc="; $user->state = "N/A"; //$user->country = Input::get('country'); $user->keycode = Input::get('keycode'); //$user->description = Input::get('description'); //$user->picture = ''; $user->suspended = 0; // add the user to the default group Sydney Group $user->save(); $returnArray['user_id'] = $user->id; Session::put('user.lastinsertid', $user->id); $groupuser = new GroupUser(); //// Search the matching keycode inside the group table then enroll user to that group if ($user->keycode) { $group = Group::where('keycode', strtolower(Input::get('keycode')))->get(); //print_r($group[0]->id); // check this constaint $groupuser->group_id = $group[0]->id; $groupuser->user_id = $user->id; $groupuser->save(); // add notification to the group //$this->addNotification($post->user_id, 'newgroupmember', $input['postid'], "likes your post" ); //loop thru $this->sendNotificationToGroup($group[0]->id, $user->id); // end notification adding } if (Input::get('token')) { DB::table('custom_user_token')->insert(array('user_id' => $user->id, 'token' => Input::get('token'))); } $emailContent['firstname'] = Input::get('firstname'); $emailContent['username'] = Input::get('username'); $emailContent['password'] = Input::get('password'); $emailContent['teamname'] = $group[0]->name; //New Account confirmation email $baseController = new BaseController(); $baseController->notificationEmail($input['email'], $emailContent, "Welcome to On A Roll 21™", Input::get('firstname') . ' ' . Input::get('lastname'), 'signup'); //print_r($baseController); // end the sign up process $message = "true"; } } $returnArray['status'] = $message; return json_encode($returnArray); }
function setAsAdministrator($setAsAdmin = true) { if (!logged_user() instanceof User || can_manage_security(logged_user())) { if ($setAsAdmin && !$this->isAdministrator()) { $group_user = new GroupUser(); $group_user->setUserId($this->getId()); $group_user->setGroupId(Group::CONST_ADMIN_GROUP_ID); $group_user->save(); } if (!$setAsAdmin && $this->getId() != 1 && $this->isAdministrator()) { GroupUsers::delete('user_id = ' . $this->getId() . ' and group_id = ' . Group::CONST_ADMIN_GROUP_ID); } } }
public function actionAccept($censorId = null) { $censor = Censor::get($censorId); if ($censor !== null) { $groupUser = new GroupUser(); $groupUser->groupId = $censor->secondId; $groupUser->userId = $censor->firstId; $groupUser->joinTime = date('Y-m-d H:i:s'); $groupUser->status = 1; if (!GroupUser::isUserInGroup($groupUser->userId, $groupUser->groupId)) { $groupUser->save(); $group = Group::get($groupUser->groupId); $group->memberCount++; $group->save(); $this->flash("message", "The request is processed."); $title = "Join group request accepted"; $content = 'Group creator has accepted your request of joining in group ' . RHtml::linkAction('group', $group->name, 'detail', $group->id); $content = RHtml::encode($content); Message::sendMessage("group", $group->id, $groupUser->userId, $title, $content); } else { $this->flash("warning", "You're already a member of this group."); } $censor->pass(); $this->redirectAction('message', 'view'); } }
/** * Finish the installation - create owner company and administrator * * @param void * @return null */ function complete_installation() { if (Companies::getOwnerCompany() instanceof Company) { die('Owner company already exists'); // Somebody is trying to access this method even if the user already exists } // if $form_data = array_var($_POST, 'form'); tpl_assign('form_data', $form_data); if (array_var($form_data, 'submited') == 'submited') { try { $admin_password = trim(array_var($form_data, 'admin_password')); $admin_password_a = trim(array_var($form_data, 'admin_password_a')); if (trim($admin_password) == '') { throw new Error(lang('password value required')); } // if if ($admin_password != $admin_password_a) { throw new Error(lang('passwords dont match')); } // if DB::beginWork(); Users::delete(); // clear users table Companies::delete(); // clear companies table // Create the administrator user $administrator = new User(); $administrator->setId(1); $administrator->setCompanyId(1); $administrator->setUsername(array_var($form_data, 'admin_username')); $administrator->setEmail(array_var($form_data, 'admin_email')); $administrator->setPassword($admin_password); $administrator->setCanEditCompanyData(true); $administrator->setCanManageConfiguration(true); $administrator->setCanManageSecurity(true); $administrator->setCanManageWorkspaces(true); $administrator->setCanManageContacts(true); $administrator->setCanManageTemplates(true); $administrator->setCanManageReports(true); $administrator->setCanManageTime(true); $administrator->setCanAddMailAccounts(true); $administrator->setAutoAssign(false); $administrator->setPersonalProjectId(1); $administrator->setType('admin'); $administrator->save(); $group = new Group(); $group->setName('administrators'); $group->setAllPermissions(true); $group->setId(Group::CONST_ADMIN_GROUP_ID); $group->save(); $group_user = new GroupUser(); $group_user->setGroupId(Group::CONST_ADMIN_GROUP_ID); $group_user->setUserId($administrator->getId()); $group_user->save(); $project = new Project(); $project->setId(1); $project->setP1(1); $project->setName(new_personal_project_name($administrator->getUsername())); $project->setDescription(lang('files')); $project->setCreatedById($administrator->getId()); $project->save(); $project_user = new ProjectUser(); $project_user->setProjectId($project->getId()); $project_user->setUserId($administrator->getId()); $project_user->setCreatedById($administrator->getId()); $project_user->setAllPermissions(true); $project_user->save(); // Create a company $company = new Company(); $company->setId(1); $company->setClientOfId(0); $company->setName(array_var($form_data, 'company_name')); $company->setCreatedById(1); $company->save(); DB::commit(); $this->redirectTo('access', 'login'); } catch (Exception $e) { tpl_assign('error', $e); DB::rollback(); } // try } // if }