Ejemplo n.º 1
0
 /**
  * @param string $filter
  *
  * @return mixed
  */
 public function doSearchCharacterMail(string $filter)
 {
     // Get the User for permissions and affiliation
     // checks
     $user = auth()->user();
     $messages = MailMessage::join('character_mail_message_bodies', 'character_mail_messages.messageID', '=', 'character_mail_message_bodies.messageID')->join('account_api_key_info_characters', 'character_mail_messages.characterID', '=', 'account_api_key_info_characters.characterID')->join('eve_api_keys', 'eve_api_keys.key_id', '=', 'account_api_key_info_characters.keyID');
     // If the user is a super user, return all
     if (!$user->hasSuperUser()) {
         $messages = $messages->where(function ($query) use($user) {
             // If the user has any affiliations and can
             // list those characters, add them
             if ($user->has('character.mail', false)) {
                 $query = $query->whereIn('account_api_key_info_characters.characterID', array_keys($user->getAffiliationMap()['char']));
             }
             // Add any characters from owner API keys
             $query->orWhere('eve_api_keys.user_id', $user->id);
         });
     }
     // Filter by the query string
     $messages = $messages->where(function ($query) use($filter) {
         $query->where('character_mail_messages.title', 'like', '%' . $filter . '%')->orWhere('character_mail_message_bodies.body', 'like', '%' . $filter . '%');
     });
     return $messages->orderBy('character_mail_messages.sentDate', 'desc')->take(150)->get();
 }
Ejemplo n.º 2
0
 /**
  * Get the mail timeline for all of the characters
  * a logged in user has access to. Either by owning the
  * api key with the characters, or having the correct
  * affiliation & role
  *
  * @return mixed
  */
 public function getCharacterMailTimeline()
 {
     // Get the User for permissions and affiliation
     // checks
     $user = auth()->user();
     $messages = MailMessage::join('character_mail_message_bodies', 'character_mail_messages.messageID', '=', 'character_mail_message_bodies.messageID')->join('account_api_key_info_characters', 'character_mail_messages.characterID', '=', 'account_api_key_info_characters.characterID')->join('eve_api_keys', 'eve_api_keys.key_id', '=', 'account_api_key_info_characters.keyID');
     // If the user is a super user, return all
     if (!$user->hasSuperUser()) {
         $messages = $messages->where(function ($query) use($user) {
             // If the user has any affiliations and can
             // list those characters, add them
             if ($user->has('character.mail', false)) {
                 $query = $query->whereIn('account_api_key_info_characters.characterID', array_keys($user->getAffiliationMap()['char']));
             }
             // Add any characters from owner API keys
             $query->orWhere('eve_api_keys.user_id', $user->id);
         });
     }
     return $messages->groupBy('character_mail_messages.messageID')->orderBy('character_mail_messages.sentDate', 'desc')->paginate(25);
 }