public static function agree_site_policy() {
        global $CFG, $DB, $USER;

        $warnings = array();

        $context = context_system::instance();
        try {
            // We expect an exception here since the user didn't agree the site policy yet.
            self::validate_context($context);
        } catch (Exception $e) {
            // We are expecting only a sitepolicynotagreed exception.
            if (!($e instanceof moodle_exception) or $e->errorcode != 'sitepolicynotagreed') {
                // In case we receive a different exception, throw it.
                throw $e;
            }
        }

        $manager = new \core_privacy\local\sitepolicy\manager();
        if (!empty($USER->policyagreed)) {
            $status = false;
            $warnings[] = array(
                'item' => 'user',
                'itemid' => $USER->id,
                'warningcode' => 'alreadyagreed',
                'message' => 'The user already agreed the site policy.'
            );
        } else if (!$manager->is_defined()) {
            $status = false;
            $warnings[] = array(
                'item' => 'user',
                'itemid' => $USER->id,
                'warningcode' => 'nositepolicy',
                'message' => 'The site does not have a site policy configured.'
            );
        } else {
            $status = $manager->accept();
        }

        $result = array();
        $result['status'] = $status;
        $result['warnings'] = $warnings;
        return $result;
    }
public static function agree_site_policy() {
        global $CFG, $DB, $USER;

        $warnings = array();

        $context = context_system::instance();
        try {
            // We expect an exception here since the user didn't agree the site policy yet.
            self::validate_context($context);
        } catch (Exception $e) {
            // We are expecting only a sitepolicynotagreed exception.
            if (!($e instanceof moodle_exception) or $e->errorcode != 'sitepolicynotagreed') {
                // In case we receive a different exception, throw it.
                throw $e;
            }
        }

        $manager = new \core_privacy\local\sitepolicy\manager();
        if (!empty($USER->policyagreed)) {
            $status = false;
            $warnings[] = array(
                'item' => 'user',
                'itemid' => $USER->id,
                'warningcode' => 'alreadyagreed',
                'message' => 'The user already agreed the site policy.'
            );
        } else if (!$manager->is_defined()) {
            $status = false;
            $warnings[] = array(
                'item' => 'user',
                'itemid' => $USER->id,
                'warningcode' => 'nositepolicy',
                'message' => 'The site does not have a site policy configured.'
            );
        } else {
            $status = $manager->accept();
        }

        $result = array();
        $result['status'] = $status;
        $result['warnings'] = $warnings;
        return $result;
    }
public static function agree_site_policy ( ) { global $ CFG , $ DB , $ USER ; $ warnings = array ( ) ; $ context = context_system :: instance ( ) ; try { // We expect an exception here since the user didn't agree the site policy yet. self :: validate_context ( $ context ) ; } catch ( Exception $ e ) { // We are expecting only a sitepolicynotagreed exception. if ( ! ( $ e instanceof moodle_exception ) or $ e -> errorcode != 'sitepolicynotagreed' ) { // In case we receive a different exception, throw it. throw $ e ; } } $ manager = new \ core_privacy \ local \ sitepolicy \ manager ( ) ; if ( ! empty ( $ USER -> policyagreed ) ) { $ status = false ; $ warnings [ ] = array ( 'item' => 'user' , 'itemid' => $ USER -> id , 'warningcode' => 'alreadyagreed' , 'message' => 'The user already agreed the site policy.' ) ; } else if ( ! $ manager -> is_defined ( ) ) { $ status = false ; $ warnings [ ] = array ( 'item' => 'user' , 'itemid' => $ USER -> id , 'warningcode' => 'nositepolicy' , 'message' => 'The site does not have a site policy configured.' ) ; } else { $ status = $ manager -> accept ( ) ; } $ result = array ( ) ; $ result [ 'status' ] = $ status ; $ result [ 'warnings' ] = $ warnings ; return $ result ; }
Agree the site policy for the current user.

@return array of warnings and status result
@since Moodle 3.2
@throws moodle_exception
Agree the site policy for the current user .