芝麻web文件管理V1.00
编辑当前文件:/home/sditechnicalteam/public_html/app/Http/Controllers/RegisterController.php
invite = UserInvitation::where('invitation_code', $code) ->where('status', 'active') ->firstOrFail(); return view('auth.invitation', $this->data); } public function acceptInvite(AcceptInviteRequest $request) { $invite = UserInvitation::where('invitation_code', $request->invite) ->where('status', 'active') ->first(); $this->company = $invite->company; if (is_null($invite) || ($invite->invitation_type == 'email' && $request->email != $invite->email)) { return Reply::error('messages.acceptInviteError'); } DB::beginTransaction(); try { $user = new User(); $user->name = $request->name; $user->company_id = $invite->company_id; $user->email = $request->email; $user->password = bcrypt($request->password); $user->save(); $user = $user->setAppends([]); if ($user->id) { $employee = new EmployeeDetails(); $employee->user_id = $user->id; $employee->company_id = $invite->company_id; $employee->employee_id = $user->id; $employee->joining_date = now($this->company->timezone)->format('Y-m-d'); $employee->added_by = $user->id; $employee->last_updated_by = $user->id; $employee->save(); } $employeeRole = Role::where('name', 'employee')->where('company_id', $invite->company_id)->first(); $user->attachRole($employeeRole); $rolePermissions = PermissionRole::where('role_id', $employeeRole->id)->get(); foreach ($rolePermissions as $value) { $userPermission = UserPermission::where('permission_id', $value->permission_id) ->where('user_id', $user->id) ->firstOrNew(); $userPermission->permission_id = $value->permission_id; $userPermission->user_id = $user->id; $userPermission->permission_type_id = $value->permission_type_id; $userPermission->save(); } $logSearch = new AccountBaseController(); $logSearch->logSearchEntry($user->id, $user->name, 'employees.show', 'employee'); if ($invite->invitation_type == 'email') { $invite->status = 'inactive'; $invite->save(); } // Commit Transaction DB::commit(); // Send Notification to all admins about recently added member $admins = User::allAdmins($user->company->id); foreach ($admins as $admin) { event(new NewUserRegistrationViaInviteEvent($admin, $user)); } session()->forget('user'); Auth::login($user); return Reply::success(__('messages.signupSuccess')); } catch (\Swift_TransportException $e) { // Rollback Transaction DB::rollback(); return Reply::error('Please configure SMTP details. Visit Settings -> notification setting to set smtp: ' . $e->getMessage(), 'smtp_error'); } catch (\Exception $e) { // Rollback Transaction DB::rollback(); return Reply::error('Some error occured when inserting the data. Please try again or contact support: ' . $e->getMessage()); } return view('auth.invitation', $this->data); } /** * XXXXXXXXXXX * * @return \Illuminate\Http\Response */ public function setupAccount(AccountSetupRequest $request) { // Update company name $setting = Company::firstOrCreate(); $setting->company_name = $request->company_name; $setting->timezone = 'Asia/Kolkata'; $setting->date_picker_format = 'dd-mm-yyyy'; $setting->moment_format = 'DD-MM-YYYY'; $setting->rounded_theme = 1; $setting->save(); // Create admin user $user = new User(); $user->name = $request->full_name; $user->email = $request->email; $user->password = bcrypt($request->password); $user->company_id = $setting->id; $user->save(); $employee = new EmployeeDetails(); $employee->user_id = $user->id; $employee->employee_id = $user->id; $employee->company_id = $setting->id; $employee->save(); $search = new UniversalSearch(); $search->searchable_id = $user->id; $search->title = $user->name; $search->route_name = 'employees.show'; $search->save(); // Attach roles $adminRole = Role::where('name', 'admin')->first(); $employeeRole = Role::where('name', 'employee')->first(); $user->roles()->attach($adminRole->id); $user->roles()->attach($employeeRole->id); $allPermissions = Permission::orderBy('id')->get()->pluck('id')->toArray(); foreach ($allPermissions as $permission) { $user->permissionTypes()->attach([$permission => ['permission_type_id' => PermissionType::ALL]]); } Auth::login($user); return Reply::success(__('messages.signupSuccess')); } }