/** * Gets the owner mail account * * @return MailAccount */ function getAccount() { if (is_null($this->account)) { $this->account = MailAccounts::findById($this->getAccountId()); } //if return $this->account; }
if (!config_option("sent_mails_sync")){ echo(lang('no access permissions')); ?><br><a href="<?php echo ROOT_URL?>/index.php?c=access&a=index" target="_top">Go back to Feng Office</a><?php return; } set_time_limit(0); if (logged_user()->isGuest()) { echo(lang('no access permissions')); ?><br><a href="<?php echo ROOT_URL?>/index.php?c=access&a=index" target="_top">Go back to Feng Office</a><?php return; } $id = get_id(); if ($id>0){ $account = MailAccounts::findById($id); } else{ $email_address = array_var($_GET, 'email'); $user_name = array_var($_GET, 'username'); if (isset ($email_address) && isset ($user_name)){ $user_conditions = array("conditions" => array("`username`='".$user_name."'")); $user = Users::findOne($user_conditions); if (!isset ($user)){ echo(lang('cant find user')); ?><br><a href="<?php echo ROOT_URL?>/index.php?c=access&a=index" target="_top">Go back to Feng Office</a><?php return; }
/** * Delete specific mail account * * @access public * @param void * @return null */ function delete_account() { if (logged_user()->isGuest()) { flash_error(lang('no access permissions')); ajx_current("empty"); return; } $account = MailAccounts::findById(get_id()); if (!$account instanceof MailAccount) { flash_error(lang('error delete mail account')); ajx_current("empty"); return; } if (!$account->canDelete(logged_user())) { flash_error(lang('no access permissions')); ajx_current("empty"); return; } $deleteMails = array_var($_GET, 'deleteMails', false); try { $accId = $account->getId(); $accName = $account->getName(); $accEmail = $account->getEmail(); DB::beginWork(); $account->delete($deleteMails); DB::commit(); evt_add("mail account deleted", array("id" => $accId, "name" => $accName, "email" => $accEmail)); flash_success(lang('success delete mail account')); if (array_var($_GET, 'reload', false)) { ajx_current("reload"); } else { ajx_current("back"); } } catch (Exception $e) { DB::rollback(); flash_error(lang('error delete mail account')); ajx_current("empty"); } }
/** * Return true is $user has $access_level (R/W) over $object * * @param User $user * @param ApplicationDataObject $object * @param int $access_level // 1 = read ; 2 = write * @return unknown */ function can_access(User $user, ApplicationDataObject $object, $access_level) { try { if (!$object instanceof ApplicationDataObject) { throw new Exception(lang('object dnx')); } $hookargs = array("user" => $user, "object" => $object, "access_level" => $access_level); $ret = null; Hook::fire('can_access', $hookargs, $ret); if (is_bool($ret)) { return $ret; } if ($object instanceof Comment) { return can_access($user, $object->getObject(), $access_level); } if ($user->isGuest() && $access_level == ACCESS_LEVEL_WRITE) { return false; } if ($object instanceof ProjectFileRevision) { return can_access($user, $object->getFile(), $access_level); } if ($object->columnExists('project_id')) { $user_id = $user->getId(); if (!$object instanceof ProjectContact && $object->getCreatedById() == $user_id) { return true; } // the user is the creator of the object if ($object instanceof ProjectDataObject && $object->getProject() instanceof Project && $object->getProject()->getId() == $user->getPersonalProjectId()) { return true; } // The object belongs to the user's personal project $perms = ObjectUserPermissions::getAllPermissionsByObject($object, $user->getId()); if ($perms && is_array($perms)) { //if the permissions for the user in the object are specially set return has_access_level($perms[0], $access_level); } $group_ids = GroupUsers::getGroupsCSVsByUser($user_id); if ($group_ids && $group_ids != '') { //user belongs to at least one group $perms = ObjectUserPermissions::getAllPermissionsByObject($object, $group_ids); if ($perms) { foreach ($perms as $perm) { if (has_access_level($perm, $access_level)) { return true; } //there is one group permission that allows the user to access } } } if ($object instanceof ProjectDataObject && $object->getProject()) { //if the object has a project assigned to it $proj_perm = ProjectUsers::findOne(array('conditions' => array('user_id = ? AND project_id = ? ', $user_id, $object->getProject()->getId()))); if ($proj_perm && can_manage_type(get_class($object->manager()), $proj_perm, $access_level)) { return true; // if user has permissions over type of object in the project } if ($group_ids && $group_ids != '') { //user belongs to at least one group $proj_perms = ProjectUsers::findAll(array('conditions' => array('project_id = ' . $object->getProject()->getId() . ' AND user_id in (' . $group_ids . ')'))); if ($proj_perms) { foreach ($proj_perms as $perm) { if (can_manage_type(get_class($object->manager()), $perm, $access_level)) { return true; } // if any group has permissions over type of object in the project } } } } } else { // handle object in multiple workspaces $user_id = $user->getId(); if ($object->getCreatedById() == $user_id) { return true; // the user is the creator of the object } if ($object instanceof MailContent) { $acc = MailAccounts::findById($object->getAccountId()); if (!$acc instanceof MailAccount) { return false; // it's an email with no account and not created by the user } else { if ($access_level == ACCESS_LEVEL_READ && $acc->canView($user) || $access_level == ACCESS_LEVEL_WRITE && $acc->canDelete($user)) { return true; } } } $perms = ObjectUserPermissions::getAllPermissionsByObject($object, $user->getId()); if ($perms && is_array($perms)) { //if the permissions for the user in the object are specially set return has_access_level($perms[0], $access_level); } $group_ids = GroupUsers::getGroupsCSVsByUser($user_id); if ($group_ids && $group_ids != '') { //user belongs to at least one group $perms = ObjectUserPermissions::getAllPermissionsByObject($object, $group_ids); if ($perms) { foreach ($perms as $perm) { if (has_access_level($perm, $access_level)) { return true; //there is one group permission that allows the user to access } } } } if ($object instanceof ProjectDataObject) { $ws = $object->getWorkspaces(); foreach ($ws as $w) { // if the object has a project assigned to it $proj_perm = ProjectUsers::findOne(array('conditions' => array('user_id = ? AND project_id = ? ', $user_id, $w->getId()))); if ($proj_perm && can_manage_type(get_class($object->manager()), $proj_perm, $access_level)) { return true; // if user has permissions over type of object in the project } if ($group_ids && $group_ids != '') { //user belongs to at least one group $proj_perms = ProjectUsers::findAll(array('conditions' => array('project_id = ' . $w->getId() . ' AND user_id in (' . $group_ids . ')'))); if ($proj_perms) { foreach ($proj_perms as $perm) { if (can_manage_type(get_class($object->manager()), $perm, $access_level)) { return true; } // if any group has permissions over type of object in the project } } } } } } } catch (Exception $e) { tpl_assign('error', $e); return false; } return false; }
; og.emailFilters = {}; og.emailFilters.classif = '<?php echo user_config_option('mails classification filter'); ?> '; og.emailFilters.read = '<?php echo user_config_option('mails read filter'); ?> '; og.emailFilters.account = '<?php echo user_config_option('mails account filter'); ?> '; if (og.emailFilters.account != 0 && og.emailFilters.account != '') { og.emailFilters.accountName = '<?php $acc_id = user_config_option('mails account filter'); $acc = $acc_id > 0 ? MailAccounts::findById($acc_id) : null; echo $acc instanceof MailAccount ? mysql_real_escape_string($acc->getName()) : ''; ?> '; } else og.emailFilters.accountName = ''; og.lastSelectedRow = {messages:0, mails:0, contacts:0, documents:0, weblinks:0, overview:0, linkedobjs:0, archived:0}; </script> <?php include_once Env::getLayoutPath("listeners"); ?> </body> </html>
function getAccount() { return MailAccounts::findById($this->getAccountId()); }
echo $genid; ?> ')"> <?php echo lang("fetch imap folders"); ?> </a> </th> </tr> </table> <div class="mail-account-item"> <?php $options = array(); if (isset($mail_acc_id) && config_option('sent_mails_sync')) { $mail_acc = MailAccounts::findById($mail_acc_id); $selected_folder = $mail_acc->getSyncFolder(); } foreach ($imap_folders as $folder) { if (isset($selected_folder) && $folder->getFolderName() == $selected_folder) { $options[] = option_tag($folder->getFolderName(), null, array('selected' => "selected")); } else { $options[] = option_tag($folder->getFolderName(), null, null); } } $outbox_select_box_attrib = array('id' => $genid . 'outbox_select_box'); echo select_box('outbox_select_box', $options, $outbox_select_box_attrib); ?> </div>