Projeler

Projeler bir kullanıcı grubu olarak oluşturulur. Bu nedenlegroup ve project kavramları API'da aynı şeyi temsil etmektedir.

Uç Noktaları

Projeleri Getir

GET https://cubicl.io/api/v1/groups

Query Parameters

Name
Type
Description

parent

string

Üst projenin ID'si.

Bu değer ayarlanmazsa kurumdaki tüm projeler gösterilir.

recursive

boolean

false : sadece 1. seviye alt projeleri de getirir.

true : tüm seviyelerdeki alt projeleri de getirir.

Varsayılan değer : false

Project[]

Veriler

Projeler

type Project = {
    _id: string;
    name: string;
    // Projelerin birden çok üst projesi olabilir. Ana projenin bir üst projesi yoktur.
    parents: string[] | null;
    // "yönetici" rolüne sahip kullanıcıların ID'leri
    admins: string[];
    // "üye" rolüne sahip kullanıcıların ID'leri
    members: string[];
    // alt grupların ID'leri
    groups: string[];
    // Görev aşamaları tanımları. Yalnızca aşamalar özelleştirildiğinde mevcuttur.
    // Daha fazla bilgi için Görev Aşamaları bölümünü okuyun.
    taskStates?: TaskState[];
    // Projede ayarlanan izinler. Yalnızca proje izinleri özelleştirildiğinde mevcuttur.
    // Daha fazla bilgi için İzinler bölümünü okuyun.
    perms?: {
        members: PermissionLevels,
        everybody: PermissionLevels,
        // Kullanıcı ID'lerinin ve izin seviyelerinin bulunduğu nesne
        users?: {
            [userId: string]: PermissionLevels,
        }
    }
}

Görev Aşamaları

type TaskState = {
    name: string;
    type: 'waiting' | 'active' | 'completed' | 'suspended';
    color: string; // Hex renk kodu
    textColor: string; // Hex renk kodu
    // Bir görev oluştururken aşama belirtilmemişse varsayılan olarak hangi
    // aşamanın tanımlanacağını belirtir.
    isDefault?: boolean;
}

Projede görev durumları özelleştirilmişse, "taskStates" özelliği, görev aşamaları tanımlanmış nesnelerinin listesini tutar. Aksi takdirde, aşağıdaki varsayılan değerler kullanılır.

[
	{
		name : 'cb_waiting',
		type : 'waiting',
		color : '#f39c12',
		textColor : '#fff',
		isDefault : true
	},
	{
		name : 'cb_active',
		type : 'active',
		color : '#2ecc71',
		textColor : '#fff'
	},
	{
		name : 'cb_completed',
		type : 'completed',
		color : '#d8d8d8',
		textColor : '#333'
	},
	{
		name : 'cb_suspended',
		type : 'suspended',
		color : '#7d5fff',
		textColor : '#fff'
	}
]

İzinler

İzinler aşağıdaki sırayla 4 adımda ayarlanır ve kontrol edilir:

  1. Yöneticiler: Yöneticiler, projedeki tüm eylemleri gerçekleştirebilir. Bir yönetici, alt projelerin üyesi olmasa bile tüm alt projelerde de yönetici ayrıcalığına sahiptir.

  2. Kullanıcı İzinleri: İzinler bir kullanıcı için tanımlandıysa, aşağıdaki adımlar kontrol edilmeden kullanılacaktır. Kullanıcı izinleri perms.users özelliğinde tanımlanır.

  3. Proje Üyeleri: Proje üyeleri ve diğer kullanıcılar için genel izinler belirlenir. Kullanıcı bir proje üyesiyse, bir sonraki adım kontrol edilmeden bu izinler kullanılacaktır.

  4. Proje Haricindeki Üyeler: Bu izin düzeyi perms.everybody özelliğinde tanımlaır.

Projedeki her ana özellik için izin seviyeleri ayrı ayrı belirlenir.

type FeaturePermLevels = {
    // Görevler, Takvim ve Zaman Çizelgesi sayfalarında kullanılır
    tasks: 'none' | 'view' | 'contribute' | 'edit' | 'manage',
    files: 'none' | 'view' | 'edit' | 'manage',
    gantt: 'none' | 'view' | 'edit',
    reports: 'none' | 'view',
}

Last updated