Skip to content
Snippets Groups Projects
Select Git revision
  • 5ddb85b24417405b65b1661f9a1a0c4442043f41
  • main default protected
  • rewrite
  • production
4 results

accounts_handler.php

Blame
  • accounts_handler.php 6.09 KiB
    <?php
    // This file carries functions related to accounts.
    
    function get_avatar_url($bcid):string {
    
        $exists = db_execute('SELECT public FROM avatars WHERE id = ? LIMIT 1', [$bcid]);
    
        if (empty($exists)) {
            return '/assets/default.png';
        }
    
        return '/public/avatars/' . $bcid;
    }
    
    function get_display_name($bcid, $use_bcid_fallback=true, $put_bcid_in_parenthesis=false, $format_bcid=false):string {
    	$display_name = db_execute("SELECT display_name FROM accounts WHERE id = ?", [$bcid])['display_name'];
    	if (!empty($display_name)) {
            if ($put_bcid_in_parenthesis) {
                return $display_name . " ($bcid)";
            }
    		return $display_name;
    	}
    
    	if ($use_bcid_fallback) {
    		return $bcid;
    	}
    
    	return "";
    }
    
    // Tokens so apps can get VERY BASIC information
    
    function generate_basic_access_token($bcid, $application_id=""): array
    {
        // Returns an access token, a refresh token and an expiry timestamp.
    
        $access_token = md5(uniqid(more_entropy: true).rand(1000000, 9999999));
        $refresh_token = md5(uniqid("rfish").rand(1000000, 9999999));
    
        $valid_time = 12; // in hours
        $expiry = time() + ($valid_time * 60 * 60);
    
    //    echo $access_token . ":" . $refresh_token;
    
        if ($application_id) {
            db_execute(
                "INSERT INTO tokens (access_token, refresh_token, expiry, owner_id, application_id, permissions) VALUES (?,?,?,?,?, (1<<0 | 1<<1))",
                [$access_token, $refresh_token, $expiry, $bcid, $application_id]
            );
        } else {
            db_execute(
                "INSERT INTO tokens (access_token, refresh_token, expiry, owner_id, permissions) VALUES (?,?,?,?, (1<<0 | 1<<1))",
                [$access_token, $refresh_token, $expiry, $bcid]
            );
        }
    
        return [
            "access" => $access_token,
            "refresh" => $refresh_token,
            "expiry" => $expiry,
            "id" => $bcid
        ];
    }
    
    function generate_token($bcid, $application_id=null, $permissions=0): array {
        $access_token = md5(uniqid(more_entropy: true).rand(1000000, 9999999));
        $refresh_token = md5(uniqid("rfish").rand(1000000, 9999999));
    
        $valid_time = 12; // in hours
        $expiry = time() + ($valid_time * 60 * 60);